为什么ifconfig重置默认网关路由?

在FreeBSD中,即使给定相同的IP地址(例如,只在更新networking掩码时), ifconfig调用似乎也会删除默认的网关路由。 这是一个错误还是一个function?
就像我记得的那样,Linux在这种情况下不会改变默认网关。

在FreeBSD中,除去直接连接到子网的ifconfig也会将包含该子网的路由(IIRC更新networking掩码简化为删除和replace)。 这是一个“function”,以免混淆你的路由configuration,试图与一个无法访问的主机进行通信,尽pipe当用户遇到消失的路由时,它会引起混乱。

另见: http : //forums.freebsd.org/showthread.php?t=12132

我相信会发生这种情况,因为ifconfig命令实际上是删除旧的IP并创build新的IP,而不仅仅是改变它。 “这是一个function!”

我正在寻找一种方法来保持路由默认gw到位,但是因为我看到了这个线程,并尝试了我自己,我想这是没有办法的。 我唯一需要做的就是在设置ip之后手动设置默认的gw:

 sudo ifconfig eth0 10.0.0.2 subnet 255.255.255.0 sudo route add default gw 10.0.0.138 

所以请记住,如果你正在远程执行这个操作,最好使用&&运行这两个命令,否则你会被卡住

 sudo ifconfig eth0 10.0.0.2 subnet 255.255.255.0 && sudo route add default gw 10.0.0.138