我在AWS ec2实例上运行pureftp。我试图让它以被动模式运行,我认为它正在工作,但是我发现它可能无法正常工作。我在FileZilla中收到以下错误
Status: Connected
Status: Retrieving directory listing...
Status: Server sent passive reply with unroutable address. Using server address instead.
Status: Directory listing of "/" successful
奇怪的是,有些人无法登录而其他人则无法登录。
我有以下pureftp配置
端口范围
#Port range for passive connections replies. - for firewalling.
PassivePortRange `50000 50100`
PASV IP
#Force an IP address in PASV/EPSV/SPSV replies. - for NAT.
#Symbolic host names are also accepted for gateways with dynamic IP
#addresses.
ForcePassiveIP `ftp.mydomain.com` "my cname record is mapped to my ec2 public dns"
当我查看服务器上的本地端口范围时,/ proc / sys / net / ipv4 / ip_local_port_range会打开以下内容。
32768 61000
我的ec2安全组已打开端口50000 - 50100
当我查看我的服务器日志时,我偶尔会看到除此之外的其他内容。
Feb 5 08:57:41 ip-172-11-42-52 dhclient[1062]: DHCPREQUEST on eth0 to 172.11.32.1 port 67 (xid=0x601547fd)
Feb 5 08:57:41 ip-172-11-42-52 dhclient[1062]: DHCPACK from 172.11.32.1 (xid=0x601547fd)
Feb 5 08:57:43 ip-172-11-42-52 dhclient[1062]: bound to 172.11.42.52 -- renewal in 1417 seconds.
任何人都知道事情可能会出错?
答案 0 :(得分:3)
所以我相信我已经解决了这个问题。似乎aws是动态更改IP地址。当我为我的passiveip引用ftp.domain.com时,它解析的ip与匹配到cname记录的初始ip不匹配。
解决方案是为我的ec2实例分配一个静态弹性ip,并将我的passiveip在pureftp中设置为我的静态弹性ip。到目前为止,似乎已经解决了我的问题。
答案 1 :(得分:1)
服务器发送了具有不可路由地址的被动答复。改用服务器地址
这通过将以下行添加到 etc / vsftpd.conf
来解决了使FTP在AWS EC2上运行的错误en_core_web_lg
XX.XX.XX.XX设置为分配为实例的公共地址的弹性IP。
根据自定义TCP入站规则创建的范围在1024-1048和20-21之间的端口允许任何地方的连接。
FTP服务器正在通过Filezilla客户端访问的Ubuntu EC2上运行vsftpd。
答案 2 :(得分:-1)
我找到了一些你可以尝试的解决方案。
我通过禁用listen_ipv6并在配置中启用listen来解决它。
listen_ipv6 = NO 听= YES