AWS EC2被动FTP - 服务器发送带有不可路由地址的被动回复。改为使用服务器地址

时间:2015-02-06 00:50:41

标签: amazon-web-services amazon-ec2 ftp pureftpd

我在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.

任何人都知道事情可能会出错?

3 个答案:

答案 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)

我找到了一些你可以尝试的解决方案。

https://serverfault.com/questions/821025/vsftpd-passive-reply-with-0-0-0-0-address-even-with-correct-pasv-address

我通过禁用listen_ipv6并在配置中启用listen来解决它。

listen_ipv6 = NO 听= YES