我一直想自己解决这个问题,但几乎不可能……问题是我有两台 PC 在同一个网络上,一台运行 Windows(192.168.61.100),另一台运行 Debian(192.168.61.200)。我向运行 W 的 PC 添加了一条静态路由(route add -p 192.168.0.0 mask 255.255.255.0 192.168.60.254),我可以从 192.168.61.100 完美地 ping 通 IP 地址为 192.168.0.170 的 PC,反之亦然。当我尝试向运行 Debian 的 PC 添加相同的静态路由时,问题出现了,当我尝试这样做时,我得到了: root@satv:/home/satv# route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.60.254 SIOCADDRT:网络不可达以下是一些有用的东西:
是否配置
eth0 Link encap:Ethernet HWaddr 1c:1b:0d:c0:a8:89
inet addr:192.168.61.200 Bcast:192.168.61.255 Mask:255.255.255.0
inet6 addr: fe80::1e1b:dff:fec0:a889/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2965 errors:0 dropped:165 overruns:0 frame:0
TX packets:1389 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:234251 (228.7 KiB) TX bytes:131929 (128.8 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:2 errors:0 dropped:0 overruns:0 frame:0
TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:172 (172.0 B) TX bytes:172 (172.0 B)
路线-n
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.61.254 0.0.0.0 UG 0 0 0 eth0
192.168.61.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
IP 路由列表
default via 192.168.61.254 dev eth0
192.168.61.0/24 dev eth0 proto kernel scope link src 192.168.61.200
网络状态监测
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.61.254 0.0.0.0 UG 0 0 0 eth0
192.168.61.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
显然我需要从 192.168.61.200 ping 192.168.0.170,反之亦然。有人能帮我吗?我已经为此工作了好几天,我非常绝望……提前谢谢大家。
答案1
您尝试在路由中添加的下一跳与您尝试配置路由的计算机不在同一子网中。
也就是说,192.168.61.200
网络掩码255.255.255.0
仅涵盖从192.168.61.1
到的地址192.168.61.254
,并且您必须使用该网络中的地址作为下一跳。
也许您的 Windows 计算机有不同的网络掩码也覆盖192.168.16.0/24
网络。
答案2
您的路线有些奇怪,而且看起来这正是错误消息所反映的内容。
即,我认为这SIOCADDRT: Network is unreachable
具体与网关地址有关,以及如何没有可以到达该地址的路由(本地链接)。
网络实际上应该是/23
( 192.168.60.0/23
,即192.168.60.0-192.168.61.255
) 而不是配置的 吗/24
?或者为什么机器应该192.168.61.0/24
使用其网络之外的东西作为网关地址?
您很可能能够强迫route
或ip route
做 Windows 显然做过的事情route
,假设它们实际上具有相同的网络掩码(隐式地假装有一条路由说 192.168.61.254 是本地链接),或者如果没有,只需先添加这条路由,但在我看来,您可能想直接解决更根本的奇怪问题。