阿里云服务器专有网络环境下链接FTP失败

问题显示

服务器:阿里云ECS
网络环境:专有网络
FTP服务:vsftpd
连接异常:

1
2
3
4
5
6
状态: 	已登录<br>
状态: 读取目录列表...
状态: 服务器发回了不可路由的地址。被动模式失败。
命令: PORT 172,20,10,5,229,9
响应: 500 Illegal PORT command.
错误: 读取目录列表失败
## 问题追溯 原因:专有网络的ECS系统中,没有公网IP地址,是经NAT与互联网连接,且ECS创建过程中的默认安全组规则没有针对FTP的快捷选项。建议在Linux系统里使用sftp协议替换ftp使用。 。 ## 解决方案 1. 修改vsftpd配置
1
2
3
4
5
pasv_enable=YES  # 启用pasv模式
pasv_min_port=30000 # 设置pasv模式中的可用端口范围(开始)
pasv_max_port=30100 # 设置pasv模式中的可用端口范围(结束)
pasv_address=39.108.4.89 # 设置pasv模式中的外网IP
seccomp_sandbox=NO # 关闭 seccomp 功能
2. 在ECS实例安全组中,分别增加两条规则,允许相应的tcp端口访问(tcp 21端口,和 tcp 3000到30100端口) 3. 重启vsftpd服务。客户端传输设置改成主动模式,fileZilla被动模式设置该生:退回到主动模式。