使用 Jessie Lite 在树莓派上从 eth0 路由到 eth1 不起作用
Routing from eth0 to eth1 on raspberry with Jessie Lite doesn't work
我在网络上有几台装有 Jessie lite 的 Raspberry Pi2。我想让他们共享一个 3G 加密狗的互联网连接,但我做不到。
以下是一些详细信息:
RPi 与其他一些设备都在同一个 10.0.0.x 网络上。我在同一个子网上用固定的 IP 地址配置了它们(RPi 和设备)并且工作正常,它们都可以互相交谈。
我需要固定 IP,因为我希望能够对所有设备进行 NAT 并稍后从互联网访问它们。
只有一个树莓派(eth0地址10.0.0.10,暂且称它为树莓派0)有互联网连接,来自华为3G加密狗。
加密狗创建一个带有自动地址的 eth1 接口,该地址似乎始终为 192.168.8.100。如果我尝试将其强制设置为手动 IP,我将无法访问互联网。
开箱即用,当我插入 USB 密钥时,RPi0 可以访问互联网并解析地址。
现在我想让 10.0.0.x 上的所有其他设备通过具有 USB 加密狗的 RPi 访问互联网。所以我想 10.0.0.10 需要充当网关并通过 eth1 路由流量。我已经按照很多教程了解了,但我一定是遗漏了一些东西,因为我无法让它发挥作用。
我启用了 NAT 设置 net.ipv4.ip_forward=1 in /etc/sysctl.conf
然后我尝试为所有必须通过 eth1 的流量指定一个 NAT 规则
sudo iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
无法再 ping public IP
路线如下所示:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default hi.link 0.0.0.0 UG 247 0 0 eth1
10.0.0.0 * 255.255.255.0 U 202 0 0 eth0
192.168.8.0 * 255.255.255.0 U 247 0 0 eth1
我做错了什么?
编辑
加密狗自动创建一个以太网端口,地址为 192.168.8.100,但网关地址为 192.168.8.1(在 ip 表中应为 hi.link)。
所以我希望它能正常工作,来自其他 10.0.0.x 设备的互联网数据包应该路由到网关。但他们没有。
好的,原来NAT的命令不正确,工作版本:
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -A FORWARD -i eth1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
我在网络上有几台装有 Jessie lite 的 Raspberry Pi2。我想让他们共享一个 3G 加密狗的互联网连接,但我做不到。
以下是一些详细信息:
RPi 与其他一些设备都在同一个 10.0.0.x 网络上。我在同一个子网上用固定的 IP 地址配置了它们(RPi 和设备)并且工作正常,它们都可以互相交谈。 我需要固定 IP,因为我希望能够对所有设备进行 NAT 并稍后从互联网访问它们。
只有一个树莓派(eth0地址10.0.0.10,暂且称它为树莓派0)有互联网连接,来自华为3G加密狗。 加密狗创建一个带有自动地址的 eth1 接口,该地址似乎始终为 192.168.8.100。如果我尝试将其强制设置为手动 IP,我将无法访问互联网。
开箱即用,当我插入 USB 密钥时,RPi0 可以访问互联网并解析地址。
现在我想让 10.0.0.x 上的所有其他设备通过具有 USB 加密狗的 RPi 访问互联网。所以我想 10.0.0.10 需要充当网关并通过 eth1 路由流量。我已经按照很多教程了解了,但我一定是遗漏了一些东西,因为我无法让它发挥作用。
我启用了 NAT 设置 net.ipv4.ip_forward=1 in /etc/sysctl.conf
然后我尝试为所有必须通过 eth1 的流量指定一个 NAT 规则
sudo iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
无法再 ping public IP
路线如下所示:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default hi.link 0.0.0.0 UG 247 0 0 eth1
10.0.0.0 * 255.255.255.0 U 202 0 0 eth0
192.168.8.0 * 255.255.255.0 U 247 0 0 eth1
我做错了什么?
编辑
加密狗自动创建一个以太网端口,地址为 192.168.8.100,但网关地址为 192.168.8.1(在 ip 表中应为 hi.link)。 所以我希望它能正常工作,来自其他 10.0.0.x 设备的互联网数据包应该路由到网关。但他们没有。
好的,原来NAT的命令不正确,工作版本:
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -A FORWARD -i eth1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT