Linux 端口转发至不同 IP

Linux 端口转发至不同 IP

这是我的情况:

上网本(192.168.1.2)===>(192.168.1.1)Linux 服务器(192.168.0.4)===> NAS(192.168.0.2)上网本(192.168.1.2)===
>(192.168.1.1)Linux 服务器(192.168.0.4)===> 路由器(192.168.0.1)

我想使用 iptables 进行端口转发,以便使用我的上网本通过端口 80 访问 NAS 和路由器。两台服务器都在端口 80 上提供服务,因此根据我的决定,有时我会在 NAS 上打开端口 80,有时在路由器上打开端口 80。

IP 转发已启用,伪装也已启用。

这是我的 /etc/iptables.ipv4.nat 文件:

由 iptables-save v1.4.14 于 2014 年 4 月 30 日星期三 23:02:30 生成  
*nat:预输出接受[42:14791]:输入接受[31:2623]:输出接受[1:48]
:路由后接受 [1:48]  
-A PREROUTING -i wlan1 -p tcp -m tcp --dport 22 -j REDIRECT --to-ports 22  
-A 预路由 -i wlan1 -p udp -m udp --dport 53 -j REDIRECT --to-ports 53  
-A PREROUTING -i wlan1 -p tcp -m tcp --dport 5901 -j DNAT --to-destination 192.168.0.2:5901  
-A PREROUTING -i wlan1 -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j REDIRECT --to-ports 9040  
-A POSTROUTING-o wlan1-j MASQUERADE 提交  
 于 2014 年 4 月 30 日星期三 23:02:30 完成  
 由 iptables-save v1.4.14 于 2014 年 4 月 30 日星期三 23:02:30 生成  
*过滤器:输入接受[904:141326]:转发接受[0:0]:输出接受[946:157235]  
-A 转发 -d 192.168.0.0/24 -i wlan1 -o wlan0 -p tcp -m tcp --dport 5901 -j 接受  
-A 转发 -d 192.168.0.0/24 -i wlan1 -o wlan0 -p tcp -m tcp --dport 80 -j 接受 提交  
 于 2014 年 4 月 30 日星期三 23:02:30 完成  

此外,在我的路由器(192.168.0.1)上我有一个静态路由:网络 192.168.1.0,子网 255.255.255.0,网关 192.168.0.4

之所以有多个 /24 网络,是因为 192.168.1.0 网络上运行着一个 DHCP 服务器,用于连接 Linux 服务器的所有设备,该服务器充当接入点和 TOR 路由器(端口 9040)。同时,路由器 192.168.0.1 上也运行着一个 DHCP 服务器,用于连接路由器的设备。

顺便说一下,端口 5901 的端口转发运行良好。

答案1

除非我理解错了,否则为什么不简单地将 Linux 服务器上的不同目标端口映射到后端设备上的端口 80。例如:

Netbook --> 192.168.1.1:8080 (Linux Server) --> 192.168.0.2:80 (NAS)
Netbook --> 192.168.1.1:8081 (Linux Server) --> 192.168.0.1:80 (Router)

您已经有了所需的命令,只需要--dport在 Linux 服务器上设置为不同的目标端口,同时在 中指定端口 80 --to-destination

相关内容