FTP连接被拒绝错误解决问题

时间:2020-01-09 10:38:43  来源:igfitidea点击:

如果在Linux下使用FTP客户端时出现错误(ftp连接被拒绝),例如连接被拒绝,则可以使用以下方法解决此问题。

确保已安装ftp服务器

确保已安装ftp服务器并且服务正在运行。
在Debian Linux下,您可以使用dpkg命令来验证是否已安装ftp服务器:

$ dpkg -l | grep -i "ftp"

输出:

ii  ftpd                           0.17-21                       FTP server

或运行以下命令:

$ dpkg -l | grep -i ftp

在Red Hat/Novell Suse/Fedora Linux下,尝试rpm命令:

# rpm -qa | grep -i "*ftp*"

无论如何,如果您安装了ftp软件包,它将返回输出。
如果未安装ftp软件包,它将通知您或根本不提供任何输出。
自然,下一个逻辑步骤是安装FTP服务器。

在Red Hat/Fedora Linux下,按如下所示安装vsftpd服务器:

# up2date vsftpd

或者,如果您使用的是Fedora Linux,请使用yum:

# yum install vsftpd

如果您使用的是Debian Linux,请使用apt-get命令:

# apt-get install vsftpd

接下来,通过修改/etc/vsftpd.conf文件来配置vsftpd。

ftp服务器是否正在运行(端口21是否打开)?

使用ssh登录到ftp服务器并尝试telnet端口21(以查看端口是否打开):

$ telnet localhost 21

接下来运行netstat -tulpn命令以查看端口21是否处于打开状态:

$ netstat -tulpn | grep :21

输出:

tcp        0      0 0.0.0.0:21             0.0.0.0:*               LISTEN

或者尝试以下命令:

$ netstat -a | grep ftp

输出:

tcp        0      0 *:ftp                   *:*                     LISTEN

如果端口未打开,请启动ftp服务器/service。
在RedHat/Fedora Linux下使用service命令:

# service vsftpd start

在Debian Linux下,使用以下命令:

# /etc/init.d/vsftpd start

FTP用户权限

是特定用户不允许使用您的vsftpd ftp服务器,然后确保该用户具有使用ftp服务器的权限。
文件/etc/ftpusers禁止使用vsftpd服务器访问的用户列表。
确保用户名不在此文件中。

安全性或防火墙

确保iptables Firewall/tcpd不会阻止对ftp服务器的访问。
在ftp服务器上运行以下命令(通过ssh登录):

# iptables -L -n

输出:

Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
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           tcp dpts:6881:6882
ACCEPT     udp  --  192.54.1.254         0.0.0.0/0           udp dpt:514
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpts:80 state NEW,RELATED,ESTABLISHED
LOG        all  --  0.0.0.0/0            0.0.0.0/0           LOG flags 0 level 4
DROP       all  --  0.0.0.0/0            0.0.0.0/0

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0

上面的输出不允许端口21(端口21被防火墙阻止)。
解决方法:您需要使用iptables规则打开端口21。
确保文件/etc/hosts.deny(TCPD包装器)不会阻止ftp主机访问端口21。