ftp>のlsコマンドが機能しない!


17

ftpを練習していましたが、問題が発生しました:lsコマンドがftp>で機能していません。どうして?2つのリモートサーバーをチェックしましたが、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を実行すると異なる出力が得られました


3
パッシブモードを使用します。有効にする方法については、ftpクライアントのmanページを確認してください。
ステファンシャゼル

私の側で実行しているFTPクライアントを知る方法は?
ラヴィ

@stephaneありがとう!実行するman ftp-p、パッシブモードで使用するオプションが見つかりました。man ftpFTPは、インターネット標準のファイル転送プロトコルへのユーザーinterfaceiであることを言及:それのインターフェイスではなく、FTPクライアントので!私が理解しているのは、ftpクライアントがこのインターフェース(ftp)を使用してファイルを転送することです。
ラビ

回答:


26

FTPは古代のプロトコルです。これは、2つのTCP接続に依存しています。コマンドが交換される制御接続と、ファイルのコンテンツおよびのようなコマンドの出力のためのデータ接続ですls。ここで起こっているのは、制御接続は確立されているが、データ接続は通過していないということです。

デフォルト(アクティブモード)では、送信者から受信者へのデータ接続が確立されます。の出力ではls、サーバーからデータが送信されるため、サーバーはクライアントへの接続を開こうとします。これはFTPが発明されたときはうまく機能しましたが、今日では、クライアントは多くの場合、アクティブFTPをサポートする場合としない場合があるファイアウォールまたはNATの背後にあります。クライアントが常にデータ接続を開始するパッシブモードに切り替えます。

ftpコマンドのマニュアルを参照して、デフォルトでパッシブモードに切り替える方法を確認してください。1回限りのpassive場合は、通常、コマンドを入力するとうまくいきます。

ncftplftpなどのより良いFTPクライアントに切り替えることができます。


ありがとう!! しかし、なぜこの問題が突然発生したのか。Eariler私はftp>でlsを実行できました。しかし、昨日、vsftpdをリモートサーバー(VPS)にインストール.netrcし、ローカルボックスのファイルも編集しました(.netrcの行頭にハッシュを配置しただけです)。それがすべてであり、lsの問題の後、私は直面していました。lsが以前よりうまく機能し、昨日から機能しなかった理由は何ですか?
ラビ

あなたは提案する権利がありますlftp。私はそれで働いた経験があります。lftp本当に素晴らしいです。また、今チェックしたばかりlftpで、lsの問題がなく、完全に正常に動作していることを付け加えます。lsここ(lftp内)は出力を適切に表示しています。
ラビ

3

「ftp 500違法PORTコマンド」の完全なソリューション。:次のリンクをクリックし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接続を確認します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.