无法从远程服务器连接到 VSFTPD

无法从远程服务器连接到 VSFTPD

我的 FTP 服务器是带有 VSFTPD 的 CentOS 5.4。

当我尝试ls使用 FTP 连接到我的服务器时,我得到了以下信息:

ftp> ls
229 Entering Extended Passive Mode (|||12206|)
ftp: Can't connect to `000.000.000.000': Connection refused
500 Illegal PORT command.
425 Use PORT or PASV first.

我可以mkdir毫无问题地做到。

当我从同一台服务器连接到我的 ftp 服务器时,没有遇到任何问题。

我的 iptable 中端口 20 和 21 已打开。我该如何修复?

谢谢!!

更新 :

telnet myftpserver.com 20
Trying 000.000.000.000...
telnet: connect to address 000.000.000.000: Connection refused
telnet: Unable to connect to remote host

[root@internal vsftpd]# /sbin/iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
RH-Firewall-1-INPUT  all  --  0.0.0.0/0            0.0.0.0/0           
SSH_CHECK  tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:22 state NEW 

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
RH-Firewall-1-INPUT  all  --  0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain RH-Firewall-1-INPUT (2 references)
target     prot opt source               destination         
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:33988 
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:3306 
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:20 
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:21 
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80 
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 255 
ACCEPT     esp  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     ah   --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     udp  --  0.0.0.0/0            224.0.0.251         udp dpt:5353 
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:631 
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:631 
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain SSH_CHECK (1 references)
target     prot opt source               destination         
           all  --  0.0.0.0/0            0.0.0.0/0           recent: SET name: SSH side: source 
DROP       all  --  0.0.0.0/0            0.0.0.0/0           recent: UPDATE seconds: 60 hit_count: 4 name: SSH side: source 

答案1

该问题与被动 FTP 使用 20 和 21 以外的端口有关。请在此处阅读详细信息:http://slacksite.com/other/ftp.html

通常我会在 vsftpd.conf 文件中为被动 FTP 设置一个端口范围,然后在防火墙上打开这些端口。

另外,我主要使用 freebsd,但我很确定 Linux 上有一种方法可以动态打开 FTP PASV 端口,但其他人必须对此有所了解。我会看看能找到什么。

在 Linux 中,运行命令:

modprobe ip_conntrack_ftp

应该纠正‘进入扩展被动模式’时的连接问题。

编辑:

谷歌搜索结果第一条: http://www.cyberciti.biz/faq/iptables-passive-ftp-is-not-working/

更好的解释: http://www.sns.ias.edu/~jns/wp/2006/01/12/iptables-connection-tracking-ftp/

相关内容