1. 程式人生 > >ftp被動模式訪問的詭異問題

ftp被動模式訪問的詭異問題

在客戶內網伺服器上部署vsftpd伺服器,設定被動模式,並指定資料埠範圍

listen_port=8121

pasv_enable=YES
pasv_min_port=8117
pasv_max_port=8120

然後客戶對映到公網,並對幾家乙方的公網ip開放訪問許可權。

奇怪的問題出現了,幾家乙方訪問ftp伺服器時,登入,cd,pwd命令都可以,但是ls,get,put等命令有的可以有的不行。

(ftp被動模式,需要在命令列輸入 passive,切換到 Passive mode on. )

於是我實驗了多個方式,

我本機的公網ip (通過百度“公網ip”或 curl members.3322.org/dyndns/getip),在客戶那邊開放了訪問許可權。

1,ie直接ftp,能夠正常訪問

2,使用filezilla ,被動模式,可以。但注意 編輯--設定--被動模式 中 選擇“”使用伺服器的外部IP地址來代替“”

3,cmd命令列 不行

4,本機啟動虛擬機器,虛擬機器裡裝centos,不行

5,本機啟動虛擬機器,虛擬機器裡裝windows,和虛擬機器外的系統一樣效果。

應該來說埠都是開放了的,懷疑是命令列下ftp客戶端的配置有關,在centos下重新裝了個ncftp,可以正常使用了。

http://www.ncftp.com/download/

雖然可以了,但是問題還是沒找到,為什麼有的伺服器上ftp直接就可以,有的必須要換ncftp呢?

懷疑跟“”使用伺服器的外部IP地址來代替“” 有關,是不是ftp伺服器那邊返回資料傳輸埠地址時,把本地的內網地址傳出來了,有的客戶端能夠處理這個異常,用公網ip替代,有的不行,所以就傳輸不了資料。