我在网络上有一些装有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 回答
好吧,事实证明NAT的命令不正确,工作版本: