本期敖行客研发实战日记, 以 Parallels + Ubuntu 虚拟机 环境为例,解决在虚主机运行的项目,怎样在移动端调试访问的干货教程。

1、背景
在日常开发过程中,很多项目并不是直接运行在本机环境,而是在虚拟机中运行,例如:
- Mac 使用 Parallels Desktop 创建 Ubuntu 开发环境
- 项目运行在 Ubuntu 虚拟机中
- 前端或移动端需要通过手机访问调试
这时候经常会遇到一个问题:
项目在虚拟机里面运行正常,Mac 主机可以访问,但是手机无法访问。
原因在于:虚拟机默认网络环境与宿主机、局域网设备之间存在隔离。
本文以:
- Mac + Parallels Desktop
- Ubuntu 虚拟机
- Web 项目(假设端口 3000)
为例,完整解决:
如何让手机访问运行在虚拟机中的项目。
2、 第一阶段测试让主机可以访问虚拟机的项目
2.1 确认虚拟机IP地址
进入 Ubuntu 虚拟机终端:
bash
ip addr | grep "inet "
输出示例:
inet 10.211.55.4/24 # Parallels 共享网络分配的 IP(主机与虚拟机通信)
inet 172.20.0.1/16 # Docker 网络
inet 172.18.0.1/16 # Docker 网络
inet 172.17.0.1/16 # Docker 网络
inet 172.19.0.1/16 # Docker 网络
关键 :10.211.55.4 是 Parallels 共享网络下虚拟机与 Mac 主机通信的 IP。
2.2 检查项目绑定地址
ss -tlnp | grep 3000(假设项目端口)
如果显示 127.0.0.1:3000,说明项目只监听本地,外部无法访问。需要修改启动配置

2.3 开放Ubuntu防火墙端口
如果 Ubuntu 开启了防火墙,需要放行项目端口。
开放3000端口:
sudo ufw allow 3000/tcp
或临时关闭
sudo ufw disable
2.4 Mac 主机访问虚拟机项目测试
直接在主机浏览器上直接访问http://10.211.55.4:3000
3、访问故障
若是运行项目中有数据请求 需要将原先本地请求如:localhost:3000/xxxx
这个就得更改http://10.211.55.4:3000/xxxxx
4、端口转发
若是主机能正常访问虚拟机上项目 此时就需要解决关键一步:

5、获取主机局域网ip(本人是mac为例)
ifconfig | grep "inet " | grep -v "127.0.0.1"
输出示例:
inet 192.168.3.76 netmask 0xffffff00 broadcast 192.168.3.255 i
net 10.211.55.2 netmask 0xffffff00 broadcast 10.211.55.255
关键 IP :192.168.3.76 是 Mac 在 Wi-Fi 局域网中的地址。
6、修改项目 URL 为 Mac 主机 IP
(与前面1.1类似,是需要修改项目运行的ip的地址)
修改后(使用 Mac 主机局域网 IP)
成功后手机浏览器访问:http://192.168.3.76:3000
若此时手机端访问成功,那么基本上打通信息端就已经成功了,
需要解决一些奇怪的兼容性问题就不再需要让维运打包盲测了。
敖行客介绍:
敖行客(Allthinker)聚焦服务企业研发团队及开发者,以搭载自研企业级智能体引擎的 AT Work-Agent 研发工作台为核心支撑,打造 AI 原生一体化研发协同体系,依托企业智能体重构研发协作范式,致力于赋能各类研发团队轻量化完成智能化升级。
AT Work介绍:
AT Work-Agent 研发工作台是国内首个分钟级部署、AI 原生全链路研发协同平台,依托企业级智能体赋能研发全流程,零门槛打造专属 AI 研发团队,实现研发效率与数据安全的双重飞跃。