问题

  • linux 客户端登陆FTP成功后 出现ls卡死问题,但是windows使用FileZilla客户端正常。
  • 代码如下
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (172,41,38,5,234,120).
^C
receive aborted
waiting for remote to finish abort

分析

  • 从上述可以看出,输入ls命令之后,ftp进入被动模式,
    然后后面一串数字(172,41,38,5,234,120),是ftp服务器返回的ip 与端口。
  • 前四位表示ip,最后两位是端口,端口表示规则为234*256+120=60024,所以服务器返回的是172.41.38.5:60024。
  • 明显是个内网IP,此时应该判断客户端能否访问到这个内网IP。上述例子是访问不到。

    解决

  • 修改 ftp服务器配置/etc/vsftpd/vsftpd.conf
listen=YES
listen_ipv6=NO
pasv_address=公网IP
  • 重启生效
service vsftpd restart

参考链接 :
[记一次 ftp 可以正常登录,但是输入ls dir 命令卡死的问题
](https://blog.csdn.net/qq_3878...)


laewilson
3 声望1 粉丝