默认网关似乎被忽略了

默认网关似乎被忽略了

这是我的手机的网络配置(请注意,rndis0 表示 USB 网络接口)

~ $ ifconfig
Warning: cannot open /proc/net/dev (Permission denied). Limited output.
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 1000  (UNSPEC)

rmnet_data2: flags=65<UP,RUNNING>  mtu 1500
        inet 100.145.149.154  netmask 255.255.255.252
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 1000  (UNSPEC)

rndis0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.90.238  netmask 255.255.255.0  broadcast 192.168.90.255
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 1000  (UNSPEC)

我可以 ping 连接 USB 电缆另一端的台式电脑的 IP

~ $ ping 192.168.90.175 # desktop computer's IP
PING 192.168.90.175 (192.168.90.175) 56(84) bytes of data.
64 bytes from 192.168.90.175: icmp_seq=1 ttl=64 time=0.486 ms
64 bytes from 192.168.90.175: icmp_seq=2 ttl=64 time=1.08 ms
^C
--- 192.168.90.175 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1016ms
rtt min/avg/max/mdev = 0.486/0.787/1.088/0.301 ms

但是在手机上,我无法 ping 通我的台式计算机通过标准以太网端口连接到的路由器:

~ $ ping 192.168.2.1
connect: Network is unreachable

这是意料之中的,因为我的手机上有路由表

~ $ su
:/data/data/com.termux/files/home # ../usr/bin/route -n                                                                                                                                                                                                                                                                    
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
100.145.149.152 0.0.0.0         255.255.255.252 U     0      0        0 rmnet_data2
192.168.90.0    0.0.0.0         255.255.255.0   U     0      0        0 rndis0

但即使我更改手机上的路由表以添加默认网关,我仍然无法访问路由器

:/data/data/com.termux/files/home # ../usr/bin/route add default gw 192.168.90.175 dev rndis0                                                                                                                                                                                                                              
:/data/data/com.termux/files/home # ../usr/bin/route -n                                                                                                                                                                                                                                                                    
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.90.175  0.0.0.0         UG    0      0        0 rndis0
100.145.149.152 0.0.0.0         255.255.255.252 U     0      0        0 rmnet_data2
192.168.90.0    0.0.0.0         255.255.255.0   U     0      0        0 rndis0
:/data/data/com.termux/files/home # ping 192.168.2.1
connect: Network is unreachable
2|:/data/data/com.termux/files/home # ping -I rndis0 192.168.2.1                                                                                                                                                                                                                                                           
PING 192.168.2.1 (192.168.2.1) from 192.168.90.238 rndis0: 56(84) bytes of data.
From 192.168.90.238: icmp_seq=1 Destination Host Unreachable
From 192.168.90.238: icmp_seq=2 Destination Host Unreachable

也许我需要在电脑上配置一些东西,然后我就会去做。但从错误消息来看,似乎手机这边也存在问题:具体来说,手机似乎忽略了路由表中的默认网关条目。例如,当我在 ping 中不指定接口时,我得到“网络不可达”。当我指定接口时,我从手机的 IP 而不是默认网关 (192.168.90.175:) 的 IP 获得“目标主机不可达”,如上面的日志所示,它是可以到达/ping 的。

相关内容