在 openSUSE (Leap 15.3) 上我有路由表:
0.0.0.0 AAA.BBB.145.1 0.0.0.0 UG 0 0 0 br0
AAA.BBB.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br0
192.168.178.0 192.168.178.1 255.255.255.0 UG 0 0 0 eth1
AAA.BBB.145.1 是默认网关(外部) 192.168.178.0 是通过 eth1 的内部网络
我可以通过默认网关访问外网。我可以直接访问第二个(内部)网络,例如192.168.178.11
但我无法使用服务访问它,例如使用 firefox 或 wget,因为系统会尝试通过外部网关 AAA.BBB.145.1 访问主机 192.168.178.11,当然,它对我的内部网络一无所知。
我虽然可以建议 Linux 通过 192.168.178.1 将所有流量路由到内部网络 192.168.178.0,但 Linux 似乎无法识别我的愿望,所以我想我在 eth1 上配置的专用路由错误?
答案1
我发现路由表没问题。
事实上,我可以 ping 到网络 eth1 中的内部设备,而 Firefox 却无法做到这一点,这让我调查了 Firefox 代理配置,结果发现 Firefox 将内部地址路由到了位于外网的 Firefox 代理(并且没有找到内部地址)。虽然地址 192.168.178.0 在应该排除代理的列表中,但 Firefox 没有这样做,我必须将完全限定的地址 192.168.178.X 放入代理排除列表中。之后Firefox就可以访问内网主机了。 (还没有尝试过“wget”)
(在这个小环境下澄清一下:
0.0.0.0 AAA.BBB.145.1 0.0.0.0 UG 0 0 0 br0
默认路由(所有未被其他路由条目处理的数据包都被传递到下一个路由器(例如到外部的下一个网关)AAA.BBB.145.1)
AAA.BBB.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br0
带有 AAA.BBB.NNN.MMM/16 的地址被视为附加到本地网络的本地地址,并直接发送到本地附加网络上的计算机(底层交换机/路由器/网络对于主机来说并不重要,因为底层网络结构/架构将处理这个问题)
192.168.178.0 192.168.178.1 255.255.255.0 UG 0 0 0 eth1
192.168.178.X 的地址被传递到网络 eth1)