在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 生效。
注意:使用被動模式的情況下,要将使用的端口範圍加入安全組和防火牆白名單。