FTP 上传基础设置,FTP 上传端口号默认是多少
很多新手配置 FTP 上传,看到端口输入框会疑惑,填 21 还是 20。为什么填 21 可以登录,但是上传文件失败。FTP 协议设计比较特殊,和别的网络协议不一样,使用两组端口,一组处理命令交互,一组传输文件数据。记住核心数字:21。这是 FTP 控制端口,FTP 客户端填写服务器地址时默认连接这个端口。输入账号密码、切换目录、发送上传下载指令,全部走 21 端口。这个端口固定,所有 FTP 服务端默认监听 21。配置上传,端口填 21 一般没问题。仅仅连接 21 端口,只能完成登录。真正传输文件,FTP 额外建立数据连接,使用哪个端口,取决于主动模式或者被动模式。主动模式又叫 PORT 模式,服务端从自身 20 端口主动发起连接到客户端。逻辑简单,但实际网络经常失败,客户端侧防火墙、路由器会拦截服务端主动发起的连接。所以当前绝大多数 FTP 客户端默认启用被动模式。被动模式即 PASV 模式。客户端连接 21 端口,发送 PASV 指令,服务端返回一段随机高位端口,一般区间 50000 至 60000,客户端主动连接这个端口传输文件。被动模式对客户端友好,但服务端需要在防火墙放行整段被动端口区间。没有放行的情况下,现象就是能够登录,无法传输文件,卡在目录列表读取或者上传进度 0%。配置 FTP 上传,网络正常时端口填写 21。登录成功但是无法传文件,优先检查两点:客户端是否开启被动模式,一般默认开启不用修改;服务器防火墙有没有开放被动端口段。很多虚拟主机、云服务器仅放行 21 端口,被动端口未放行,就出现这类故障。还有容易混淆的 SFTP。名字看着类似 FTP,但完全是两套协议。SFTP 基于 SSH 协议,默认端口 22,和 FTP 的 21 没有关联。客户端协议选择 SFTP,端口填 21 无法建立连接,要填写 22。FTPS 是 FTP 增加 SSL 加密,控制端口依旧 21,数据端口逻辑和普通 FTP 一致,额外需要配置证书、放行端口。简单总结:FTP 上传控制端口默认 21,主动模式数据端口 20,被动模式使用随机高位端口。常规配置填写 21,上传异常优先排查被动端口放行。使用 SFTP,端口为 22,不要和 FTP 混淆。
