上一篇
FTP无法连接Linux服务器怎么办?,如何配置
- 云服务器
- 2026-07-24
- 10
检查FTP服务运行状态
FTP无法连接时,首先确认服务器上的FTP服务是否启动,使用以下命令检查:

- systemctl status vsftpd 或 service vsftpd status(适用于vsftpd)
- 如果服务未运行,启动它:systemctl start vsftpd 并设置开机自启:systemctl enable vsftpd
配置防火墙规则
防火墙可能阻止FTP连接,默认FTP使用端口21,但被动模式需要额外端口范围,执行以下操作:
- 开放端口21:firewall-cmd –permanent –add-port=21/tcp
- 开放被动模式端口(如10000-10100):firewall-cmd –permanent –add-port=10000-10100/tcp
- 重新加载防火墙:firewall-cmd –reload
- 或者使用iptables:iptables -A INPUT -p tcp –dport 21 -j ACCEPT
调整SELinux设置
SELinux可能限制FTP访问,检查并修改相关策略:

- 查看当前状态:getenforce
- 临时关闭:setenforce 0(测试用,不推荐生产环境)
- 永久修改:编辑/etc/selinux/config,设置SELINUX=disabled
- 针对FTP的特定设置:setsebool -P ftp_home_dir on 允许访问主目录
验证用户认证与权限
用户登录失败常见原因:

- 检查用户名和密码是否正确
- 确保FTP用户存在且具有shell权限(如/bin/bash)
- 编辑/etc/vsftpd/vsftpd.conf,确保允许本地用户登录:local_enable=YES
- 检查/etc/vsftpd/ftpusers或/etc/vsftpd/user_list,确保用户未被禁止
测试网络连接
- 从客户端ping服务器IP,确认网络连通:ping 服务器IP
- 使用telnet测试端口21:telnet 服务器IP 21
- 如果连接被拒绝,检查服务是否在监听:netstat -tuln | grep 21
常见错误与解决方案表格
| 错误信息 | 可能原因 | 解决方案 |
|---|---|---|
| 530 Login incorrect | 用户名或密码错误 | 重置密码或检查用户列表 |
| 连接超时 | 防火墙阻止或网络问题 | 检查防火墙规则和网络连通性 |
| 500 OOPS: vsftpd: refusing to run with writable root | 根目录权限问题 | 确保FTP根目录不可写,或使用chroot_local_user=YES |
| 无法建立数据连接 | 被动模式配置错误 | 配置被动模式端口范围并开放防火墙 |
| 421 Service not available | 服务未启动 | 启动vsftpd服务 |
相关问题与解答
问题1:FTP连接时提示“530 Login incorrect”,但密码正确,如何处理?
解答:首先检查用户是否被加入黑名单,查看/etc/vsftpd/ftpusers或/etc/vsftpd/user_list,确保用户不在其中,确认用户shell设置正确,例如/bin/bash,避免使用/sbin/nologin,如果使用虚拟用户,检查数据库认证配置,重启vsftpd服务:systemctl restart vsftpd。
问题2:如何配置FTP使用被动模式,并固定端口范围?
解答:编辑/etc/vsftpd/vsftpd.conf,添加以下配置:
- pasv_enable=YES
- pasv_min_port=10000
- pasv_max_port=10100
然后重启服务,在防火墙中开放对应端口范围:firewall-cmd –permanent –add-port=10000-10100/tcp,并重新加载,客户端连接时确保使用被动模式(如FileZilla中设置)。