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

Vagrant配置端口转发后宿主机无法telnet连接虚拟机端口该如何处理?

解决方案

你遇到的是Vagrant端口转发配置正常但服务无法从宿主机访问的典型场景,按以下顺序排查即可:

  • 检查虚拟机内1234端口服务的监听地址
    大部分情况下问题出在服务仅绑定了虚拟机本地回环地址127.0.0.1,NAT转发的外部请求无法被服务接收。
    1. 进入虚拟机执行命令验证监听地址:ss -tunlp | grep 1234
    2. 如果返回结果的Local Address列为127.0.0.1:1234,修改对应服务的启动配置,将监听地址改为0.0.0.0即可。不同服务修改方式不同,示例:
      • Node.js服务:启动时添加参数--host 0.0.0.0
      • Nginx:在配置文件中修改监听规则为listen 0.0.0.0:1234;
      • Python Flask服务:启动时指定host='0.0.0.0'
  • 检查虚拟机防火墙规则
    Ubuntu 14.04默认开启iptables防火墙,可能拦截外部请求:
    1. 临时关闭防火墙测试:sudo iptables -F
    2. 若关闭后宿主机可正常访问,执行命令添加放行规则:sudo iptables -A INPUT -p tcp --dport 1234 -j ACCEPT
    3. 执行sudo iptables-save > /etc/iptables.rules保存规则,避免重启后失效。
  • 显式指定Vagrant端口转发绑定地址
    部分Vagrant版本默认仅将转发端口绑定到宿主机的127.0.0.1,可修改Vagrantfile对应配置:
    dev.vm.network 'forwarded_port', guest: 1234, host: 1234, host_ip: "0.0.0.0"
    
    修改后执行vagrant reload重启虚拟机生效。
  • 检查宿主机Mac防火墙设置
    进入Mac系统设置>网络>防火墙,临时关闭防火墙测试,若能正常访问,添加规则放行1234端口即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 06:06:03