我正在尝试使用 RPi 将流量转发到我的家庭网络服务器。也就是说,远程用户应该从任何地方通过互联网连接到网络服务器。设置如下:RPi 通过 ppp0 接口(蜂窝互联网)获得互联网访问权限。网络服务器通过 eth0 接口连接到 RPi:
我已经尝试过以下脚步设置从 ppp0 到 eth0 的转发,但没有成功。
我可以看到是否配置每次我重新启动互联网连接时,ppp0 上的 IP 地址都会更改 - 我认为这很合理,因为蜂窝提供商不会为我保留静态 IP 地址。另一方面,谷歌搜索“我的 IP 是什么”会给我一个不同的 IP 地址。我假设后者是我的外部 IP 地址。因此,我使用它来 ping 我的 RPi,但在 wireshark 中看不到任何传入的 ping 流量。事实上,我尝试 ping 两个 IP 地址 - 通过 ifconfig 和 google 获取,但 ping 超时。
由于我在 ppp0 接口的 wireshark 中没有看到任何传入的 ping 包,因此我假设它们没有到达我的 RPi。但为什么呢?我在 ppp0 上可以正常访问互联网。
答案1
蜂窝网络不支持传入 TCP 连接,因为它们使用运营商级网络地址转换。
我假设后者是我的外部IP地址。
错误的假设。它是设备的外部 IP 地址,它正在为您(可能还有很多其他人)发出请求。它不知道传入的 TCP 连接是发给您的。
由于我在 ppp0 接口的 wireshark 中没有看到任何传入的 ping 包,因此我假设它们没有到达我的 RPi。但为什么呢?我在 ppp0 上可以正常访问互联网。
正确,它们没有。它们被接收中间盒运营商级 NAT 设备,它们被寻址到该设备。此设备具有公共 IP 地址,并将互联网桥接到运营商的专用网络。专用网络上的设备(例如您的设备)没有公共 IP 地址。