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は古いプロトコルです。これは2つのTCP接続に依存します。制御接続これにより命令を交換し、データ接続ファイルの内容とコマンドの出力に使用されます。たとえば、ls
ここで何が起こるのかは、制御接続が確立されたがデータ接続が確立されていないことです。
デフォルトでは、(アクティブモード)送信者から受信者へのデータ接続が確立されます。出力の場合、ls
サーバーからデータを送信するため、サーバーはクライアントとの接続を試みます。これはFTPが発明されたときにうまく機能しましたが、現在クライアントはアクティブなFTPをサポートすることもサポートしないかもしれないファイアウォールまたはNATの背後にあることがよくあります。手動モードに切り替えると、クライアントは常にデータ接続を開始します。
ftp
デフォルトで手動モードに切り替える方法については、コマンドマニュアルを確認してください。ワンタイム操作の場合、通常はpassive
コマンドを入力することをお勧めします。
次のようなより良いFTPクライアントに切り替えたい場合があります。ネットワークファイル転送プロトコルまたはリモート転送プロトコル。
答え2
「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 接続を確認します。