宽带连接上的端口 80 转发

宽带连接上的端口 80 转发

我们有一台 Ubuntu 20.04 服务器,连接到 enp1s0 上的宽带。我们还有一个安全摄像头连接到 iface enp2s0 上的服务器。该摄像头在 192.168.240.1 上有一个网关,并在 192.168.240.2 上为其 Web 应用程序提供服务。当前路由为:

Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.4.1     0.0.0.0         UG        0 0          0 enp1s0
192.168.4.0     0.0.0.0         255.255.252.0   U         0 0          0 enp1s0
192.168.240.0   0.0.0.0         255.255.255.0   U         0 0          0 enp2s0
192.168.240.2   192.168.240.1   255.255.255.255 UGH       0 0          0 enp2s0

这个想法是,远程监控位置的某个人可以浏览边缘计算机的外部 IP,并控制摄像头。因此,我们认为我们需要做的是将端口 80 上的请求从调制解调器转发到摄像头。我们只能使用 iptables,因此无法使用 ufw,因为它已被禁用。

我们创建了以下脚本来设置转发:

IP=192.168.4.17
CAM_IP=192.168.240.2
PORT=80
 
echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -F -t nat
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to $CAM_IP
iptables -t nat -A POSTROUTING -p tcp -d $CAM_IP --dport 80 -j SNAT --to $IP

到目前为止,我们已经能够在同一子网中的计算机上运行此功能,但无法成功处理来自外部的请求(我们确实在调制解调器中设置了端口转发)。论坛上有很多关于此场景的变体,但我们无法找到这个确切的版本。

如能提供任何帮助解决此问题,我们将不胜感激!

相关内容