排查问题的思路(由内到外):
从服务器内部排查
如果部署的ftp不能访问,首先在服务器上测试看是否能够访问(在浏览器中输入ftp://localhost/)。如果在服务器中能访问说明是传输过程中有问题,如果能访问说明是传输中发生了异常服务器外部(客户端)
使用ftp的第三方工具测试,如果不同查看报错代码,根据保存代码排查。使用telnet等端口检测工具查看。如果21端口不通说明传输中断。可能是服务器侧的阻止,也肯能是客户侧的安全防护有阻止。使用站长工具测服务器的21端口看是否通,如果通,说明是客户侧的网络有限制。如果不通说明是服务器侧阻止。服务器侧的阻止
可能是防火墙的限制、也可能是网络限制。如果是使用阿里云之类的产品可能是安全组等平台产品的限制。最后就是服务器中安全软件的限制。如果上述原因都不是
可能是公网IP有问题。
1.使用winscp软件连接,显示连接超时
排查方法:
- 在服务器上测试没有问题
- 使用telnet 公网IP 21命令测试,连不通
- 使用站长工具测试也不通
- 将服务器上的防火墙关闭之后可以
- 可以推断防火墙的设置。重新设置防火墙。
2.使用winscp客户端登录时报错
排查方法:(遇上类似的步骤省略)
经查看发现服务器不接收参数,说明是客户侧的请求问题
3.目标服务器拒绝(服务器只是用匿名用户,但是客户端使用TLS/SSL加密登录导致报错)
排查方法(同上步骤省略):
4.错误提示:Security: Bad IP connecting.
原因:服务端是主动模式,客户端使用的是被动模式的连接方式
解决方法:
方法一:客户端使用主动模式连接即可。
方法二:
pasv_promiscuous=YES
此选项激活时,将关闭PASV模式的安全检查。该检查确保数据连接和控制连接是来自同一个IP地址。小心打开此选项。此选项唯一合理的用法是存在于由安全隧道方案构成的组织中。默认值为NO。
合理的用法是:在一些安全隧道配置环境下,或者更好地支持FXP时(才启用它)。
5. 错误提示“OOPS: vsftpd: cannot locate user specified in ‘ftp_username’:ftp”
原因:没有服务器端没有匿名用户导致报错
解决方法:
方法一:禁止匿名用户登录
anonymous_enable=no
方法二:创建匿名用户
useradd ftp -d /var/ftp/ -s /sbin/nologin
6. 错误提示:Non-anonymous sessions must use encryption.
分析:用户登录时需要加密,ftp服务可能使用的vsftpd+ssl需要选择加密方式才能登录。
解决方法:
7.错误提示:Illegal PORT command.
解决方法:
切换到被动模式连接。