我有一台 Linux 机器 (100.60.120.12,vlan 标记 (id:21),默认网关:100.60.120.11),我想让其访问互联网。我无法更改此 Linux 机器中的设置。
我有 2 个选择 - (a)将 Linux 机箱连接到附近可以访问互联网的 PC,然后以某种方式使用该 PC 为 Linux 机箱提供互联网访问。 (b)使用路由器为 Linux 机箱提供互联网访问。
我觉得选项 (b) 可能是更好的选择。因此设置如下:
Linux 机箱 <-> 运行 dd-wrt 的 tp-link tl-wr841nd(IP:192.168.1.2)<-> tp-link Archer(IP:192.168.1.1,提供互联网访问)。
我尝试在 dd-wrt 中设置 vlan 选项,这样我就可以从 Linux 机器 ping 192.168.1.2。但我无法 ping 192.168.1.1,也无法 ping 互联网 IP(例如 8.8.8.8)——它说主机不可访问)。
我怎样才能让 Linux 机器访问互联网?
编辑-vlan 设置和 IP 地址:
100.64.121.12 在接口 eth0.21 上;其余的在 br0 上。
编辑 2-IP 路由和 IP 地址信息
注意:我使用了 eth1,因为我意识到那是 LAN 端口。在 eth1 上设置 vlan 标记 21 后,我可以从 Linux 机器 ping 100.64.121.11。但我无法 ping 互联网 IP。在这种情况下,以下是评论中要求的一些进一步信息。
ip route
100.64.121.0/24 dev eth1.21 scope link src 100.64.121.11
127.0.0.0/8 dev lo scope link
192.168.1.0/24 dev br0 scope link src 192.168.1.2
ip addr
1: lo: mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
valid_lft forever preferred_lft forever
2: eth0: mtu 1500 qdisc sfq master br0 state DOWN qlen 1000
link/ether 10:fe:ed:df:f8:3f brd ff:ff:ff:ff:ff:ff
3: eth1: mtu 1500 qdisc sfq master br0 state UP qlen 1000
link/ether 10:fe:ed:df:f8:40 brd ff:ff:ff:ff:ff:ff
11: br0: mtu 1500 qdisc noqueue state UP qlen 1000
link/ether 10:fe:ed:df:f8:3f brd ff:ff:ff:ff:ff:ff
inet 192.168.1.2/24 brd 192.168.1.255 scope global br0
valid_lft forever preferred_lft forever
12: wlan0: mtu 1500 qdisc noqueue master br0 state UP
link/ether 10:fe:ed:df:f8:40 brd ff:ff:ff:ff:ff:ff
13: eth1.21@eth1: mtu 1500 qdisc noqueue state UP
link/ether 10:fe:ed:df:f8:40 brd ff:ff:ff:ff:ff:ff
inet 100.64.121.11/24 brd 100.64.121.255 scope global eth1.21
valid_lft forever preferred_lft forever
答案1
您的 VLAN 配置似乎正确,但是:
DD-WRT 网关缺少默认路由(又称默认网关)在其路由表中。如果没有它,它只知道通往两个直接连接子网的路径,而不知道通往世界其他地方的路径。
配置192.168.1.1为默认网关,这样
ip route
会显示:default via 192.168.1.1 dev br0
Archer 网关缺少另一个方向的路由——通往 100.64.121.0/24 网络。如果没有它,Linux 设备就可以发送数据包到但无法收到任何反馈。
通过 DD-WRT 配置到 100.64.121.0/24 的静态路由(具体来说通过 192.168.1.2 – 面向 Archer 的地址)。
如果 Archer 固件不允许您配置静态路由,另一种方法(即“胶带”方法)是在 DD-WRT 上启用 NAT 或伪装(与通常从 LAN 到 WAN 接口使用的 NAT 相同)。启用 NAT 后,Archer 网关将只能看到 192.168.1.2,而看不到新网络。
答案2
情况:
我有一个 Linux 机箱(100.60.120.12,vlan 标记(id:21),默认网关:100.60.120.11),我正在尝试让其访问互联网。
Linux 机箱 <-> 运行 dd-wrt 的 tp-link tl-wr841nd(IP:192.168.1.2)<-> tp-link Archer(IP:192.168.1.1,提供互联网访问)。
步骤1:
将电缆从 DD-WRT 单元上未使用的 LAN 端口连接到您的 Linux 机器。
第2步:
在 DD-WRT 盒上,您需要将该端口放入其自己的 VLAN。
步骤3:
这将在 DD-WRT 盒上创建一个新的虚拟子接口。该子接口需要 IP 地址 100.60.120.11,并且需要具有与您的 Linux 盒相同的子网掩码。只是那个子接口。我已经很久没有摆弄过 DD-WRT 了,所以我不知道具体该怎么做,您可能需要在设备的 JFFS2 分区或类似分区中创建并存储启动脚本才能真正做到这一点。
基本上,您的路由器需要 2 个 LAN 接口,一个用于 192.168.1.x,另一个用于 100.60.120.x(假设您的 Linux 机器是 /24,您需要确认这一点)
步骤4:
我认为它可能会起作用。