Debian 上 VPN 网络上的 Iptables 端口转发链

Debian 上 VPN 网络上的 Iptables 端口转发链

我在设置网络时遇到问题。它几乎可以正常工作……但不是完全正常工作:)

我想访问乡村建筑中的摄像头。我可以访问没有公共 IP 的互联网,所以我决定创建 VPN。在乡下的房子里,我有一个 RaspberryPI(VPN 客户端)和 LTE 路由器(华为 B315),与 IP 摄像头连接在一起。在我家,我有带公共 IP 的调制解调器,还有另一个 RPI(VPN 服务器)。VPN 处于路由模式(RPI 创建单独的网络)。

总结一下:

  1. 网关 - 我家的调制解调器
  2. RPI1-连接到我家调制解调器的 VPN 服务器(IP:eth0-192.168.0.6(本地网络)、tun0-10.8.0.1(VPN 网络))
  3. PRI2-连接到另一所房子的调制解调器的 VPN 客户端(IP:eth0-192.168.0.100,tun0-10.8.0.2)
  4. 摄像机 - Planet ICA-4150(带有 active-x 网络界面) - 连接到另一所房子的调制解调器(IP:192.168.0.10)

VPN 可以工作 - 我可以互相 ping 两个 RPI,也可以从我家 ssh 到 RPI1,然后再到 RPI2。

我希望能够像这样打开相机的 Web 界面:example.ddns.net:9000。DDNS 已设置,并且正常运行。

在我家的调制解调器上,我将端口 9000 从外部转发到本地 IP 192.168.0.6:9000(RPI1)。

我的 iptables 设置:RPI1:

iptables -A PREROUTING -t nat -p tcp --dport 9000 -j DNAT --to-destination 10.8.0.2:9000
iptables -A PREROUTING -t nat -p udp --dport 9000 -j DNAT --to-destination 10.8.0.2:9000
iptables -A FORWARD -p tcp -d 10.8.0.2 --dport 9000 -j ACCEPT
iptables -A FORWARD -p udp -d 10.8.0.2 --dport 9000 -j ACCEPT
iptables -A POSTROUTING -t nat -j MASQUERADE

维护绩效指标2:

iptables -A PREROUTING -t nat -p tcp --dport 9000 -j DNAT --to-destination 192.168.0.10:80
iptables -A PREROUTING -t nat -p udp --dport 9000 -j DNAT --to-destination 192.168.0.10:80
iptables -A FORWARD -p tcp -d 192.168.0.10 --dport 80 -j ACCEPT
iptables -A FORWARD -p udp -d 192.168.0.10 --dport 80 -j ACCEPT
iptables -A POSTROUTING -t nat -j MASQUERADE

当我在浏览器中输入正确的地址时,我可以看到 Web 界面,但无法登录。当然,当我的笔记本电脑与摄像头本地连接时,我可以登录。我还做了一个实验,我将摄像头连接到我家的 LAN,并将我家调制解调器的一个端口直接导出到摄像头,这也有效,但前提是我重定向 TCP 和 UDP 端口。当我从我家的本地网络在浏览器中输入 192.168.0.6:9000 时,我也无法登录。

我也尝试将端口 9000 改为 24000,但没有成功。

有人知道我做错了什么吗? 也许我在 iptables 中遗漏了某些内容?

答案1

我认为这是因为您在浏览器的 9000 端口上获取了网页,但托管服务器的摄像头在端口 80 上看到了请求。因此,如果 post 操作放置了绝对 URL,它将发送到端口 80。您可以在浏览器的网络选项卡上检查这一点。如果是这种情况,请为目标 IP 和 dport 80 添加 iptable dnat

相关内容