- 首页 >
- 问答 >
-
智能运维 >
- CentOS FTP Server的端口设置方法
CentOS FTP Server的端口设置方法
小樊
42
2026-01-02 05:41:25
CentOS FTP Server端口设置方法
一 环境准备与基础配置
- 安装 vsftpd:执行命令:sudo yum install -y vsftpd。
- 备份配置:sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak。
- 常用基础配置(/etc/vsftpd/vsftpd.conf):
- 禁用匿名:anonymous_enable=NO
- 启用本地用户:local_enable=YES
- 允许写入:write_enable=YES
- 限制用户到主目录:chroot_local_user=YES
- 启动与开机自启:sudo systemctl start vsftpd && sudo systemctl enable vsftpd。
二 修改默认控制端口 21
- 编辑配置文件:在 /etc/vsftpd/vsftpd.conf 中添加或修改:listen_port=8021(示例将控制端口改为 8021)。
- 可选(部分系统/客户端兼容性需要):编辑 /etc/services,将 ftp 行改为:ftp 8021/tcp(以及对应的 udp 行)。
- 重启服务:sudo systemctl restart vsftpd。
- 防火墙放行新端口:sudo firewall-cmd --permanent --add-port=8021/tcp && sudo firewall-cmd --reload。
- 云服务器注意:在云厂商的安全组/访问策略中同样放行 8021/tcp。
三 配置被动模式数据端口范围
- 在 /etc/vsftpd/vsftpd.conf 中启用并限定被动端口范围(示例范围 5000–5500):
- pasv_enable=YES
- pasv_min_port=5000
- pasv_max_port=5500
- 防火墙放行数据端口范围:sudo firewall-cmd --permanent --add-port=5000-5500/tcp && sudo firewall-cmd --reload。
- 说明:被动模式由客户端主动连接服务器的数据端口;主动模式由服务器连接客户端端口,现代网络环境更常用被动模式。
四 主动模式与端口 20 的处理
- 主动模式相关参数(/etc/vsftpd/vsftpd.conf):
- 启用主动数据连接:connect_from_port_20=YES
- 指定主动模式数据端口:ftp_data_port=20(可选,显式声明)
- 防火墙放行:sudo firewall-cmd --permanent --add-port=20/tcp && sudo firewall-cmd --reload。
- 使用建议:若客户端在 NAT/防火墙后,优先使用被动模式(配置数据端口范围并放行),可显著降低连接失败概率。
五 验证与常见问题
- 服务与端口检查:
- 服务状态:systemctl status vsftpd
- 端口监听:ss -tnlp | grep ‘:8021|:21|:5000|:5500’
- 连通性测试(示例):telnet 127.0.0.1 8021(或服务器公网 IP)
- 客户端连接建议:
- 显式指定端口(如 8021)与被动模式;在 FileZilla 等客户端中设置“主动/被动”模式与端口范围一致。
- 常见排障要点:
- 云服务器需放行安全组/访问策略的 21/8021 与控制端口、5000–5500 数据端口。
- 若服务器存在公网 IP 与私网 IP 不一致的情况,被动模式可能需要设置 pasv_promiscuous=YES(会降低安全检查,谨慎使用)。
- SELinux 若开启,必要时可临时 setenforce 0 验证是否为策略问题,再改为永久策略配置。