我在连接到在 UNIX 上运行的远程 ftp 服务器时遇到问题。当我尝试连接时,它在欢迎屏幕上冻结,并且它 dos=esnt 提示输入密码和用户名。连接到 17.17.0.181。
220 欢迎使用 Blabla FTP 服务
它只是在那里冻结,如果我尝试用控制 c 或 z 杀死它,它不会死!我必须登录到另一个控制台并执行kill PID thingy。我知道我确定它与防火墙或路由有关,因为我可以从其他地方连接。
我的防火墙 iptables 有以下设置
modprobe ip_nat_ftp ports21
modprobe ip_conntrack_ftp
iptables -A FORWARD -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp -m tcp -m state --dport 21 --state NEW -j ACCEPT
iptables -A FORWARD -p tcp -m tcp -m state --sport 20 --state RELATED -j ACCEPT
iptables -A FORWARD -p tcp -m tcp -m state --dport 1024:65535 --sport 1024:65535 - -state RELATED -j ACCEPT
非常感谢您的帮助。
防火墙是否与 ftp 守护进程在同一台机器上运行?如果是这样,我认为您需要使用 INPUT 链,而不是 FORWARD 链。FORWARD 链用于数据包转发。当数据包应该在本地处理时,它们将通过 INPUT 链,而不是 FORWARD 链。
这个“绘图”(来自 netfilter 网站)解释了哪些链做什么。