You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu Server搭建vsftpd后Windows无法上传文件求助(Mac正常)

解决Windows无法上传文件到Ubuntu vsftpd服务器的问题

从你的描述和配置来看,Mac切换被动模式(PASV)能正常上传,但Windows用默认的主动模式(PORT)报错425 Failed to establish connection,核心原因是主动模式下的连接建立被阻断,下面给你几个针对性的解决方案:

1. 强制Windows FTP客户端使用被动模式(最快解决)

Windows自带的ftp命令默认用主动模式,你只需要在登录后手动切换到被动模式即可:

ftp> open 188.166.238.68
Connected to 188.166.238.68.
220 (vsFTPd 3.0.3)
Name (188.166.238.68:vubuivn): phuclongcms
331 Please specify the password.
Password:
230 Login successful.
ftp> passive  # 开启被动模式
227 Entering Passive Mode (188,166,238,68,xxx,xxx).
ftp> cd files
250 Directory successfully changed.
ftp> put vnhconnect.pem

如果测试成功,你可以直接改用FileZilla这类图形化FTP客户端,它们默认就启用被动模式,操作更稳定,也不用每次手动输入命令。

2. 检查服务器端的防火墙/安全组配置

不管用主动还是被动模式,你需要确保Ubuntu服务器的防火墙(以及云服务商的安全组)放行对应的端口:

  • 放行FTP控制端口(21):sudo ufw allow 21/tcp
  • 放行主动模式数据端口(20):sudo ufw allow 20/tcp
  • 放行被动模式端口范围(40000-50000):sudo ufw allow 40000:50000/tcp
  • 重载防火墙规则:sudo ufw reload

如果你用的是云服务器(比如阿里云、腾讯云等),一定要去控制台的安全组规则里添加上述端口的TCP入站权限,很多时候云安全组的限制是导致连接失败的关键。

3. 修复主动模式的潜在问题(如果需要保留主动模式)

如果你必须使用主动模式,除了放行20端口,还要检查两个点:

  • 确认Windows本地防火墙没有阻止服务器主动连接到客户端的临时端口:可以暂时关闭Windows防火墙测试,若能上传,就给Windows FTP客户端添加一条入站规则,允许FTP数据连接。
  • 检查vsftpd配置里的connect_from_port_20=YES已经启用(你的配置里已经开了,这部分没问题)。

4. 确认FTP目录的权限

最后再检查一下目标目录的权限,确保phuclongcms用户有写入权限:

sudo chown phuclongcms:phuclongcms /home/phuclongcms/ftp/files
sudo chmod 755 /home/phuclongcms/ftp/files

总结

优先推荐使用被动模式,因为主动模式在NAT网络环境下(比如大多数家庭/办公网络)容易遇到连接阻断问题,而被动模式的兼容性更好。按照上面的步骤操作,应该就能解决Windows无法上传的问题了。

内容的提问来源于stack exchange,提问作者Vũ Bùi Quang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:51:19