FTP NAT 的 iptables 规则

FTP NAT 的 iptables 规则

我正在尝试创建一个 NAT 功能以便一次完成 2 项任务。

  1. 公网用户可以访问FTP服务器
  2. LAN 中的用户可以使用相同的 WAN 地址 203.XXX访问 FTP 服务器
network topology
                               [---] win10 PC
   \       /                   [ - ] 10.0.0.4
[wireless router]------------- [ _ ]
WAN:203.x.x.x                   _______ 
LAN gateway:10.0.0.138         /      / laptop **linux FTP server** 
                              /______/  iptables **NAT running here**
                              \       \ wlan0:10.0.0.113
                               \_______\    port:20,21
                                             passive:6000:7000

现在 FTP 服务器只能通过 LAN 访问ftp://10.0.0.113 我想将端口转发到本地 FTP 服务器,这样任何用户都可以使用 WAN 地址 203.xxx 登录 FTP 服务器。我使用 Windows 10 进行测试,它们位于同一个 LAN 中。

*nat
:PREROUTING ACCEPT [280:86644]
:INPUT ACCEPT [79:4030]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -j LOG
-A PREROUTING -d 203.213.238.12/32 -p tcp -m tcp --dport 21 -j DNAT --to-destination 10.0.0.113:21
-A PREROUTING -d 203.213.238.12/32 -p tcp -m tcp --dport 20 -j DNAT --to-destination 10.0.0.113
-A PREROUTING -d 203.213.238.12/32 -p tcp -m tcp --dport 6000:7000 -j DNAT --to-destination 10.0.0.113
-A OUTPUT -j LOG
-A OUTPUT -d 203.213.238.12/32 -p tcp -m tcp --dport 21 -j DNAT --to-destination 10.0.0.113:21
-A OUTPUT -d 203.213.238.12/32 -p tcp -m tcp --dport 20 -j DNAT --to-destination 10.0.0.113
-A OUTPUT -d 203.213.238.12/32 -p tcp -m tcp --dport 6000:7000 -j DNAT --to-destination 10.0.0.113
-A POSTROUTING -j LOG
-A POSTROUTING -d 10.0.0.113/32 -o wlan0 -p tcp -m tcp --dport 21 -j SNAT --to-source 10.0.0.138:21
-A POSTROUTING -d 10.0.0.113/32 -o wlan0 -p tcp -m tcp --dport 20 -j SNAT --to-source 10.0.0.138
-A POSTROUTING -d 10.0.0.113/32 -o wlan0 -p tcp -m tcp --dport 6000:7000 -j SNAT --to-source 10.0.0.138
COMMIT
# Completed on Thu Mar  2 19:40:51 2017
# Generated by iptables-save v1.4.21 on Thu Mar  2 19:40:51 2017
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [412:52590]
-A INPUT -i wlan0 -j ACCEPT
-A FORWARD -o wlan0 -j ACCEPT
-A FORWARD -i wlan0 -j ACCEPT
COMMIT

我不确定我错过了什么或者配置中存在一些逻辑错误。任何帮助都会得到适当的帮助。

答案1

端口转发是在路由器上设置的,它允许您将进入该接口的指定端口的所有流量发送到特定地址(和端口)。这通常在家用路由器上完成,以将流量从路由器的公共端转发到私有端。

重定向内部流量,您可能需要在路由器的内部接口上设置转发语句,或者考虑使用目标服务器的内部网络地址,或者使用内部网络上服务器的 FQDN 并允许内部 DNS 服务器进行转换。

如果它是路由器的配置,您给出的 iptables 示例可能会有效。

相关内容