使用Jessie Lite从覆盆子上的eth0路由到eth1并不起作用

时间:2017-05-25 09:57:41

标签: routing raspberry-pi nat debian-jessie

我在网络上加载了一些装有Jessie lite的Raspberry Pi2。我希望他们分享3G加密狗的互联网连接,但我无法使其工作。

以下是一些细节:

RPi与其他一些设备一起在同一个10.0.0.x网络上。我在同一个子网上配置了固定IP地址的RPI(设备和设备),工作正常,可以互相通话。 我需要固定的IP,因为我希望能够NAT所有设备并在以后从互联网访问它们。

只有一个RPi(eth0地址10.0.0.10,让我们称之为RPi0)有一个互联网连接,来自华为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通公共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设备的互联网数据包应该路由到网关。但他们没有。

1 个答案:

答案 0 :(得分:1)

好的,事实证明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