VSFTPDがポート21でリッスンしない

VSFTPDがポート21でリッスンしない

私はUbuntuシステムにVSFTPDをインストールしましたが、うまくいかないようです。

設定ファイルで「local_enable」、「write_enable」、「listen」のみが「YES」に変更されました。

「netstat -tanp」または同様のコマンドを使用すると、「22:sshd」のみが表示され、ポート21には何も表示されません。

VSFTPDを再起動し、VPS全体を再起動してみました。 VSFTPDを再インストールしても役に立ちませんでした。

奇妙な点:VPSを初めて再起動する前は、IPv6 Port21でリッスンしていましたが、今はリッスンしません。

Googleが教えてくれたことすべてを試しましたが、何の効果もありませんでした。これはUbuntu 16.04.4を新しくインストールしたものです。 vsftpdはバージョン3.0.3です。

(コンソールに「vsftpd」と入力しようとすると、「500 OOPS:IPv4とIPv6のvsftpdの両方のコピーが破損しています。)

要約:VSFTPDはPort21でリッスンしません。ヒントがありますか?

答え1

ちょうど同様の問題を解決しました。 IPv4で動作させるために、/etc/vsftpd.confを次のように変更しました。

listen=yes
listen_ipv6=NO
listen_address=<Public ipv4 address>

答え2

99%の場合、vsftpd.confファイルに構成の問題があります... vsftpdの状態を確認してください...次のエラーが発生する可能性があります。

root@localhost:~# sudo systemctl status vsftpd
 vsftpd.service - vsftpd FTP server
   Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Sat 2021-03-13 02:40:20 UTC; 32s ago
  Process: 538 ExecStartPre=/bin/mkdir -p /var/run/vsftpd/empty (code=exited, status=0/S
  Process: 539 ExecStart=/usr/sbin/vsftpd /etc/vsftpd.conf (code=exited, status=2)
 Main PID: 539 (code=exited, status=2)

Mar 13 02:40:20 localhost systemd[1]: Starting vsftpd FTP server...
Mar 13 02:40:20 localhost systemd[1]: Started vsftpd FTP server.
Mar 13 02:40:20 localhost systemd[1]: vsftpd.service: Main process exited, code=exited,
Mar 13 02:40:20 localhost systemd[1]: vsftpd.service: Failed with result 'exit-code'.

答え3

これは、vsftpdがIPv4またはIPv6でのみリッスンできるためです。デフォルトでは、vsftpd は IPv6 ソケットにバインドされます。ただし、デフォルトではカーネルは自動的に同等のIPv4ポート(引用する)

# This directive enables listening on IPv6 sockets. By default, listening
# on the IPv6 "any" address (::) will accept connections from both IPv6
# and IPv4 clients. It is not necessary to listen on *both* IPv4 and IPv6
# sockets. If you want that (perhaps because you want to listen on specific
# addresses) then you must run two copies of vsftpd with two configuration
# files.
listen_ipv6=YES

関連情報