在 CentOS 7 上配置 vsftpd 时,如果遇到访问被拒绝的问题,可以尝试以下步骤来解决:
- 确保 vsftpd 服务已启动并设置为开机自启:
sudo systemctl start vsftpd sudo systemctl enable vsftpd
- 检查 SELinux 设置。如果 SELinux 是 Enforcing 模式,可能会阻止 vsftpd 的访问。你可以暂时将其设置为 Permissive 模式以进行测试:
sudo setenforce 0
如果这解决了问题,你可以考虑调整 SELinux 策略以允许 vsftpd 访问,或者将其保持为 Permissive 模式。要永久更改 SELinux 设置,请编辑 /etc/selinux/config
文件并将 SELINUX=enforcing
更改为 SELINUX=permissive
,然后重启系统。
- 检查防火墙设置。确保防火墙允许 FTP 服务的端口(默认为 21)。使用以下命令添加防火墙规则:
sudo firewall-cmd --permanent --add-service=ftp sudo firewall-cmd --reload
- 检查 vsftpd 配置文件
/etc/vsftpd/vsftpd.conf
。确保以下设置正确:
- 将匿名访问设置为
no
:anonymous_enable=NO
- 启用本地用户登录:
local_enable=YES
- 允许用户写入:
write_enable=YES
- 如果使用 SSL/TLS,请确保
ftps
和ftpes
设置为YES
,并配置相应的证书和密钥文件。
-
检查
/var/log/secure
和/var/log/messages
日志文件以获取有关拒绝访问的详细信息。这些日志文件可能会提供有关问题的更多线索。 -
如果问题仍然存在,请尝试重新启动 vsftpd 服务:
sudo systemctl restart vsftpd
按照以上步骤操作后,你应该能够解决 CentOS 7 上 vsftpd 访问被拒绝的问题。如果问题仍然存在,请提供更多详细信息以便进一步排查。