在 CentOS 上搭建的 FTP 服务器(ftpserver)登录慢,通常不是网络本身的问题,而是 服务配置或系统环境 导致的。下面按最常见原因 → 排查方法 → 解决建议来说明。
FTP 服务器在用户登录时,会尝试对客户端 IP 做 反向 DNS 解析(PTR)。
如果:
就会表现为:
输入账号密码后,等很久才登录成功
✅ 解决(vsftpd 为例)
vi /etc/vsftpd/vsftpd.conf
添加或确认:
reverse_lookup_enable=NO
重启服务:
systemctl restart vsftpd
如果系统使用了:
登录时会卡在用户认证阶段。
✅ 排查:
time id ftpuser
如果很慢,说明系统用户解析慢。
✅ 解决:
/etc/nsswitch.confCentOS 默认启用 SELinux,FTP 某些操作会被拦截并重试。
✅ 检查:
getenforce
✅ 临时测试:
setenforce 0
如果登录变快,说明是 SELinux 问题。
✅ 正确做法(不关闭 SELinux):
setsebool -P ftpd_full_access on
客户端登录慢或卡在:
Entering Passive Mode通常是因为:
✅ vsftpd 示例:
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
防火墙:
firewall-cmd --add-port=30000-31000/tcp --permanent
firewall-cmd --reload
如果:
登录时读取目录会非常慢。
✅ 检查:
df -h
top
# 1. 看 FTP 服务类型
rpm -qa | grep vsftpd
# 2. 看登录延迟在哪
tail -f /var/log/secure
tail -f /var/log/messages
# 3. 测试 DNS
nslookup 客户端IP
# 4. 测试本地登录
ftp localhost
请告诉我:
我可以直接给你一套针对性配置。