访问FTP服务器默认需要开通TCP 21端口用于控制命令;如果用被动模式,还必须放行一段自定义高位端口范围,常见如50000-60000;若用主动模式,则额外需要TCP 20端口。
ftp服务器端口是多少?21和20只是起点
FTP协议天生就是“双通道”设计:一条控制连接,一条数据连接,很多人以为FTP只走一个端口,结果能登录但列不出目录,问题就出在数据端口没放行。
控制连接固定使用TCP 21,客户端连上服务器的21端口后,发送用户名、密码、切换目录、下载上传等命令,数据连接则不同:主动模式下服务器从TCP 20端口反向连接客户端;被动模式下服务器开放一个临时高位端口,由客户端主动连过去。
- 控制端口:TCP 21,负责命令与响应。
- 数据端口主动模式:TCP 20,服务器主动发起。
- 数据端口被动模式:服务器指定范围的高位端口,客户端发起连接。
多数现代客户端默认使用被动模式,因为主动模式要求客户端防火墙放行入站连接,这在办公网络或家庭宽带里很难做到,行业共识认为,公网FTP服务应优先采用被动模式并固定端口范围。
| 模式 | 服务器需放行入站 | 客户端需放行 | 适用场景 |
|---|---|---|---|
| 主动模式 | TCP 21 | 入站到客户端随机端口 | 客户端无防火墙限制的老式内网 |
| 被动模式 | TCP 21 + 高位端口范围 | 出站到服务器高位端口 | 公网、云服务器、NAT网络 |
看表就明白:只开21,主动模式也许还能连上控制通道,但数据通道会被挡;被动模式连目录列表都刷不出来。
ftp被动模式端口范围怎么设置才不踩坑
被动模式端口范围不是统一标准,而是由FTP服务器软件自行定义,如果不设置,服务器会用系统随机端口,防火墙没法提前放行,连接失败几乎不可避免。
vsftpd设置被动端口范围
以Linux上常用的vsftpd为例,编辑/etc/vsftpd/vsftpd.conf,加入或修改这几行:
pasv_enable=YES
pasv_min_port=50000
pasv_max_port=60000
保存后重启服务:
systemctl restart vsftpd
这样服务器就会在50000到60000之间选一个端口作为被动数据端口,范围可以更小或更大,但建议至少保留几百个端口,多个用户同时传文件时不容易出现端口耗尽。
FileZilla Server设置被动端口
FileZilla Server图形界面里,打开设置,找到“Passive mode settings”,勾选“Use custom port range”,填入起始和结束端口,例如50000-60000,这一步做完,还要把同样的范围写进云安全组或防火墙入站规则,否则等于白设。
IIS FTP设置数据通道端口
Windows服务器用IIS搭FTP时,被动端口范围藏在“FTP防火墙支持”里,打开IIS管理器,点击服务器节点,进入“FTP防火墙支持”,在“数据通道端口范围”中填50000-60000,同时填写服务器公网IP,这样IIS回复PASV命令时才会给出正确的IP和端口。
端口范围选多大合适
端口范围选得太小,用户一多就会互相争抢;选得太大,防火墙规则写起来麻烦,常见做法是给1000个左右端口,比如50000-50999或40000-40999,避开1024以下的系统端口,也尽量不要和数据库、中间件常用端口混在同一个区间。
简米云ftp端口怎么开?安全组配置实操
云服务器最容易出现“FTP 21能连上,但列不出目录”的情况,根因几乎都是安全组只放了21,没放数据端口,以简米云为例,安全组是独立于系统防火墙的一层,两边都放行才有效。
简米云安全组入站规则
- 登录简米云控制台,进入云服务器ECS实例详情,点击“安全组”。
- 选择对应安全组,点击“配置规则”,再点“入方向”里的“手动添加”。
- 添加三条规则:
- 协议类型:TCP,端口范围:
21/21,授权对象:0.0.0/0(或指定IP段) - 协议类型:TCP,端口范围:
20/20,授权对象:按需填写 - 协议类型:TCP,端口范围:
50000/60000,授权对象:0.0.0/0
- 协议类型:TCP,端口范围:
- 保存。
如果只开放21,客户端会卡在“正在获取目录列表”然后超时,这个现象在简米云、酷番云、华为云上都一样,因为安全组默认丢弃所有未放行的入站流量。
出站规则要不要动
多数云厂商默认放行所有出站流量,所以通常不用改,如果你把出站规则改成了全拒绝,那就需要额外放行TCP 21、TCP 20以及到客户端连接所需的目标端口,出站规则不建议收紧,否则FTP主动模式和被动模式都会冒出各种诡异问题。

