FTP 挂在“150 目录列表来了”。

Cal*_*mpy 3 centos ftp vsftpd

我有一台运行 VSFTPD 的 CentOS 服务器,因此我可以将文件上传到我的站点。

当我连接到 FTP 时,它会列出根目录中的文件夹,我可以打开除名为“public”的文件夹之外的所有文件夹,这只会导致 FileZilla 挂起“150 目录列表来了”。

朋友可以连接到服务器并访问文件夹就好了。

此外,当我访问我提到的其他一些文件夹时,当我尝试下载其中的文件时,它只是在传输时挂起。

我在 vsftpd.conf 中设置了被动模式并打开了如下端口:

pasv_enable=Yes
pasv_max_port=12100
pasv_min_port=12000
pasv_address=<IP ADDRESS>
Run Code Online (Sandbox Code Playgroud)

IP表:

-I INPUT -p tcp --destination-port 12000:12100 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

我可以连接到其他 FTP 服务器并传输文件就好了,但是我自己的服务器似乎有问题。我还通过多个 FTP 帐户对其进行了测试。

Old*_*ool 5

确保您还加载了“ip_conntrack_ftp”内核模块,它将跟踪实际数据传输所需的相关连接。作为 root(或使用 sudo),运行这个:

modprobe ip_conntrack_ftp
Run Code Online (Sandbox Code Playgroud)

还要确保 SELinux(如果已启用)不会阻止您的请求,请确保使用公共上下文,例如 user_home_dir_t(您的 homedir 的默认上下文)默认不会与 FTP 服务器一起使用,除非您这样做:

setsebool -P ftp_home_dir 1
Run Code Online (Sandbox Code Playgroud)

还有一些其他与 ftp 相关的 SELinux 标志,在某些情况下可能会干扰。运行getsebool -a|grep ftp以查看它们并在文档中查找它们以获取详细说明。