在 CentOS 上连接 FTP Server,一般分两种情况:
1️⃣ 你是客户端,要连别人的 FTP
2️⃣ 你自己在 CentOS 上搭了 FTP Server,现在要连
下面我按最常见场景给你一个完整说明(以 vsftpd 为例,这是 CentOS 默认最常用的 FTP 服务)。
rpm -qa | grep vsftpd
或
yum list installed | grep vsftpd
如果没有:
yum install -y vsftpd
systemctl start vsftpd
systemctl enable vsftpd
查看状态:
systemctl status vsftpd
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
如果是测试环境,可临时关闭防火墙:
systemctl stop firewalld
查看状态:
getenforce
如果是 Enforcing,建议先临时关闭测试:
setenforce 0
永久关闭(不推荐生产):
vi /etc/selinux/config
SELINUX=disabled
yum install -y ftp
ftp localhost
或
ftp 127.0.0.1
输入用户名和密码:
ftp / anonymousftp CentOS_IP
CentOS IP⚠️ 注意模式
vi /etc/vsftpd/vsftpd.conf
常用配置:
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
修改后重启:
systemctl restart vsftpd
并在防火墙放行被动端口:
firewall-cmd --permanent --add-port=30000-31000/tcp
firewall-cmd --reload
| 现象 | 可能原因 |
|---|---|
| 连接超时 | 防火墙 / IP 不通 |
| 530 Login incorrect | 用户名密码错误 |
| 500 OOPS | SELinux / 权限 |
卡在 Entering Passive Mode |
被动端口未放行 |
systemctl status vsftpd
firewall-cmd --list-all
getenforce
netstat -tunlp | grep 21
如果你愿意,可以告诉我:
我可以直接帮你 精准定位问题。