系统防火墙也要同步放行
CentOS/Rocky/AlmaLinux使用firewalld时执行:
firewall-cmd --permanent --add-port=21/tcp
firewall-cmd --permanent --add-port=50000-60000/tcp
firewall-cmd --reload
Ubuntu使用ufw时执行:
ufw allow 21/tcp
ufw allow 50000:60000/tcp
两层防火墙都放行后,FTP数据连接才能建立,业内专家指出,云上FTP故障排查中,安全组配置遗漏远高于服务器软件本身的问题。
公司内网ftp需要开放哪些端口?经过防火墙时注意ALG
公司内网搭FTP,尤其是跨VLAN或经过硬件防火墙访问时,情况比云服务器更复杂,防火墙除了要放行端口,还要正确处理FTP动态协商的数据连接。
基础端口规则
- 入站到FTP服务器:放行TCP
21。 - 主动模式:放行服务器出站源端口
20到客户端,或在防火墙启用FTP ALG。 - 被动模式:放行入站到服务器的
50000-60000(或你自定义的范围),同时放行客户端出站到该范围。
很多企业防火墙默认开启ALG(应用层网关),能自动识别FTP控制会话并临时打开数据通道,但如果手动写了端口规则,又开启了ALG,有时反而会冲突,稳妥做法是固定被动端口范围并显式放行,关闭FTP ALG。
路由器端口映射注意双通道
如果FTP服务器在内网,通过路由器端口映射给外网访问,不能只映射21,被动端口范围必须同样映射到内网服务器IP,多数家用路由器支持端口范围转发,把50000-60000一并映射即可,否则外网登录后同样看不到文件列表。
宝塔面板和群晖NAS的特殊情况
宝塔面板搭建FTP时,默认端口通常是21,被动端口范围需要在软件设置里修改,群晖NAS开启FTP后,也要在控制面板中设置被动端口范围,并在路由器上做对应转发,这类内置FTP服务都依赖同一套端口逻辑,只是入口位置不同。
ftp连接不上是不是端口问题?先排查这5处
FTP连接故障里,端口不通占了相当大比例,按下面顺序排查,多数情况能在几分钟内定位。

- 测试控制端口21是否通:在客户端执行
telnet 服务器IP 21,如果出现FTP欢迎信息,说明21通;如果连接超时或拒绝,检查安全组、系统防火墙、路由器映射。 - 确认客户端是否使用被动模式:大部分FTP客户端可切换主动/被动,主动模式在NAT网络下极易失败,先改成被动再试。
- 检查被动端口范围是否与防火墙一致:如果服务器配置了
50000-60000,但安全组只放了5000-6000,数据连接照样失败,逐位核对范围。 - 查看服务器日志中的端口:vsftpd日志或FileZilla Server控制台会显示PASV返回的具体端口,用
telnet 服务器IP 该端口测试通不通。 - 测试数据连接建立过程:客户端连接后执行
ls,如果控制命令正常但文件列表超时,基本可判定数据端口被挡。
排查完这5处,FTP连接不上是端口问题的概率就小很多了,再往后才是账号权限、被动模式IP地址、TLS证书等方向。
访问ftp服务器需要开通什么端口:常见疑问速答
ftp服务器默认端口21可以改吗?
可以改,比如vsftpd里设置listen_port=2121,客户端连接时就要写成ftp://IP:2121,改端口能减少自动扫描攻击,但云安全组和系统防火墙必须同步放行新端口,否则改了反而连不上。
FTP over TLS需要额外开通端口吗?
显式FTP TLS模式复用原有21和被动端口范围,不需要单独开新端口,隐式FTPS传统上使用990作为控制端口、989作为数据端口,但现代客户端多数使用显式模式,所以优先确认客户端选择的是显式TLS还是隐式TLS,再决定是否放行990和989。
Windows防火墙如何放行FTP被动端口范围?
进入“高级安全Windows防火墙”,点击“入站规则”,新建规则,选择“端口”,协议选TCP,输入特定本地端口50000-60000,选择“允许连接”,命名保存,完成后重启FTP服务使被动端口设置生效,对应IIS或FileZilla Server的被动端口设置必须一致。
把21端口、20端口或被动端口范围、云安全组、系统防火墙这四处全部对齐,FTP才能在主动和被动两种模式下稳定传文件,只开21,FTP往往只能登录,不能传数据。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/827187.html


评论列表(3条)
这篇文章的内容非常有价值,我从中学习到了很多新的知识和观点。作者的写作风格简洁明了,却又不失深度,让人读起来很舒服。特别是端口部分,给了我很多新的思路。感谢分享这么好的内容!
这篇文章写得非常好,内容丰富,观点清晰,让我受益匪浅。特别是关于端口的部分,分析得很到位,给了我很多新的启发和思考。感谢作者的精心创作和分享,期待看到更多这样高质量的内容!
@大小7979:读了这篇文章,我深有感触。作者对端口的理解非常深刻,论述也很有逻辑性。内容既有理论深度,又有实践指导意义,确实是一篇值得细细品味的好文章。希望作者能继续创作更多优秀的作品!