ftp常見報(bào)錯(cuò)之Use PORT or PASV first解決思路和方法
瀏覽量(92071) 時(shí)間:2020-09-09
先介紹一下基礎(chǔ)環(huán)境:ftp服務(wù)部署在公網(wǎng)環(huán)境,而客戶端在內(nèi)網(wǎng)電腦,需求是用內(nèi)網(wǎng)電腦去下載ftp上的文件,在下載過程中提示了425 Use PORT or PASV first報(bào)錯(cuò),下面介紹下解決的思路和方法。
思路
先到CMD或者linux終端用命令行模式ftp命令測試一下,如果能登錄,不能使用ls或者dir命令。說明你的客戶端環(huán)境無法使用PORT模式,而CMD里的ftp客戶端默認(rèn)支持PORT模式。主要問題在端口被防火墻控住。
PASV
1、調(diào)整模式為PASV
在ftp下使用命令:
--修改為被動(dòng)模式連接
quote PASV
一般DOS命令行下都是默認(rèn)以PORT主動(dòng)模式連接。即,端口21監(jiān)聽,處理控制信息,再以端口20連接客戶端進(jìn)行數(shù)據(jù)傳送。而經(jīng)常通過外網(wǎng)的NAT的,基本端口20的數(shù)據(jù)連接都會(huì)被禁止掉。所以,如果想對外網(wǎng)開放ftp,最好使用PASV模式。
PASV被動(dòng)模式是指,以端口21監(jiān)聽,有連接請求時(shí),隨機(jī)開放一個(gè)比較大的端口號(hào)來處理數(shù)據(jù)傳輸。
2、修改配置
vsftp中,通過編輯 /etc/vsftp.conf 實(shí)現(xiàn)啟用PASV連接。
sudo vi /etc/vsftp.conf
在配置文件中添加下面語句:
pasv_enable=YES
pasv_min_port=6000
pasv_max_port=7000
也即,啟動(dòng)PASV連接模式,開放6000-7000端口號(hào)作為數(shù)據(jù)傳送端口。此外,如果是對外網(wǎng)開放,必須在路由器的轉(zhuǎn)發(fā)規(guī)則中,開放21端口。
為了保險(xiǎn),可以將6000-7000端口也寫入到iptables中白名單中。這樣設(shè)定后,一般就可以搞定了。
如果還不行,可以通過一下思路:
1、防火墻(本機(jī)、客戶機(jī))
2、FTP目錄的權(quán)限
3、客戶機(jī)是否是IPv6網(wǎng)絡(luò)
4、客戶機(jī)的網(wǎng)關(guān)限制了外網(wǎng)ftp