ftp> 中的 ls 指令不起作用!

ftp> 中的 ls 指令不起作用!

我正在練習 ftp 但遇到一個問題: ls 指令不適用於 ftp> 。為什麼?我檢查了兩台遠端伺服器,但 ls 都不起作用,並且在執行 ls 時給出了不同的輸出。請參閱下面的 2 個遠端盒。

下面顯示了我今天安裝了 vsftpd 的遠端伺服器。

ravbholua@ravbholua-Aspire-5315:~$ ftp rs
Connected to ravi.com.
220 (vsFTPd 3.0.2)
Name (rs:ravbholua): 
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/home/ravbholua"
ftp> ls
500 Illegal PORT command.
ftp: bind: Address already in use
ftp> 

下面是針對不同的遠端計算機,我必須在其中發送一些文件。但是由於 ftp> 上的 ls 不起作用,我將如何將檔案從本機盒子傳輸到該盒子,因為如果沒有 ls 我無法確認檔案是否已傳輸。

ravbholua@ravbholua-Aspire-5315:~$ ftp 125.21.153.140
Connected to 125.21.153.140.
220---------- Welcome to Pure-FTPd [TLS] ----------
220-You are user number 1 of 10 allowed.
220-Local time is now 04:34. Server port: 21.
220-This server supports FXP transfers
220 You will be disconnected after 2 minutes of inactivity.
Name (125.21.153.140:ravbholua): peacenews
331 User peacenews OK. Password required
Password:
230 OK. Current restricted directory is /
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
200-FXP transfer: from 123.63.112.168 to 10.215.10.80
200 PORT command successful

請注意,對於上述機器,一旦我在 ftp> 上運行 ls,提示就沒有回來。

在兩台遠端電腦上,在 ftp> 上執行 ls 時,我得到了不同的輸出

答案1

FTP 是一個古老的協定。它依賴兩個 TCP 連線:控制連接透過其交換命令,以及數據連接用於文件的內容以及命令的輸出,例如ls.這裡發生的情況是控制連線已建立,但資料連線未建立。

預設情況下(主動模式),從發送方到接收方建立資料連線。對於 的輸出ls,資料是由伺服器發送的,因此伺服器嘗試開啟與客戶端的連線。當 FTP 發明時,這種方法效果很好,但現在,用戶端通常位於防火牆或 NAT 後面,這些防火牆或 NAT 可能支援也可能不支援主動 FTP。切換到被動模式,客戶端始終發起資料連線。

檢查命令手冊ftp以了解如何預設切換到被動模式。對於一次性的事情,輸入命令passive通常可以解決問題。

您可能想要切換到更好的 FTP 用戶端,例如網路檔案傳輸協定或者遠端傳輸協定

答案2

完整 “ftp 500 Illegal PORT command”的完整解決方案。點擊以下連結:http://www.ucodice.com/articles/ftp-500-illegal-port-command/

摘抄

嘗試連接 ftp 伺服器並收到 500 非法連接埠命令。當 ftp 程式未配置為被動模式時,可能會出現此問題。

您可能會收到以下錯誤片段:

COMMAND:>              [3/11/2015 1:17:05 PM] PORT 192,168,0,101,196,215    
                       [3/11/2015 1:17:05 PM] 500 Illegal PORT command.    
ERROR:>                [3/11/2015 1:17:05 PM] Syntax error: command unrecognized.    
ERROR:>                [3/11/2015 1:17:05 PM] Failed to establish data socket.

若要解決此問題,您可以在 ftp 伺服器的設定檔中定義連接埠或 ftp,並定義 IP 位址或 PASV 伺服器。

檢查設定檔中的以下設定。

pasv_enable=YES
pasv_promiscuous=YES
pasv_max_port=Enter the max port range allowed on your server.
pasv_min_port=Enter the min port range allowed on your server.
pasv_address=Ip Address of your server.

之後重新啟動 ftp 服務並檢查 ftp 連線。

相關內容