linux下命令行連接FTP是遇到的錯誤(425 Failed to establish connection)
首先FTP的運行模式有主動模式和被動模式兩種
然后筆者在工作中搭建了ftp,但是沒有開啟他的被動模式。
然后server端的防火牆開放了21端口。
因此客戶端能連上server,但是輸入命令會提示。(首先要數據passive off命令關閉客戶端以被動模式連接server端)
原因是ftp在主動模式下是通過21端口進行登陸的,但是后續是通過20端口與客戶端進行數據交換。
因此筆者在這個基礎上,在server開放了20端口。
但是問題依舊
接着筆者在客戶端也把20和21端口都打開了
但是問題還是沒有解決
這個時候無論是server端還是client端的20和21端口都是開放的。但是數據的傳輸都還是有阻礙。
查閱了很多網上的解決方案,都是說讓FTP開發被動模式,然后防火牆開放對應的端口段。
但是老子就是要用主動模式。也不是說不能弄個被動模式,但是那樣子解決問題就好像是在逃避問題一樣!
然后筆者想起防火牆中除了根據端口開發流量,還可以根據服務開放流量。
因此在server端的防火牆中開放ftp服務
firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload
結果還是不行
於是我又在客戶端的防火牆中開放ftp服務
終於可以了!!!
因此,可能是需要客戶端和服務器同時在防火牆中開放ftp服務。那么才能在命令行下進行數據傳輸吧(windows的cmd下面和一些FTP客戶端選擇主動模式連接,皆不會出現上述情況!),也不知道為什么是在linux的命令行下才會這樣。
本文原創!
轉載請注明出處!