1.
概述:主动与被动模式的基本差异
被动模式(PASV)与主动模式(PORT)是 FTP 在建立数据连接时的两种机制。
主动模式:客户端在本地开启随机端口,告诉服务器回连地址与端口,服务器从20端口发起数据连接。
被动模式:服务器在指定端口范围内监听,客户端连接服务器提供的数据端口,由客户端发起数据连接。
在有 NAT、防火墙或 ISP 限制的网络(如部分台湾/大陆互联链路),PASV 更常用。
理解两者差异是排查“电脑无法连接台湾 FTP 服务器”的关键第一步。
2.
被动模式(PASV)原理及服务器端配置示例
被动模式需要服务器开放控制端口(21)与一组数据端口(例如40000-50000)。
vsftpd 常见配置项示例(示例服务器IP:203.69.47.12):
listen=YES
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=40100
pasv_address=203.69.47.12
被动模式优点:客户端不需开放入站端口,更易穿透 NAT 与个人防火墙。
注意:若使用 CDN 或反向代理,pasv_address 必须指向真实可达公网 IP 或域名。
3.
主动模式(PORT)原理及客户端/服务器配置示例
主动模式下客户端告诉服务器“我的IP:端口”,服务器从20端口回连该端口。
服务器无需开放大量数据端口,但客户端必须允许入站连接(对位于家用路由或公司防火墙的电脑影响大)。
示例命令行(Windows 客户端)开启被动/主动切换示意:FTP 客户端->设置->启用主动模式(PORT)或禁用以使用 PASV。
主动模式适用场景:客户端在公网且防火墙允许回连,或者内网通过路由器做了端口映射。
若客户端位于对等 NAT 后,主动模式通常失败,需优先尝试 PASV。
4.
防火墙、NAT 与 iptables/ufw 配置要点(含示例命令)
服务器防火墙必须允许控制端口与被动数据端口,如 21 与 40000-40100。
iptables 示例(CentOS/Ubuntu 通用示例):
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 40000:40100 -j ACCEPT
如果使用 firewalld:firewall-cmd --add-port=21/tcp --permanent; firewall-cmd --add-port=40000-40100/tcp --permanent; firewall-cmd --reload
NAT/路由器需做端口映射(若服务器在内网),映射21及被动端口段到服务器内网IP(如192.168.1.100)。
对于云主机(VPS),还需在云厂商控制台放通安全组规则(端口21与被动端口段)。
5.
端口与连接映射表(示例)
以下表格展示了典型配置的端口映射与说明(表格为示例数据,边框宽度1,居中显示):
| 类型 | 端口/范围 | 方向 | 说明 |
| 控制端口 | 21 | 入站 | FTP 命令连接 |
| 主动数据 | 20 (服务器发出) | 出站 | 服务器回连客户端端口 |
| 被动数据 | 40000-40100 | 入站 | 客户端连接服务器开放的数据端口 |
| 示例服务器IP | 203.69.47.12 | — | 台湾 VPS 公网 IP 示例 |
6.
真实案例:台湾 VPS(Linode 样例)FTP 无法连接排查与解决
问题描述:用户 A(位于台湾)使用 VPS IP 203.69.47.12,外网用户提示“连接建立但数据传输失败”。
排查步骤:首先检查 vsftpd 日志 (/var/log/vsftpd.log) 发现客户端成功建立 21 连接但 PASV 返回端口不可达。
发现原因:服务器开启 pasv 端口段 40000-40100,但云平台安全组仅放行 21 与 22。
解决措施:在云控制台和服务器 iptables 加入规则放通 40000-40100;重启 vsftpd。
结果:外网客户端使用 PASV 成功完成上传,速度 30MB/s,连接稳定,问题修复。
7.
与 CDN、DDoS 防护、监控工具的配合建议
CDN 通常不加速 FTP 流量,FTP 仍需直接到源站或使用 SFTP/HTTPS 替代。
若遇到大流量或攻击,可在云平台启用 DDoS 防护与流量清洗(示例阈值:流量异常 >100Mbps 时触发)。
建议使用 fail2ban 防止暴力登录(vsftpd + fail2ban 配置可自动封禁异常 IP)。
监控建议:Prometheus + node_exporter 或云监控,设置 21 端口与被动端口段的可达性告警。
测试工具:使用 ftp 命令行、lftp、nmap(nmap -p21,40000-40100 203.69.47.12)等验证端口与连接。
8.
总结与实用建议清单
优先使用被动模式(PASV)以穿透 NAT 与客户端防火墙限制。
确保服务器防火墙、云安全组与路由器均已放行控制端口与被动端口段。
使用真实公网 IP 或域名配置 pasv_address,避免返回内网地址导致连接失败。
考虑使用 SFTP(SSH)替代 FTP,简化端口与安全管理,且更易与 CDN/反向代理配合。
当遇到连通问题,按控制端口、数据端口、NAT 映射、日志四步法排查并记录测试数据。
来源:电脑无法连接台湾ftp服务器被动模式与主动模式配置详解