VSFTPD 未侦听端口 21

VSFTPD 未侦听端口 21

我刚刚在 Ubuntu 系统上安装了 VSFTPD,但它似乎无法正常工作。

在配置文件中,我只将“local_enable”、“write_enable”和“listen”更改为“YES”。

当我使用“netstat -tanp”或类似命令时,它们只显示“22:sshd”,但端口 21 上没有任何内容。

我尝试重新启动 VSFTPD,并尝试重新启动整个 VPS。重新安装 VSFTPD 也没有帮助。

奇怪的是:在我第一次重新启动我的 VPS 之前,它正在监听 IPv6 Port21,但现在它甚至不再监听了。

我尝试了谷歌告诉我的一切,但没有任何效果。这是全新安装的ubuntu 16.04.4,vsftpd是版本3.0.3

(当我尝试在控制台中输入“vsftpd”时,它告诉我“500 OOPS:毁坏了 IPv4 和 IPv6 的 vsftpd 的两个副本)

TL;DR: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

相关内容