标签 vsftpd 下的文章

centos7的vsftpd连接慢 - nameserver

问:centos7里安装的vsftpd在连接时很慢。

答:如果这个centos7系统不联网,又在/etc/resolve.conf里写了公网的dns,可能会导致vsftpd在接受连接时,会尝试解析客户端IP(反向解析),较耗时间。请尝试将/etc/resolve.conf里的nameserver改成内网的dns或注释掉。

参考:https://www.linuxquestions.org/questions/linux-networking-3/ftp-authentication-almost-always-slow-759806/

vsftpd - 500 OOPS: vsftpd: refusing to run with writable root inside chroot() - /usr/share/empty/ - centos7

问题:centos7系统,用rpm安装的vsftpd,systemctl启动后,ftp localhost 连接会报错:500 OOPS: vsftpd: refusing to run with writable root inside chroot()

尝试:

  1. 在vsftpd.conf配置文件里添加 allow_writeable_chroot=YES ,无效
  2. 尝试在SELinux里设置权限 setsebool -P allow_ftpd_full_access on ,无效
  3. 尝试更换新版本的rpm安装,无效
  4. 手动启动vsftpd,在命令行里逐个传递参数测试。当测试到 secure_chroot_dir 指定值时,有效
  5. 反查到 /usr/share/empty 目录有全用户写权限(777),取消写权限(755,root属主)。再使用sysmtemctl启动,有效

secure_chroot_dir

This option should be the name of a directory which is empty. Also, the directory should not be writable by the ftp user. This directory is used as a secure chroot() jail at times vsftpd does not require filesystem access.
Default: /usr/share/empty

参考:

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

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

现象:FTP客户端可以连接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 测试,可以成功列出文件,及上传文件

参考: