我在连接到 UNIX 上运行的远程 FTP 服务器时遇到问题。当我尝试连接时,它会冻结在欢迎屏幕上,并且它提示输入密码和用户名。已连接到 17.17.0.181。220
欢迎使用 Blabla FTP 服务
它只是冻结在那里,如果我尝试使用控制 c 或 z 杀死它,它不会死!我必须登录到另一个控制台并执行杀死PID东西。我确信这与防火墙或路由有关,因为我可以从其他地方连接。
我的防火墙 iptables 具有以下设置
modprobeip_nat_ftpports21
modprobeip_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
非常感谢大家的帮助。
答案1
防火墙是否与 ftp 守护程序在同一台机器上运行?如果是这样,我认为您需要使用 INPUT 链,而不是 FORWARD 链。FORWARD 链用于数据包转发。当数据包应在本地处理时,它们将通过 INPUT 链,而不是 FORWARD 链。
这张“图画”(来自 netfilter 网站)解释了哪些链起什么作用。
Incoming / \ Outgoing
-->[Routing ]--->|FORWARD|------->
[Decision] \_____/ ^
| |
v ____
___ / \
/ \ |OUTPUT|
|INPUT| \____/
\___/ ^
| |
----> Local Process ----