Freebsd更改默认的Internet通道路由

我有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量,而在两个命令之间,如果你去那边)。