【ubuntu】FTPサーバー立てたけどディレクトリリスト取得表示に失敗した時の対処方法
ubuntuサーバーにFTP立てたけど接続は出来るのにディレクトリリストの取得・表示ができなかった時の原因と対処方法の備忘録です。
症状
エラー: ディレクトリ リスト表示の取り出しに失敗しました
(mac FileZillaのメッセージログ)
原因
FTPにパッシブモードを使用している際に、ポートがTCP/21番のみしか解放されておらず、データコネクションに必要なポートが解放されていないため、接続はできるがディレクトリリストが取得できないといった症状が発生している。
基本的にFTPでは制御用に21番ポートが利用され、データ転送用に20番ポートが利用されます。しかし、パッシブモードの場合、クライアント側から接続するデータ転送用のポートは毎回ランダムで決まるのが特徴です。
設定方法
vsftpd.confの編集
vsftpd.confにて、パッシブモードで使用するポート番号の指定をします。今回は範囲を10100〜10110とします。
ターミナル
sudo vim /etc/vsftpd.conf
/etc/vsftpd.conf
pasv_enable=YES pasv_min_port=10100 pasv_max_port=10110
ファイアウォールの設定
ファイアウォールにて10100〜10110のポートを解放します。
ターミナル
sudo ufw allow from any to any proto tcp port 10100:10110
下記コマンドで確認できます。
ターミナル
sudo ufw status
FTPを再起動します。
ターミナル
sudo systemctl restart vsftpd
無事ディレクトリリストの取得表示に成功しました。