linux下ftp 无法连接目标主机报421 Service not available, remote server has closed connection

问题描述:在linux虚拟机中创建一个新用户并指定了宿主目录(命令: useradd -d /root/ftp ftp123),虚拟机中使用ftp软件是proftpd,

                    在使用ftp123用户远程通过ftp 登录linux服务器时报如下错误:

                   [root@linux188 ~]# ftp 10.44.1.153
                   Connected to 10.44.1.153.
                  220 ProFTPD 1.2.10 Server (Ftp Default Server) [10.44.1.153]
                  500 AUTH not understood
                  500 AUTH not understood
                  KERBEROS_V4 rejected as an authentication type
                  Name (10.44.1.153:root): test  
                  331 Password required for test.
                  Password:
                  530 Login incorrect.
                  Login failed.
                  421 Service not available, remote server has closed connection
                  ftp>

 

问题分析:

                 1、根据报错信息“421 Service not available, remote server has closed connection”以为是proftpd服务没有开,

                       通过重启服务器(service proftpd restart)发现 其实服务是好的,重启proftpd服务之后再用ftp 去连接服务器还是

                        同样的错误;

                 2、以为服务器设置了防火墙,通过查看防火墙是关着的,那也不是防火墙的原因造成的;

                 3、检查宿主目录(/root/ftp)的权限 ,经查看/root目录:拥有者是有读写执行权限、所属组与其它用户都有读与执行权限,/root/ftp目录:            

                        拥有者是有读写执行权限、所属组与其它用户有读权限,问题就出在这里了其它用户没有执行权限,导致ftp无法访问。

 

碰到此类问题一般解决思路:

                 1、首先检查有没有安装相应的ftp服务(proftpd、vsftpd、gsftp等);

                 2、检查相应ftp服务是否开启(service proftpd restart);

                 3、服务器是否设置了防火墙;

                 4、判断用户是否有访问宿主目录的权限,至少需要读与可执行权限;

                 5、检查相应ftp配置选项(/etc/proftpd.conf  /etc/init.d/vsftp.conf)是否有限制;

                 6、用setup命令来查看系统服务中是否开启了多个ftp服务(gssftp、tftp、vsftp、proftpd、proftpd-xinetd),

                        如果开启了多个ftp服务,则关闭多余ftp服务(我的环境就只留proftpd-xinetd 表示proftpd服务随xinet

                        d服务启动),如果有开启了多个 ftp 服务的话,有可能导致各服务之间的冲突,ftp无法正常工作,

                         再修改/etc/proftpd.conf文件中ServerType值为 inetd(ServerType取值有standalone/xinetd/inetd),然后重启系统;

                  7、如果以上还是不能解决问题可以试试修改vi /etc/xinetd.d/gssftp.config文件,把server_args = -l -a中的“-a”删除,再重启xinetd服务。

 

总结:

                检查宿主目录是否有权限,直接通过ftp去连接无法判断错误原因,可以通过telnet方式去检验,如果能正常登录,则说明宿主目录是有访问

                 权限的,如果没有权限的话会报如下类似错误,从错误信息中是大概可以判断是什么原因登录失败的,再修改相应目录访问权限

                 就可重新登录了,提示如下所示:

                [root@linux188~]# telnet 10.44.1.153
                Trying 10.44.1.153...
                Connected to 10.44.1.153 (10.44.1.153).
                 Escape character is '^]'.
                 Asianux release 2.0 (Trinity)
                 Kernel 2.6.9-11.19AXsmp on an i686
                login: test
                Password:
                No directory /root/ftp!
                Logging in with home = "/".
                -bash: /root/ftp//.bash_profile: 权限不够

      

你可能感兴趣的:(linux操作系统)