vsftpd 忽略对配置文件的更改

vsftpd 忽略对配置文件的更改

我在最新的 Arch Linux 系统上安装了 vsftpd 版本 3.0.2。我可以通过本地网络成功访问和使用服务器,但它无法通过互联网工作:登录后,服务器在响应客户端进入被动模式的请求时发送其本地 IP 地址。由于客户端拒绝向无效 IP 地址发送命令,这导致服务器在本地网络之外无用。(请参阅下面的 FileZilla 输出)

我研究了这个问题,发现我可以在 vsftpd 的配置文件中指定使用被动模式时发送哪个地址(点击此处进行研究)。我将该pasv_address行添加到我的 /etc/vsftpd.conf 中,并指定最小和最大被动端口,然后相应地配置我的路由器。

使用 重新启动 vsftpd 后systemctl,所有配置更改均未生效。然后我尝试重新启动整个系统,结果相同。我测试了 中的其他一些设置/etc/vsftpd.conf,发现它们也均未生效。在我看来,vsftpd 忽略了 所做的更改/etc/vsftpd.conf

我发现许多网站都说 vsftpd 的配置文件是 /etc/vsftpd.conf,但如果在命令行中指定,它可以使用不同的配置文件。我尽我所能检查了我的系统,但找不到对正在使用的不同配置文件的引用。

有人知道我如何对 vsftpd 进行这些配置更改吗?除非我另有说明,否则假设我使用默认设置。提前感谢您的帮助。

修改 /etc/vsftpd.conf 后尝试通过 Internet 连接到我的 FTP 服务器:

Status: Connecting to 71.###.###.###:21...
Status: Connection established, waiting for welcome message...
Response:   220 server-name FTP server (GNU inetutils 1.9.2) ready.
Command:    USER user
Response:   331 Password required for user.
Command:    PASS ******
Response:   230 User user logged in.
Command:    SYST
Response:   215 UNIX Type: L8 Version: Linux 3.17.6-1-ARCH
Status: Server does not support non-ASCII characters.
Status: Connected
Status: Retrieving directory listing...
Command:    PWD
Response:   257 "/home/user" is current directory.
Command:    TYPE I
Response:   200 Type set to I.
Command:    PASV
Response:   227 Entering Passive Mode (192,168,0,16,221,70)
Status: Server sent passive reply with unroutable address. Using server address instead.
Command:    LIST
Error:  Connection timed out
Error:  Failed to retrieve directory listing

答案1

我还没有找到解决此 vsftpd 问题的方法,但由于没有答案,我探索了一些其他 FTP 守护进程选项。我目前正在使用 bftpd,我可以配置它以将适当的地址发送给客户端。这解决了我缺少可用的 FTP 服务器的问题,所以现在我将接受这个作为答案,尽管如果有人知道如何修复 vsftpd 问题,我仍然有兴趣学习如何修复它。

2015年3月1日编辑:我刚刚重新安装了 vsftpd,发现我的问题是一个相当尴尬的用户错误案例:我没有在 systemd 中加载 vsftpd 服务,而是加载了一个通用的 ftpd 服务,这当然不会响应 vsftpd 配置文件的更改。Vsftpd 已启动并正在运行,并向客户端发送适当的 IP 地址。

相关内容