在论坛里看到有些网友,不能正常使用FTP来传送文件,所以写此帖。

环境:云服务ECS,网络类型为“专有网络”,创建ECS绑定公网IP;系统镜像为Debian 8

现象:FTP客户端可以连接FTP服务端,但“读取目录列表失败”。

在阿里云“专有网络”网络类型中配置vsftpd

原因:专有网络的ECS系统中,没有公网IP地址,是经NAT与互联网连接,且ECS创建过程中的默认安全组规则没有针对FTP的快捷选项。建议在Linux系统里使用sftp协议替换ftp使用。

在阿里云“专有网络”网络类型中配置vsftpd

在阿里云“专有网络”网络类型中配置vsftpd

过程:

1. apt-get install vsftpd 安装 vsftpd

在阿里云“专有网络”网络类型中配置vsftpd

2. vi /etc/vsftpd.conf 编辑vsftpd的配置文件,修改或增加以下配置内容:

  1. listen=YES # 监听默认21端口
  2.     write_enable=YES # 可写权限
  3.     pasv_enable=YES  # 启用pasv模式
  4.     pasv_min_port=30000 # 设置pasv模式中的可用端口范围(开始)
  5.     pasv_max_port=30100 # 设置pasv模式中的可用端口范围(结束)
  6.     pasv_address=39.108.4.89 # 设置pasv模式中的外网IP
  7.     seccomp_sandbox=NO # 关闭 seccomp 功能

在阿里云“专有网络”网络类型中配置vsftpd

3. 在ECS实例安全组中,分别增加两条规则,允许相应的tcp端口访问(tcp 21端口,和 tcp 3000到30100端口)

在阿里云“专有网络”网络类型中配置vsftpd

在阿里云“专有网络”网络类型中配置vsftpd

在阿里云“专有网络”网络类型中配置vsftpd

4. 在 FileZilla Client 测试,可以成功列出文件,及上传文件

在阿里云“专有网络”网络类型中配置vsftpd