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

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

在 FreeBSD 中,是否配置调用似乎删除了默认网关路由,即使给定了相同的 IP 地址(例如,仅更新网络掩码时)。这是错误还是功能?
据我记得,在这种情况下,Linux 不会更改默认网关。

答案1

在 FreeBSD 中,ifconfig删除与子网的直接连接也会删除包含该子网的路由(如果我没记错的话,更新网络掩码会简化为删除和替换)。这是一个“功能”,目的是避免因尝试与无法再访问的主机通信而混淆您的路由配置,尽管当用户遇到消失的路由时,它会造成一定程度的混乱。

也可以看看:http://forums.freebsd.org/showthread.php?t=12132

答案2

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

答案3

我一直在寻找一种方法来保持到默认网关的路由不变,但是因为我看到了这个帖子并自己尝试过,所以我猜没有办法。我唯一要做的就是在设置 ip 后立即手动设置默认网关:

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

相关内容