创建完FTP无法与服务器连接,核心原因几乎总是那几样:服务没启动、端口被防火墙拦截、账号权限受限,或者客户端用的是被动模式而服务器没有开放对应端口。 这篇文章不绕弯子,直接把会卡住你的每个环节拆开,给你可验证的排查方法。
创建完FTP无法与服务器连接?先查这五个环节
你刚在服务器上装好FTP服务,本地客户端却提示“连接失败”,别急着怀疑软件有问题,90%的故障出在下面五件事上。
服务没启动,一切白搭
FTP服务不是装完就自动跑的,Windows里需要检查“FTP发布服务”是否处于启动状态,打开方式:按Win+R输入services.msc,找到“FTP发布服务”或“Microsoft FTP Service”,看状态列是否为“正在运行”,如果没启动,右键点击“启动”,再把启动类型改成“自动”。
Linux服务器上通常用vsftpd或ProFTPD,执行:
systemctl status vsftpd
如果显示inactive或failed,先启动:
systemctl start vsftpd systemctl enable vsftpd
这一步是基础中的基础,服务没运行,端口自然听不到任何请求。
防火墙和安全组拦截了21端口
FTP默认控制端口是21,但很多情况下,21端口被系统防火墙或云平台安全组挡得严严实实,你可以在服务器本机先做个自测:
telnet 127.0.0.1 21
如果出现220响应,说明服务正常,问题在外部网络层,Windows防火墙需要放行TCP 21端口,Linux使用firewalld或iptables,以firewalld为例:
firewall-cmd --zone=public --add-port=21/tcp --permanent firewall-cmd --reload
注意,云服务器还有一个更隐蔽的坑:安全组规则,无论你用的是简米云、酷番云还是其他厂商,都需要在控制台创建入站规则,放行TCP 21端口,很多用户租用低价云服务器,价格很便宜,但配置安全组时只开放了80和443,FTP自然连不上,这跟你本地防火墙没有任何关系,纯粹是云平台拦了流量。
IP、端口和账号信息填错
创建完FTP无法与服务器连接,还有一个高频原因是“填错地址”,比如你连的是局域网内的一台服务器,却填了公网IP;或者服务器有多个IP,

listen_address配置没生效,检查时先确认三件事:
- 地址是服务器的内网IP还是公网IP,云服务器需要确认弹性公网IP有没有绑定。
- 端口是否改过,如果FTP监听的是
2121,客户端还写21自然会失败。 - 用户名密码区分大小写,部分FTP服务禁止root直接登录。
如果你用的是“被动模式”并且服务器返回了内网地址,客户端会尝试连接一个内网IP导致超时,这通常需要修改FTP服务的被动模式配置。
主动被动模式不对,也会卡在数据连接上
控制端口21能通,不代表数据端口能通,FTP有两种工作模式:主动模式默认使用20端口,被动模式则使用服务器指定的一段随机端口,当你看到客户端报“PORT command successful”后卡死,大概率是主动模式被防火墙拦了,反过来,如果报“Failed to retrieve directory listing”,多半是被动模式端口范围没放行,这个问题很常见,下面单独用一节细说。
账号权限或目录权限不够
最后一步检查账号复制代码,FTP服务配置了虚拟用户,但用户主目录不存在,或者没有读写权限,登录后可能直接被断开,Linux下常见错误是目录属主不对,执行:
chown -R ftpuser:ftpuser /home/ftpuser chmod -R 755 /home/ftpuser
Windows IIS里则要检查FTP授权规则,确认指定用户有“读取”和“写入”权限,权限不足时,客户端往往能连接,却在上传时被扇了一巴掌。
ftp能连上但上传文件失败?对比主动与被动模式差异
连接成功了,但一传文件就报错,或者目录列表刷新不出来,这多半不是账户问题,而是模式选择错了。
主动模式和被动模式到底差在哪
简单说,主动模式下服务器主动去连客户端的高位随机端口,客户端在防火墙后面就惨了,被动模式下客户端主动去连服务器的数据端口,更适合现代网络环境,但“适合”的前提是服务器把被动端口范围在防火墙里全部开放。
你以为这就完了?还有一层:云服务器安全组,配置vsftpd被动模式时,需要指定一个端口范围,

