原文地址:传送门
环境:云服务器ECS,网络类型为“专有网络”,创建ECS绑定公网IP;系统镜像为Debian 8
现象:FTP客户端可以连接FTP服务端,但“读取目录列表失败”。
原因:专有网络的ECS系统中,没有公网IP地址,是经NAT与互联网连接,且ECS创建过程中的默认安全组规则没有针对FTP的快捷选项。建议在Linux系统里使用sftp协议替换ftp使用。
过程:
1. apt-get install vsftpd 安装 vsftpd
2. vi /etc/vsftpd.conf 编辑vsftpd的配置文件,修改或增加以下配置内容:
- listen=YES # 监听默认21端口
- write_enable=YES # 可写权限
- 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 功能
http://worldend.logdown.com/posts/247495-solve-vsftpd-500-oopspriv-sock-get-cmd