我搜索了很多解决方案,发现了 50 个类似的问题。我已经尝试了其中的大多数,但无法完成这项工作。
简而言之:
- 无线接口(192.168.0.18)
- 3G适配器接口(10.249.143.9)
我可以通过 127.0.0.1:8080 或 192.168.0.18:8080 访问 java 应用程序(tomcat)并且它可以工作,但我需要来自 java 应用程序的请求通过 3G 加密狗(ppp0)。
Java应用程序通过同一网络上的端口5000扫描/读取其他设备,如ppp0(IP地址10.249.143.2 - 10.249.143.50)
如果我断开 wifi 网络,这一切都有效,但是当我重新连接到 wifi 时,一切都会停止工作,因为 192.168.0.18 无法从 IP 地址 10.249.143.2 - 10.249.143.50 访问设备
连接 wifi 后:
default via 192.168.0.1 dev wlp3s0b1 proto dhcp metric 600
default dev ppp0 proto static scope link metric 700
10.64.64.64 dev ppp0 proto kernel scope link src 10.249.143.9
10.64.64.64 dev ppp0 proto kernel scope link src 10.249.143.9 metric 700
169.254.0.0/16 dev wlp3s0b1 scope link metric 1000
192.168.0.0/24 dev wlp3s0b1 proto kernel scope link src 192.168.0.19 metric 600
没有无线网络:
default dev ppp0 proto static scope link metric 700
10.64.64.64 dev ppp0 proto kernel scope link src 10.249.143.9
10.64.64.64 dev ppp0 proto kernel scope link src 10.249.143.9 metric 700
答案1
好吧,看看没有明确的路线10.249.143.0/24
(我正在制作面具,我不知道它是什么)。
这意味着前往该网络的数据包将遵循默认路由。当wifi开启时,默认路由结束wlp3s0b1
,当wifi关闭时,默认路由结束ppp0
。
您可以添加到网络的显式路由10.249.143.0/24
。例如, as root
,应该这样做:
# ip route add 10.249.143.0/24 dev ppp0
现在,wifi 是打开还是关闭并不重要,因为您已经告诉系统如何将包路由到该网络。