我知道如何将默认 gw 分配给具有 IP 的接口
ip route add default via <host> dev <dev>
# e.g.
ip route add default via 192.168.0.101 dev eth0
问题是我的场景中eht0的IP是外部管理的。因此,如果更改 eth0 的 IP,前面的命令将不起作用。
有没有一种简单的方法可以将接口分配为默认 gw,而与它拥有的 IP 无关?
- 注意:开机时界面不UP。
- 注 2:我的接口是 3g 调制解调器,因此在我请求连接之前我也不知道网关 IP。
一些调制解调器卡正在做代理 ARP。这意味着您可以知道默认路由是通过没有网关的卡,并且您的系统将开始为任何 IP 发出 ARP 请求(例如 ARP 为 8.8.8.8 跟随 a
ping 8.8.8.8
),因为卡看起来像以太网,好像整个互联网都是在局域网上。如果卡在做代理 ARP,这将起作用。带有名为wwan0的卡的示例:如果它不做代理 ARP,那么除了 3 秒后的超时以及任何 Internet IP 的“Destination Host Unreachable”消息之外,什么都不会发生。
您必须进行测试,看看结果如何。
尝试
您可以将 eth0 替换为变量。
如果 eth0(或任何调制解调器接口)由 DHCP 管理,我无法确定这一点,很可能会提供正确的路由。
ping 8.8.8.8
IP地址“外部管理”有两种方式:通过DHCP获取IP地址,同一个DHCP包中还包含默认路由,必须自动设置。或者,它是一个点对点连接,当通过 ppp 等进行时。它还会为您提供来自另一个端点的 IP,然后您可以将其用于路由。TL; DR:没有办法“设置独立于 IP 的网关”,这不是它的工作原理。您自动设置默认路由作为对您获得地址的接口的反应。详细信息取决于网络接口的类型。- 6 月 11 日晚上 8:06