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

Ubuntu 16.04服务器部署Web Service遇425错误的解决方法

解决Ubuntu 16.04上FTP部署Web服务时的425 No Route to Host错误

哥们,这个Unable to build data connection: No route to host (425)错误我太熟了——本质是FTP的数据连接建立失败,尤其是被动模式下最容易踩这个坑。结合你用Visual Studio部署、WinSCP却能正常连接的情况,我给你捋几个针对性的解决步骤:

1. 先检查Ubuntu服务器的防火墙配置

Ubuntu 16.04默认用ufw作为防火墙,FTP不仅需要开放控制端口(21),还得给被动模式预留专用的端口范围:

  • 开放FTP控制端口:
    sudo ufw allow 21/tcp
    
  • 开放被动模式的端口范围(建议选一段连续端口,比如30000-40000):
    sudo ufw allow 30000:40000/tcp
    
  • 重载防火墙让配置生效:
    sudo ufw reload
    

2. 配置FTP服务器的被动模式参数(以vsftpd为例)

Ubuntu常用的FTP服务器是vsftpd,默认可能没正确配置被动模式的端口范围:

  • 编辑vsftpd的配置文件:
    sudo nano /etc/vsftpd.conf
    
  • 找到或添加以下配置项:
    pasv_enable=YES          # 强制开启被动模式
    pasv_min_port=30000      # 被动模式起始端口
    pasv_max_port=40000      # 被动模式结束端口
    pasv_address=myserver.de # 填写服务器的公网域名或IP,确保客户端能解析到
    
  • 保存退出后,重启vsftpd服务:
    sudo systemctl restart vsftpd
    

3. 调整Visual Studio的FTP连接模式

WinSCP能正常连接,大概率是它默认用了被动模式,而VS可能没配置对:

  • 在Visual Studio的发布设置里,找到FTP连接的高级选项
  • 勾选「使用被动模式」(Passive Mode),保存设置后重新尝试部署

4. 检查云服务商的安全组(如果是云服务器)

如果你用的是阿里云、AWS这类云服务器,光开服务器本地的ufw还不够——得在云控制台的安全组规则里,添加允许21端口和30000-40000端口的TCP入站规则,否则云层面会直接拦截数据连接。

5. 验证被动模式是否正常工作

可以用命令行FTP工具快速测试:

ftp myserver.de
# 输入用户名和密码后,执行
passive
# 然后尝试列出目录
ls

如果ls能正常返回目录列表,说明被动模式配置成功,再回到VS里部署应该就没问题了。

内容的提问来源于stack exchange,提问作者KushGene

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:19:51