我有一个运行 VSFTPD 的 CentOS 服务器,因此我可以将文件上传到我的网站。
当我连接到 FTP 时,它会列出根目录中的文件夹,并且我可以打开除名为“public”的文件夹之外的所有文件夹,这只会导致 FileZilla 挂在“150 目录列表来了”上。
朋友可以正常连接到服务器并访问该文件夹。
另外,当我访问我提到的其他一些文件夹并尝试下载其中的文件时,它只是挂在传输上。
我已经在 vsftpd.conf 中设置了被动模式并打开了如下端口:
pasv_enable=Yes
pasv_max_port=12100
pasv_min_port=12000
pasv_address=<IP ADDRESS>
IP表:
-I INPUT -p tcp --destination-port 12000:12100 -j ACCEPT
我可以连接到其他 FTP 服务器并正常传输文件,但我自己的服务器似乎出了问题。我也在多个 FTP 帐户上进行了测试。
答案1
确保您还加载了“ip_conntrack_ftp”内核模块,它将跟踪实际数据传输所需的相关连接。以 root 身份(或使用 sudo)运行以下命令:
modprobe ip_conntrack_ftp
还要确保 SELinux(如果已启用)没有阻止你的请求,确保使用公共上下文,例如 user_home_dir_t(你的 homedir 的默认上下文)将默认不是使用 FTP 服务器,除非您执行以下操作:
setsebool -P ftp_home_dir 1
还有一些其他与 ftp 相关的 SELinux 标志,在某些情况下可能会产生干扰。运行getsebool -a|grep ftp
以查看所有标志,并在文档以获得详细描述。