我想在可用时通过 usb0(蜂窝调制解调器)而不是 eth0 路由流量。 usb0 的 IP 地址可能会随着时间而改变。由于 IP 地址可能会发生变化,在这种情况下如何创建路由?
我试过:ip route add default dev usb0
但是当我这样做时,我可以从 usb0 进行 ping 操作,但不能再通过 eth0 进行 ping 操作。有什么想法吗?
Destination Gateway Genmask Flags Metric Ref Use Iface
default 172.24.1.1 0.0.0.0 UG 10 0 0 eth0
172.19.200.136 * 255.255.255.252 U 0 0 0 usb0
172.24.1.0 * 255.255.255.0 U 0 0 0 eth0
答案1
在评论中,您提到您正在用作udhcpc
DHCP 客户端。
udhcpc
会将网关地址(或多个地址,如果有多个)传递给/usr/share/udhcpc/default.script
名为 的变量中运行的脚本(默认情况下为 )router
。然后,该脚本应相应地设置默认网关。
我猜测如果已经设置了默认网关,则默认脚本会忽略设置默认网关。
请参见:https://udhcp.busybox.net/README.udhcpc
您不能只是将数据包从任何旧的网络接口中推出。如果接口模拟以太网(就像您usb0
可能所做的那样),则数据包需要有效的第 2 层目标地址。系统可以通过对网关的 IP 地址执行 ARP 请求来自动获取该信息...但必须首先知道该网关 IP 地址。