ftp被動模式訪問的詭異問題
阿新 • • 發佈:2019-01-30
在客戶內網伺服器上部署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替代,有的不行,所以就傳輸不了資料。