題 命令行FTP功能不起作用


我正在使用Windows 7並且有多個FTP客戶端應用程序正常工作。但是,當我使用命令行FTP時,我可以連接,登錄(輸入用戶名和密碼後),但在使用dir或ls命令時它總是斷開連接。回應是:

連接由遠程主機關閉。

我該如何解決這個問題?


10
2017-11-28 02:56


起源


在防火牆中打開端口20,21。 - Sean Perkins


答案:


當服務器嘗試連接到您但不能連接時,您通常會看到這種類型的事情發生。 FTP最初使用兩個 TCP 通道。一個用於命令,另一個用於傳輸數據。運行dir命令時,它使用數據通道。數據通道按需建立,導致服務器嘗試連接回您。

這很可能被您的路由器或Windows防火牆阻止。您需要一個支持的客戶端 PASV 模式。

您可以 在Internet Explorer中啟用PASV模式。或者使用其他客戶端。我不確定命令行版本是否可以使用PASV模式。這是一個非常基本的客戶。


12
2017-11-28 04:11



謝謝,馬特。我認為命令行FTP客戶端默認使用被動模式,但我剛發現多篇帖子說Windows命令行FTP實際上排除了被動模式。 IE總是可以在我的機器上運行FTP。我只想使用命令行來檢查來自FTP服務器的一些原始數據。 - Hong
作為一項實驗,您可以看到在Internet Explorer中啟用或禁用PASV是否有所不同..或者給出類似或相同的錯誤。 - barlop
ftp> PASV - 命令無效。 (Windows 7 Ent。)。這個答案正是在工作中發生的事情。 - Bratch
它需要是QUOTE PASV - JosephStyons


我登錄相關方​​框時遇到了通過FTP傳輸文件的問題。它會創建文件名,但文件為空。我通過以下方式解決了這個問題:

  • 轉到控制面板→Windows防火牆→高級設置→入站規則
  • 雙擊 名稱 列按名稱排序
  • 向下滾動,直到看到兩個名為“文件傳輸程序”的規則;這些都是為了  在我的電腦上(通過它的大紅色圓圈)
  • 雙擊規則
  • 一般 選項卡,在 行動, 調成 允許連接
  • 點擊
  • 為另一條規則執行此操作

現在走吧應該不錯。


4
2018-05-03 18:46



這樣做有什麼安全隱患? - Peter Mortensen


Windows FTP命令行客戶端 ftp.exe 僅支持活動FTP模式。

由於防火牆和NAT,現在在活動模式下設置FTP可能很麻煩。

可能是因為您的本地防火牆或NAT服務器無法連接回客戶端以建立目錄列表的數據傳輸連接(ls 要么 dir 命令)。

或者您的客戶端不知道其外部IP地址,而是向服務器提供內部地址(在 PORT 命令),服務器顯然無法使用。

看到 我的 文章 活動模式的網絡配置


如果可能,您應該使用被動模式,因為它通常不需要在客戶端進行額外設置。

不幸的是Windows FTP命令行客戶端( ftp.exe)根本不支持被動模式。它現在變得毫無用處。

請改用其他任何Windows FTP命令行客戶端。大多數其他支持被動模式。

例如,WinSCP默認為被動模式,並且有可用於轉換的指南 Windows FTP腳本到WinSCP腳本

(我是WinSCP的作者)


4
2018-03-03 14:01





我在Windows 2008服務器上遇到此問題。

本文 建議啟用應用層網關服務。這對我來說沒有解決問題。

解決問題的方法是在Windows防火牆中為C:\ Windows \ system32 \ ftp.exe添加例外


3
2018-05-09 20:22



默認情況下,Windows防火牆在其例外中包含ftp.exe,但僅適用於家庭/工作網絡。確保您不在公共網絡上,否則也允許ftp用於公共網絡。 - Jags


我遇到了與第三方相同的問題 POS Windows 7計算機上的軟件,它將客戶端事務數據批量傳輸回SQL服務器。

它工作正常,直到客戶端位置發生變化 互聯網服務供應商 因此,靜態IP地址。命令行FTP命令在初始登錄之後不起作用,並且我在網上或此線程中找不到任何補救措施。

只是為了踢,我在防火牆中重新創建了FTP規則,這是一個廉價的 D-Link路由器/防火牆它和中提琴似乎再次起作用。


0
2018-05-07 21:06