pasv_enable=YES pasv_min_port=30000 pasv_max_port=30100
然后防火墙放行这个范围:
firewall-cmd --zone=public --add-port=30000-30100/tcp --permanent firewall-cmd --reload
客户端FileZilla里,把传输模式设为“被动”,否则默认情况下它会尝试主动模式,很多用户不理解为什么同样一个FTP服务器,办公室能连、家里连不上,其实就是本地网络环境对出站主动连接限制不同。
被动模式下,服务器要开放哪些端口
你需要同时放行21控制端口和被动端口范围,如果只开放21,登录没问题,但拉取目录或传输文件时服务器告诉你某个端口无法连接,这时最容易排查的就是检查被动端口是否在防火墙和白名单中。
对于国内服务器和海外节点的差别,建议你区分对待:跨境网络环境里,被动端口范围设得过大容易导致连接慢,缩小到30000-30100左右即可,同时确认安全组对这段TCP端口全部放行。
本地ftp连接不上远程服务器?用ping和telnet验证
当“本地ftp连接不上远程服务器”时,先用ping测试网络通不通,如果ping通,但telnet命令超时,说明远程防火墙拦截了特定端口,命令如下:
ping 服务器IP telnet 服务器IP 21
如果Ping不通,可能是公网IP问题、服务器宕机或者安全组拦了ICMP,如果Telnet报Connection refused,说明端口关闭或服务崩溃;如果处于停滞状态,则说明封包被丢弃,防火墙或安全组在作怪,这里有一个常见误区:有些云服务商默认不启用ICMP回显,所以ping不通不代表连不上FTP,一定要以telnet结果为最终参照。
云服务器ftp连接不上?安全组配置核查清单
很多用户的问题集中在云服务器ftp连接不上,这时候就需要把安全组、防火墙、服务三层配置对齐,下面这张表可以帮你按顺序检查:
| 排查对象 | 常见错误配置 | 正确操作 |
|---|---|---|
| 云平台安全组 | 只放行TCP 21 | 放行21和被动端口范围 |
| 系统防火墙 | 规则未生效 | 执行
|
| FTP服务监听 | 只监听回环地址 | 改为监听内网或公网网卡地址 |
| 账号权限 | 用户无法访问目录 | 检查属主和目录权限 |
| 客户端模式 | 主动模式卡目录 | 切换被动模式 |
这张清单的价值在于“按顺序执行”,先查安全组,再查系统防火墙,然后确认服务状态,千万别反过来,否则你会在一个错误里反复打转,行业共识认为,大多数云服务器FTP连接失败,根源都在安全组没有放行数据端口范围。
FTP连接不上服务器怎么办?3个常见问题快速定位
有些长,但我们直接给出答案。
为什么FTP能ping通但连接被拒绝?
Ping通只说明ICMP层通,TCP端口可能根本没监听,检查服务进程是否存活,然后确认监听地址是否不是0.0.0,在服务器上执行ss -lntp | grep :21,如果没有输出,说明FTP服务没起来,如果监听在0.0.1,外部自然连不上,需要修改配置为0.0.0或指定网卡IP。
FTP登录后列表读取失败是什么原因?
列表读取要用到数据连接,这是被动模式端口没被放行的典型症状,检查FTP配置文件里pasv_min_port和pasv_max_port,然后把这段端口添加到防火墙和安全组,FileZilla客户端可以打开“设置-连接-FTP-被动模式”,勾选“回退到主动模式”,这能暂时解决部分兼容问题,但根治必须开放端口。
创建完FTP为什么无法与服务器连接但443端口正常?
因为安全组或防火墙可能只放行了80和443端口,21端口被丢弃,你需要检查入站规则,添加TCP 21规则,同时注意云服务商的控制台安全组与服务器内部防火墙是两层,任何一层没放行都会失败,对于被动模式,还需要将端口范围加入安全组,并在系统防火墙里同步放行,这样客户端才能真正拉取目录和上传文件。
FTP连接问题从来不是单一原因,而是一条由服务、网络、权限组成的链路,把这几个环节按顺序过一遍,大多数情况下10分钟就能找到症结,最后再重复一遍:服务在跑,端口放行,账号有效,模式匹配,目录可写,你的FTP就能正常访问。

