Amazon ec2 列出目录时发生vsftpd错误

Amazon ec2 列出目录时发生vsftpd错误,amazon-ec2,ftp,ec2-ami,vsftpd,Amazon Ec2,Ftp,Ec2 Ami,Vsftpd,我使用fedora实例在amazon ec2上安装了vsftpd,它是最新版本,但我得到了错误: 在CuteFTP中: COMMAND:> PASV 227 Entering Passive Mode (192,168,10,46,14,20) COMMAND:> LIST ERROR:> Can’t connect to remote server. Socket error = #10065. ERROR:> PASV failed, trying PORT. 在F

我使用fedora实例在amazon ec2上安装了vsftpd,它是最新版本,但我得到了错误: 在CuteFTP中:

COMMAND:> PASV 227 Entering Passive Mode (192,168,10,46,14,20)
COMMAND:> LIST
ERROR:> Can’t connect to remote server. Socket error = #10065.
ERROR:> PASV failed, trying PORT.
在Filezilla中:

Command: PASV Response: 227 Entering Passive Mode (192,168,10,46,14,20)
Command: LIST Error: Connection timed out
Error: Failed to retrieve directory listing.
尝试通过Shell连接并向我显示目录列表。

查看此线程:


错误:在amazon ec2上检索目录列表失败
,只需将传输模式更改为active即可修复

这篇文章解释了如何使用filezilla轻松完成:


如果可能,您希望使用被动模式。正如我在Bucho链接到的文章中所说的,您只需为PASV模式定义一个端口范围,并在EC2安全组中打开该范围就可以了。。。这通常只影响使用被动模式(非常常见)的GUI ftp客户端。例如,当使用标准ftp命令行工具时,我能够成功登录并将文件上载到我的ftp服务器

纠正错误的步骤包括:

  • 将以下设置添加到/etc/vsftpd.conf文件中:

    pasv_启用=是 pasv_最小_端口=64000 pasv_最大_端口=64321 端口\启用=是

  • 还可以根据您的情况将以下配置块之一添加到/etc/vsftpd.conf文件中(无论哪种方式,都需要解析为公共可访问的IP):

  • a:

    pasv\u地址=
    pasv_addr_resolve=否
    
    -或-

    b:

    pasv\u地址=
    pasv_addr_resolve=是
    
  • 在ec2实例的安全组配置中,添加以下自定义入站tcp规则:
    • 为标准ftp启用端口20-21
    • 按照上面配置部分中的定义启用被动端口(我使用了64000-64321)
  • 重新启动vsftpd服务(根据您的linux风格而有所不同)
  • 注意:pasv端口范围应从防火墙NAT外部可见

    有关更多信息,请参阅:


    版本为vsftpd-3.0.2-1.el5.x86_64.rpm的me帮助进行以下设置:

    pasv_enable=YES
    pasv_min_port=64000
    pasv_max_port=64321
    port_enable=YES
    pasv_address=<your-static-ip-most-likely-from-elastic-ips>
    pasv_addr_resolve=NO
    
    pasv\u启用=是
    pasv_最小_端口=64000
    pasv_最大_端口=64321
    端口\启用=是
    pasv_地址=
    pasv_addr_resolve=否
    
    多亏了龙达

    这是我的工作

    下面是
    /etc/vsftpd.conf

    listen=YES
    anonymous_enable=NO
    local_enable=YES
    write_enable=YES
    local_umask=022
    use_localtime=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    xferlog_file=/var/log/vsftpd.log
    xferlog_std_format=YES
    chroot_local_user=YES
    allow_writeable_chroot=YES
    chroot_list_enable=YES
    chroot_list_file=/etc/vsftpd.chroot_list
    pam_service_name=ftp
    pasv_enable=YES
    pasv_min_port=13000
    pasv_max_port=13100
    port_enable=YES
    pasv_address=AWS-IP-Address
    pasv_addr_resolve=no
    
    保存并重新启动服务

    $ sudo service vsftpd restart
    
    在安全组中打开下面的端口

    • 从0.0.0.0/0自定义TCP 20
    • 从0.0.0.0/0自定义TCP 21
    • 从0.0.0.0/0自定义TCP 13000
    • 从0.0.0.0/0自定义TCP 13100
    从FileZilla FTP客户端连接时可能会出现以下错误:

    Error:  Connection timed out
    Error:  Failed to retrieve directory listing
    
    解决这个问题,

    • 打开Filezilla,进入编辑->设置
    • 单击连接->FTP:选择活动
    • 点击连接->FTP->活动模式:选择“询问您的操作 “外部IP地址的系统”
    • 点击连接->FTP->被动模式:选择后退到 激活模式按OK

    再次尝试连接到您的FTP站点。

    如果在vsftpd.conf中出现如下配置:

    pasv_enable=YES
    pasv_min_port=64000
    pasv_max_port=64321
    
    尝试打开防火墙:

    # yum install -y epel-release
    # yum install -y ufw
    # sudo ufw allow from any to any proto tcp port 64000:64321
    
    sudo iptables -A INPUT -p tcp –dport 64000:64321 -j ACCEPT
    

    我想你把pasv_max_port和pasv_min_port弄混了,MosheShaham现在修复了。谢谢即使我已经配置了被动端口范围并打开了这些端口,我也遇到了同样的问题。一时兴起,我试着将pasv_addr_resolve切换为YES,并输入主机名,而不是IP,现在被动连接又能工作了。奇怪。使用此配置,我甚至无法启动/重新启动守护程序-
    pgrep vsftpd
    不返回任何内容:(新url:
    pasv_enable=YES
    pasv_min_port=64000
    pasv_max_port=64321
    
    # yum install -y epel-release
    # yum install -y ufw
    # sudo ufw allow from any to any proto tcp port 64000:64321
    
    sudo iptables -A INPUT -p tcp –dport 64000:64321 -j ACCEPT