我嘗試在匿名 FTP 會話上使用“ls”命令,但是當我輸入“ls”命令時,我得到:
200 連接埠命令成功。考慮使用 PASV。
它像這樣掛起(沒有返回到 ftp 提示符號)。
我重新啟動 ftp 會話並進入被動模式(引用 PASV),但我遇到另一個問題:“沒有到主機的路由”
您有什麼建議嗎?
答案1
quote PASV
不按照您想像的方式進入被動模式 - “PASV”是一個立即命令(在每次傳輸之前),而不是永久模式切換命令。
相反,客戶ls
無論何時或請求檔案傳輸,都必須被告知使用 PASV 而不是 PORT 。
和inetutils-ftp, 使用passive
命令,或將客戶端運行為pftp
或ftp --passive
。
答案2
我記得有一次當我忘記在防火牆中開啟連接埠 20 時看到過這個問題。雖然通常與 FTP 關聯的連接埠是 21,但資料通常會透過連接埠 20 發送。
確保20和21在客戶端和伺服器上都打開,這樣無論誰在20連接埠發起連接,都可以通過。
答案3
您有什麼建議嗎?
是的,放棄 FTP。
我知道這可能不是您想聽到的答案,但讓我解釋為什麼它實際上是必要的,然後您可能會更傾向於這樣做。我還會給你另一個選擇。
FTP 是在 Internet 被認為是實驗專案時編寫的。主要大學和大型組織都有行為規則,由受人尊敬的機構執行,因此互聯網(當時實際上稱為阿帕網)上的人們是值得信任的。
FTP 旨在讓客戶端使用 TCP 連線傳送文件請求。然後伺服器收到請求,並向客戶端發起單獨的TCP連線。
當客戶開始使用防火牆來保護他們的東西時,這種情況就被打破了。因此 FTP 用戶端可以建立傳出連接,但傳入連線被封鎖。
解決這個問題的一種方法是被動模式:客戶端使用TCP 連接埠21 發送請求,然後伺服器表示它需要使用某個隨機TCP 連接埠(例如43728)進行另一個連接,然後客戶端使用指定的隨機TCP 建立第二個連接埠(例如,43728)。
如果客戶端有防火牆,那就有效。許多人開始了解到「被動模式」可以解決 FTP 問題。然而,「被動模式」實際上解決的只是這個具體問題。如果伺服器的防火牆僅允許特定連接埠號碼(例如 FTP 的連接埠 21)上的傳入流量,那麼即使「被動模式」也無法解決工作所需的所有問題。
理論上,如果 FTP 伺服器的防火牆支援 FTP 代理程式(該代理程式監視流量並在需要時開啟另一個連接埠),則可以解決此問題。許多人認為設定起來有點困難。
隨著越來越多的組織越來越關心安全性,而越來越不關心FTP,人們開始了解到FTP 正在變得普遍損壞(這意味著越來越多的FTP 伺服器在人們可能嘗試使用FTP的越來越多的位置上難以使用)客戶在)。 FTP 問題開始變得更加普遍。
有一段時間,人們了解到「被動模式」似乎是解決 FTP 問題的神奇「萬靈藥」技術。 (很多人不明白為什麼FTP 停止工作。他們只是了解到,如果FTP 開始表現得很奇怪,「被動模式」似乎可以解決FTP 遇到的奇怪問題。後來,人們相信「被動模式」是神奇的「治愈方法」— 「全部」通常被不同的信念所取代,即 FTP 通常似乎不再起作用(幾乎不像以前那樣好)。即使很多人不明白為什麼 FTP 會崩潰,但他們確實明白了什麼當他們嘗試另一種技術時,生活似乎確實更加成功,即開始使用其他協定。
因此,最好的解決方案實際上是放棄舊的 FTP 協議,因為它不適用於現代互聯網安全措施。 FTP 並不是為此而設計的。 NAT 也用於幫助多個裝置使用一個 IP 位址。
NAT 通常由防火牆實現,儘管它的用途不僅僅是安全(例如增加支援的設備數量)。無論使用 NAT 的目的是什麼,最終結果都是 NAT 基本上會出於相同的原因中斷 FTP 連線(不允許連接到達所需的裝置)。因此,FTP 也不是為支援 NAT 而設計的。
過去,FTP 只是一種嘗試讓檔案傳輸正常進行的實驗。 FTP完成了它最初的目標。因此,儘管 FTP 不能很好地適應當今的 Internet 設計,但它的設計並不是很糟糕。它的設計在當時確實是非常成功的。它只是針對一種與使用當今常見技術的互聯網不同的風格而設計的。
HTTP 沒有那麼多問題,因為它使用一個 TCP 連線而不是多個。許多安全替代方案也沒有:HTTPS、SFTP、FTPS、SCP。
我答應了另一個選擇。它是:使 FTP 正常工作。策略包括: * 讓客戶端防火牆運行 FTP 代理 * 讓 FTP 伺服器的防火牆運行 FTP 代理
問題是您通常無法控制連接的一側。因此,其中之一可能不適合您。
您可能想要嘗試完全刪除防火牆。然而,這可能會帶來安全風險,大多數人認為這沒有好處。相反,只需放棄使用不太適合現代互聯網的舊 FTP 協定的想法,並使用一些現代軟體來透過 HTTPS 或 FTPS(或 SCP)進行檔案傳輸。它通常可以更好地與防火牆配合使用,與 NAT 配合使用效果更好,並為您帶來隱私優勢。 (您不想在網路上以未加密的方式廣播您的密碼,對嗎?)
除非您嘗試取得公共文件,在這種情況下,HTTPS 或 HTTP 可能是更簡單的途徑。