FTP服务器端口默认是21(控制通道)和20(数据通道),但具体位置需要根据服务器软件去配置文件或管理后台查找,例如Linux的vsftpd.conf文件或Windows的IIS管理器中。无论你是管理员还是普通用户,搞清楚端口在哪里是配置FTP的第一步,接下来我会从查看、修改、排错三个角度,帮你彻底搞懂FTP服务器端口的位置。
FTP服务器默认端口与基本概念
在动手操作之前,得先了解FTP端口的默认分配,FTP协议使用两个端口:21号端口负责传递控制指令(登录、浏览目录等),20号端口负责实际传输文件数据,但这是针对主动模式而言,被动模式下服务器会随机开放一个高位端口(通常1024-65535)供客户端连接,这也是为什么很多FTP服务器需要配置端口范围。
主动模式与被动模式端口差异
- 主动模式:服务器主动用20端口连接客户端的高位端口,客户端防火墙容易拦截,适合服务器在内网、客户端公网的环境。
- 被动模式:服务器开放一个端口范围(如30000-31000),客户端主动连接,兼容性更好,广泛用于公网FTP服务器。
常见FTP服务器默认端口一览
| 服务器软件 | 默认控制端口 | 默认数据端口(主动) | 配置文件/管理界面 |
|---|---|---|---|
| vsftpd(Linux) | 21 | 20 | /etc/vsftpd/vsftpd.conf |
| proftpd(Linux) | 21 | 20 | /etc/proftpd/proftpd.conf |
| IIS FTP(Windows) | 21 | 20 | IIS管理器 -> 站点绑定 |
| FileZilla Server | 21 | 20 | 管理界面 -> 监听端口 |
FTP端口21和20的分工
21端口只传输登录、命令等控制信息,不传输文件数据;20端口只在主动模式下传输数据,如果服务器使用被动模式,数据端口由服务器动态分配,你需要在防火墙中放行对应的端口范围,否则客户端会连接超时。
FTP服务器端口在哪里查看?
很多新手卡在这一步:明明安装了FTP服务,却不知道端口在哪里设的,下面分系统讲清楚。
Windows系统下查看FTP端口
- IIS FTP管理器:打开IIS管理器,左侧展开到“网站”,点击你的FTP站点,右侧“绑定”中能看到端口号,默认是21,如果用了多个站点,每个可以绑定不同端口。
- 命令netstat:以管理员身份运行CMD,输入
netstat -ano | findstr ":21",能看到哪个进程在监听21端口,PID列的数字对应任务管理器里的进程ID。 - FileZilla Server:打开Server Interface,菜单栏“Edit” -> “Settings” -> “General settings”,直接显示监听端口。
Linux系统下查看FTP端口
- 查看配置文件:vsftpd的端口在
listen_port参数,默认不写就是21,用cat /etc/vsftpd/vsftpd.conf | grep listen_port查看。 - 命令netstat:
netstat -tlnp | grep 21,会显示inetd或vsftpd进程绑定的端口,如果端口被隐藏(比如修改了非标端口),用lsof -i :21也能查。 - 服务状态:
systemctl status vsftpd或service vsftpd status,启动日志里会显示监听端口。
使用第三方工具查看FTP端口
如果你连不上服务器,想确认端口是否开放,可以用telnet或nmap,例如telnet 你的服务器IP 21,如果端口开放会显示连接成功;nmap -p 21 你的服务器IP能快速扫描端口状态。
FTP服务器端口在哪里修改?
修改端口是提升安全性的常见手段,也能解决端口冲突,改完端口后防火墙和客户端都要同步更新。
修改vsftpd端口(Linux)
- 编辑配置文件:
vim /etc/vsftpd/vsftpd.conf - 添加或修改行:
listen_port=2121(自定义端口,比如2121) - 保存退出,重启服务:
systemctl restart vsftpd - 如果防火墙开启,需要放行新端口:
firewall-cmd --add-port=2121/tcp --permanent && firewall-cmd --reload
修改IIS FTP端口(Windows)
- 打开IIS管理器,左侧点击“网站”下的FTP站点。
- 右侧操作区点击“绑定”。
- 选中ftp类型,编辑端口号,比如2121。
- 确定后在防火墙中添加入站规则,放行TCP 2121。
- 如果FTP使用被动模式,还需要在IIS管理器“FTP防火墙支持”中设置被动端口范围,并在防火墙中放行该范围。
修改FileZilla Server端口
- 打开FileZilla Server Interface,顶部菜单“Edit” -> “Settings”。
- 左侧“General settings”,右侧“Listen on port”修改为2121。
- 确定后重启服务(Service -> Restart)。
- 被动模式端口在“Passive mode settings”中设置,勾选“Use custom port range”,填入范围如30000-31000。
修改后防火墙与客户端配置
- 防火墙:务必放行新端口,用iptables、firewalld或Windows防火墙。
- 客户端:连接时在地址栏写
ftp://你的IP:2121,或者在客户端软件中修改端口号。 - 端口映射:如果服务器在路由器后面,需要做端口转发。
FTP端口21被占用怎么办?
端口占用是常见问题,通常是因为其他程序抢先占用了21端口,或者你忘了停掉旧的FTP服务。
排查端口占用程序
- Windows:
netstat -ano | findstr :21,看到PID后去任务管理器找进程,或者用tasklist | findstr PID。 - Linux:
lsof -i :21或fuser 21/tcp,显示进程名和PID,然后kill -9 PID结束进程,或者用systemctl stop 服务名。
修改FTP服务器端口或结束占用进程
- 如果占用的是其他必要服务(比如Apache Tomcat默认用了8080,但21被占通常不是),更推荐修改FTP端口到1000以上,例如2121。
- 如果占用的是旧版FTP服务,直接停掉:
systemctl stop vsftpd或net stop ftpsvc。 - 修改完端口后,记得重启FTP服务并检查监听状态:
netstat -tlnp | grep 2121。
FTP服务器端口安全设置建议
端口暴露在公网上,被扫描和攻击的风险一直存在,行业共识认为,合理配置端口能大幅降低被暴力破解的几率。
更改默认端口防止扫描
大多数扫描工具第一波就扫21端口,改成非标端口(如2121、21210)能瞬间过滤掉大量自动攻击,配合防火墙只允许特定IP访问,基本安全可保。
使用SFTP(端口22)替代FTP
FTP的21端口传输明文,密码和数据容易被抓包,如果你对安全要求高,建议改用SFTP(基于SSH,端口22),虽然SFTP不是FTP,但功能类似,且更安全。FTP端口21和22区别:21是控制端口,22是SSH端口,SFTP通过22传输,全程加密,很多企业现在直接弃用FTP,选择SFTP或FTPS(FTP over SSL,端口990或21加SSL)。
限制端口访问与防火墙规则
- 只允许必要的IP段访问FTP端口,在防火墙中添加规则。
- 被动模式端口范围尽量缩小,比如只开放10个端口,并限制来源IP。
- 定期检查服务器日志,看21端口是否有异常连接尝试。
FTP服务器端口常见问题(Q&A)
问:FTP服务器端口在哪里查看?
答:Linux看配置文件(vsftpd.conf中的listen_port),Windows看IIS管理器站点绑定或FileZilla设置界面,也可以用netstat -ano | findstr 21(Windows)或lsof -i :21(Linux)直接看监听状态。
问:FTP端口21和20有什么区别?
答:21是控制端口,负责登录、命令传输;20是数据端口,只在主动模式下传输文件,被动模式下不用20,而是服务器动态分配端口,两条端口缺一不可,但防火墙规则通常只需放行21和被动端口范围。
问:FTP端口被占用如何解决?
答:先用netstat找出占用程序的PID,结束进程或停掉服务,如果占用无法避免,修改FTP端口到1024以上,比如2121,然后重启防火墙和FTP服务,客户端连接时记得改端口号。
FTP服务器端口的位置其实不难找,关键是从配置文件、管理界面或命令行入手,无论你用的是Windows还是Linux,搞清楚默认端口和修改方法,就能在搭建和排错时节省大量时间。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/565825.html




