在论坛里看到有些网友,不能正常使用FTP来传送文件,所以写此帖。
环境:云服务器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 功能
3. 在ECS实例安全组中,分别增加两条规则,允许相应的tcp端口访问(tcp 21端口,和 tcp 3000到30100端口)
4. 在 FileZilla Client 测试,可以成功列出文件,及上传文件
参考:
*
https://askubuntu.com/questions/592577/vsftpd-pasv-configuration-set-up-yet-still-not-working
*
https://serverfault.com/questions/421161/how-to-configure-vsftpd-to-work-with-passive-mode
*
http://worldend.logdown.com/posts/247495-solve-vsftpd-500-oopspriv-sock-get-cmd
-------------------------
-------------------------
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。