在我运行 debian 操作系统的树莓派中,我有 2 个接口,wlan0 和 eth0。两个接口都从两个网关服务器获取 dhcp。我如何 ping 两个 LAN?例如 :
eth0 -> gateway 10.1.22.1 -> LAN 10.0.0.0/8
wlan0 -> gateway 192.168.10.1 -> LAN 192.168.10.0/24
-> also can browse internet
我得到的路由表是:
Destination Gateway Genmask Flags Metric Ref Use Iface
default 10.1.22.1 0.0.0.0 UG 203 0 0 eth0
default 192.168.10.1 0.0.0.0 UG 304 0 0 wlan0
10.1.22.0 0.0.0.0 255.255.255.0 U 203 0 0 eth0
192.168.10.0 0.0.0.0 255.255.255.0 U 304 0 0 wlan0
我可以 ping 通 LAN 10.0.0.0/8,但无法浏览互联网。我如何浏览互联网并 ping LAN 10.0.0.0/8 ?
抱歉,这是基本的 Linux 网络配置。我对linux操作系统不熟悉。希望有人能帮我弄清楚。
答案1
该default
路由用于不在本地网络上的计算机(即用于访问 Internet)。
您有两条default
路线,这有点令人困惑,因为您说您有两种不同的方式访问互联网。
我猜其中之一是错误的,并且可能10.1.22.1
没有充当互联网网关,这就是您无法访问互联网的原因。
我想解决方案是删除此路由,只有一个默认路由,并提供一个为您提供 Internet 访问的网关。
如果您仍想 ping 10.0.0.0/8 上但在 LAN 网段 (10.1.22.0/24) 之外的主机,则将网关目标设置为 10.0.0.0/8 而不是default
,因此只有 10.0.0.0/8 的流量网络(而不是互联网流量)通过该路线。
答案2
您应该删除接口上的默认路由eth0
,或者至少使用比您想要用于访问互联网的接口更高的度量值。您现在有两条相互竞争的默认路由,并且您的 RPi 选择了错误的接口将数据包路由到非本地地址。
您的问题也存在不一致:在文本中您提到 LAN 10.0.0.0/8
,但路由表有 netmask 255.255.255.0
,即10.0.0.0/24
。
答案3
我终于通过在 /lib/dhcpcd/dhcpcd-hooks 中添加更多路由并添加包含内容的 40 路由文件来完成设置
ip route add 10.0.0.0/8 via 10.1.22.1
并在 /etc/dhcpcd.conf 中添加更多行
interface wlan0
metric 100
interface eth0
metric 200
现在我可以 ping 通两个 LAN。还有一个问题是,在网关 192.168.10.1 上实际上也有 IP 地址 10.0.0.0/8。那么,我们如何分离例如从 10.0.0.1 到 10.0.0.21 的 IP 地址应该来自网关 10.1.22.1,从 10.0.0.22 到 10.254.254.254 将从 192.168.10.1 进入网关,网关 192.168.10.1 也可以访问互联网。但 10.1.22.1 没有互联网(仅用于 voip 服务器网关)。