【问题标题】:Routing from eth0 to eth1 on raspberry with Jessie Lite doesn't work使用 Jessie Lite 在 raspberry 上从 eth0 路由到 eth1 不起作用
【发布时间】:2017-10-25 22:21:06
【问题描述】:

我在网络上有几个装有 Jessie lite 的 Raspberry Pi2。我希望他们共享 3G 加密狗的互联网连接,但我无法让它工作。

这里有一些细节:

RPi 和其他一些设备都在同一个 10.0.0.x 网络上。我在同一子网上为它们(RPi 和设备)配置了固定 IP 地址,并且工作正常,它们都可以互相交谈。 我需要固定 IP,因为我希望能够对所有设备进行 NAT 并稍后从 Internet 访问它们。

只有一个 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 设备的互联网数据包应该路由到网关。但他们没有。

【问题讨论】:

  • 你是用什么命令获取路由的?
  • 查看已接受的答案 ;)
  • 我的意思是打印路线,而不是设置路线。你用过traceroute 吗?您的输出似乎与此命令的输出完全不同。
  • 我没有那台机器运行了,但是显示当前路由表的命令应该是 route -n 或 netstat -r -n

标签: routing raspberry-pi nat debian-jessie


【解决方案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

【讨论】:

    猜你喜欢
    • 2016-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-22
    • 2019-02-09
    • 2015-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多