我有freebsd上的两个互联网频道和网关。 当我使用命令route change default chan2切换频道时,命令netstat -nr显示已更改的默认路由。 但traceroute显示数据包通过旧的路由chan1。
例:
$netstat -nr Routing tables Internet: Destination Gateway Flags Refs Use Netif Expire default xxx.xxx.183.54 US 0 8432 em3 $sudo route change default xxx.xxx.144.125 change net default: gateway> xxx.xxx.144.125 $netstat -nr Routing tables Internet: Destination Gateway Flags Refs Use Netif Expire default xxx.xxx.144.125 US 2 16450 em3
但
$ traceroute 8.8.8.8 traceroute to 8.8.8.8 (8.8.8.8), 64 hops max, 52 byte packets 1 xxx.xxx.183.53 (xxx.xxx.183.53) 0.527 ms 0.415 ms 0.483ms
所有作品,如果我运行以下组合:
$ sudo route del默认
$睡10
$ sudo route add default xxx.xxx.144.125
如果使用route change命令,则需要重新启动networking服务才能应用更改,例如:
$ sudo /etc/rc.d/netif restart
有没有可能你有一个caching路线8.8.8.8? netstat -nr的完整输出会显示出来。 如果是的话,你需要在testing你的改变之前将其删除 – 无论是专门的路由,或者你可以route flush ,然后添加,而不是改变默认网关(但要记住这将中断非本地stream量,而在两个命令之间,如果你去那边)。