我使用这个 iptables 配置它只是将 2121 的连接重定向到端口 21(用于以用户而不是 root 身份运行 ftp)
*nat
:PREROUTING ACCEPT [200:39210]
:INPUT ACCEPT [6:360]
:OUTPUT ACCEPT [21:1323]
:POSTROUTING ACCEPT [21:1323]
-A PREROUTING -i eth0 -p tcp -m tcp --dport 2121 -j DNAT --to-destination 192.168.0.2:21
COMMIT
# Completed on Sun Jan 24 19:17:55 2016
# Generated by iptables-save v1.4.20 on Sun Jan 24 19:17:55 2016
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [2996:188699]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 2121 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -p icmp -j ACCEPT
-A FORWARD -i lo -j ACCEPT
-A FORWARD -d 192.168.0.2/32 -i eth0 -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Sun Jan 24 19:17:55 2016
ip4 转发已启用此配置在两台虚拟机上完美运行:一台 slackware,一台 centos6 但不是我的带有 slackware 的主机。我可以检查什么?我忘记了:服务器 ftp 在 chroot 上
终于找到了解决办法。ftp 在 chroot 上,并且是纯 ftpd 这一行
不要在 chroot 上工作,但要在 chroot 上工作
这条线
在 chroot 中完美运行
我使用这个防火墙脚本