前提
FTP客户端:WinSCP
Centos 7.8 (64位)
pure-ftpd
(笔者这里是使用
宝塔面板 安装的)
WinSCP 开启 Passive Mode

pure-ftpd 开启 Passive Mode
pure-ftpd 配置文件路径:
使用宝塔安装 pure-ftpd,路径则为:
1
| /www/server/pure-ftpd/etc/pure-ftpd.conf
|
当然,也可以在宝塔面板操作:

直接在 CentOS 下安装 pure-ftpd,路径则为:
1
| /etc/pure-ftpd/pure-ftpd.conf
|
修改 配置文件 pure-ftpd.conf
找到如下内容:
pure-ftpd.conf1 2 3
| # Port range for passive connections replies. - for firewalling.
PassivePortRange 39000 40000
|
注意:
如果上方 PassivePortRange 39000 40000 被注释,需要取消注释,
注意:笔者测试过更换端口范围(3000 4000),然而会导致超时连接,不知道为何,
所以请使用默认端口范围(39000 40000),
阿里云ECS -> 配置安全组规则 -> 入、出方向 放行 39000/40000
当然,使用 FTP ,首先肯定要放行 21 端口,这里不多阐述。
重启 pure-ftpd 服务
宝塔面板:

命令
1
| service pure-ftpd restart
|
补充:
参考:
Pure-Ftpd · 宝塔面板手册 · 看云
1 2 3 4 5
| /etc/init.d/pure-ftpd start #启动pure-ftpd /etc/init.d/pure-ftpd stop #停止pure-ftpd /etc/init.d/pure-ftpd restart #重启pure-ftpd /etc/init.d/pure-ftpd reload #重载pure-ftpd /etc/init.d/pure-ftpd status #查看pure-ftpd当前运行状态
|
补充
WinSCP 无法连接 pure-ftpd(Passive Mode)
参考:
Linux FTP命令行被动模式连接PureFtpd超时-Linux运维日志
1
| Server sent passive reply with unroutable address 172.16.206.241, using host address instead.
|

解决:
pure-ftpd.conf 找到 ForcePassiveIP ,取消注释,修改 ip 地址为所在公网IP。
pure-ftpd.conf1 2 3 4 5
| # Force an IP address in PASV/EPSV/SPSV replies. - for NAT. # Symbolic host names are also accepted for gateways with dynamic IP # addresses.
ForcePassiveIP 120.14.213.35
|
120.14.213.35 为 阿里云ECS 公网IP地址
重启 pure-ftpd 服务即可。
超时连接
1 2 3
| Timeout detected. (data connection) Could not retrieve directory listing Error listing directory '/'.
|

解决:
不知道为何使用 3000 4000,就会出现如上图无法连接,使用默认端口范围即可
pure-ftpd.conf1 2 3
| # Port range for passive connections replies. - for firewalling.
PassivePortRange 39000 40000
|
参考
感谢帮助!
开启阿里云linux下的pure-ftpd被动模式,解决flashfxp可连接但无法下载的问题 - 我退而结网的个人空间 - OSCHINA - 中文开源技术交流社区
jedisct1/pure-ftpd: Pure FTP server
Linux FTP命令行被动模式连接PureFtpd超时-Linux运维日志