在VPC网络下搭建好FTP服务后登录失败,提示如下:状态: 服务器发回了不可路由的地址。
这种情况如何解决:
下面针对不同的FTPserver来说明如何设置来解决这个问题:
IIS主机,打开IIS管理控制台(运行中输入inetmgr),点击服务器图标(通常名字是iZw6xvd******Z)
在弹出的窗口找到 FTP防火墙支持。
打开如下页面,在防护墙外部IP地址中,填写该VPC主机的公网IP,数据通道端口写端口范围(这里使用5000-6000),端口范围可以自定义,但是需要在主机防火墙和主机安全组添加放行规则。
添加完毕,点击左侧应用。到这里还不会立即生效,还需要重启下FTP服务(Microsoft FTP Service)
在运行中输入CMD ,打开Windows 命令窗口,输入net stop ftpsvc 停止后,再启动 net start ftpsvc
至此配置生效,问题就解决了。
如果是Linux 服务器,常用的FTP server 是 vsftp 和pure-ftp
Vsftp
直接修改配置文件即可
vim /etc/vsftpd/vsftpd.conf 添加 pasv_address= 47.*.*.168 # 47.*.*.168 替换成主机的实际公网地址
然后重启FTP服务 systemctl restart vsftpd 或者service vsftpd retart
该设置与ipv6 冲突,vsftp 不能开启ipv6,否则在某些网络环境下会导致 server 返回被动地址是0.0.0.0
pureftp
修改配置文件 添加
ForcePassiveIP= 47.*.*.168
修改完重启下 pureftp 生效。
注意:使用被动模式的情况下,要将使用的端口范围加入安全组和防火墙白名单。