首页 文章

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

提问于
浏览
1

我在网络上有一些装有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 回答

  • 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
    

相关问题