我有一台运行 busybox 的小型嵌入式计算机。它有一个有线 eth0 接口,通过电缆连接到板载 wlan 模块的有线接口。此外,ppp0 上还有一个 3G 模块。
我需要通过 eth0 将流量从 192.168.2.1(localhost)路由到 192.168.2.10(wlan-module),其他一切都应该通过 ppp0。
当前的设置:
# ip rule
0: from all lookup local
1000: from 84.231.196.14 lookup mobile
32766: from all lookup main
32767: from all lookup default
# ip route show table mobile
default via 192.168.254.254 dev ppp0
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.2.10 0.0.0.0 UG 0 0 0 eth0
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.254.254 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
这部分可行。我可以从 192.168.2.1 连接到 192.168.2.10,并且可以通过 ppp0 从外部连接到这台计算机,但我无法使用 ppp0 从这台计算机与外部建立任何连接。
我尝试添加
# ip rule add from all lookup mobile
# ip route flush table cache
# ip rule
0: from all lookup local
999: from all lookup mobile
1000: from 84.231.196.16 lookup mobile
32766: from all lookup main
32767: from all lookup default
这当然会将所有流量通过 ppp0 路由,但我失去了与 192.168.2.10 的连接
我尝试了几种不同的规则和路线来实现这一点,但都失败了。我应该制定什么样的规则/路线?
- ip rule、ip route 和 route 可用
答案1
我看到您的默认路由指向 eth0,您需要将默认路由指向 ppp0。删除默认路由并尝试“ip route add default dev ppp0”。