关键词: CentOS8/RHEL8; 配置 FTP / 配置 VSFTPD; 被动模式 / PASV
- ##CentOS8.0-1905 发布后, 尝试将 FTP 服务器迁移至新版本的 CentOS 中, 但是测试过程中, 在防火墙中开放 ftp 服务后, 仍然一直无法连接, 如果使用 lftp 或 ftp 工具测试, 会提示[没有到主机的路由] 错误. 但是关闭防火墙后, ftp 服务可以正常访问.
- ## 查询相关资料的过程中, 有资料说 firewalld 软件有 bug, 但是尝试安装 http, 测试后可以成功, 说明防火墙没有问题.
- ## 继续查询相关资料, 发现 Chrome,Firefox 或者 Filezilla 等多数客户端工具, 默认使用被动模式 (PASV 模式) 访问 ftp 服务, 因此猜测是被动模式下 ftp 工作时, 端口被拒绝的问题.
- ## 在 vsftpd 配置文件中增加 PASV 相关设置后, 并在防火墙中开放指定端口, 可以正常访问.
- ##### 实现步骤如下:
1, 安装
yum -y install vsftpd
2, 调整配置
- VIM /etc/vsftpd/vsftpd.conf
- ## 根据需要调整配置, 例如启用匿名访问等功能
- ## 启用 Passive 模式
- ##################
- #pasv_enable=YES ## 启用
- #pasv_min_port=10000 ## 开启最低的 pasv 端口, 建议采用大于 1024 的高端口
- #pasv_max_port=11000 ## 开启最高的 pasv 端口
- #######################
3, 调整防火墙配置
- ## 启用 ftp 服务器
- firewall-cmd --add-service=ftp --permanent
- ###### 增加 ftp 访问
- firewall-cmd --add-port=10000-11000/tcp --permanent
- ###### 上述命令, 开放 10000-11000 号的 tcp 端口
- ###### 如果有需要可以增加相应的 udp 端口
- firewall-cmd --reload
- ## 重新加载防火墙
4, 重启 ftp 服务即可访问
来源: http://www.bubuko.com/infodetail-3263499.html