VirtualBoxマシンでUbuntuサーバーを使用しています。 ApacheとSSHは機能していますが、FTPはサーバーに正常に接続してログインした後、エラーメッセージを送信します。
- Command: PORT 127,0,0,1,180,221
- Response: 500 Illegal PORT command.
- Error: Failed to retrieve directory listing
Port Forwarding:
TCP | Host Port 2100 | Guest Port 21
私のvstpd.confファイル:
listen=YES
pasv_enable=YES
pasv_min_port=2005
pasv_max_port=2010
port_enable=YES
anonymous_enable=YES
local_enable=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=NO
ftpd_banner=Welcome.
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem
ジャックベニーは近いです...
Ubuntuを使用してAWSで実行しているのは、vsftpdが正しく動作するようにするためです。
seccomp_sandbox=NO
allow_writeable_chroot=YES
pasv_address=<(public ip) or (AWS public domain or DNS)>
pasv_enable=Yes
pasv_min_port=30000
pasv_max_port=30100
port_enable=YES
次に、20,21,30000-30100
が通過するポートを許可していることを確認する必要があります。ポートの選択30000-30100
は完全に任意であり、あなたが望むものにできることを覚えておいてください。ただし、10000
および100
以上の範囲のポートに固執します。
「外部」から接続しているときにエラーが発生しましたか?その場合、外部IPをvsftpdに追加して、パッシブモードFTPを使用するときにクライアントに送信するIPを認識させる必要があります。
pasv_address=<YOUR_IP_HERE>
を設定に追加してみてください。
FTPクライアントをアクティブモードに切り替えて、同じエラーが引き続き発生するかどうかを確認することもできます。
また、パッシブFTPのポート範囲を設定し、パッシブモードFTPを有効にする必要があります。これらの行を追加してみてください(START_PORTおよびEND_PORTを目的のポートに置き換えてください。また、ルーターでポート転送することを忘れないでください)。
pasv_enable=Yes
pasv_max_port=<START_PORT>
pasv_min_port=<END_PORT>
ここで何が起こっているのかわかりませんが、この問題は古すぎます。数週間前に仮想マシンを再インストールし、すべての指示に注意深く従ったときに、ようやくこれを解決しました。とにかく回答はとても役に立ちました。