我在最新的Arch Linux系统上安装了vsftpd 3.0.2版本。 我可以通过本地networking成功访问和使用服务器,但是无法通过Internet进行工作:login后,服务器在响应客户端进入被动模式的请求时发送本地IP地址。 这使得服务器在本地networking之外无用,因为客户端拒绝将命令发送到无效的IP地址。 (请参阅下面的FileZilla输出)
我研究了这个问题,发现我可以在vsftpd的configuration文件中指定使用被动模式时要发送的地址( 点击这里进行研究 )。 我将pasv_address行添加到我的/etc/vsftpd.conf中,并指定了最小和最大被动端口,并相应地configuration了我的路由器。
使用systemctl重新启动vsftpd后,所有的configuration更改都没有生效。 然后我尝试重新启动整个系统,并得到相同的结果。 我在/etc/vsftpd.conftesting了一些其他设置,发现它们都没有生效。 在我看来,vsftpd忽略了对/etc/vsftpd.conf所做的/etc/vsftpd.conf 。
我find了许多网站,指出vsftpd的configuration文件是/etc/vsftpd.conf,但是如果在命令行中指定了它,可以使用不同的网站。 我已经尽我所能检查了我的系统,但找不到对正在使用的不同configuration文件的引用。
有谁知道我可以做这些configuration更改为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
我还没有find这个vsftpd问题的解决scheme,但是在没有答案的情况下,我探索了一些其他的FTP守护进程选项。 我目前正在使用bftpd,我可以configuration发送适当的地址给客户端。 这已经解决了我缺乏工作的FTP服务器的问题,所以现在我将接受这个答案,尽pipe如果有人知道如何解决vsftpd问题,我仍然有兴趣学习。
2015年3月1日编辑:我刚刚重新安装vsftpd,发现我的问题是一个相当尴尬的用户错误的情况下:而不是在systemd中加载vsftpd服务,我加载了一个通用的ftpd服务,这当然不会响应对vsftpd的configuration文件。 Vsftpd已启动并正在运行,并将适当的IP地址发送给客户端。