Parallels Ubuntu虚拟机项目如何让手机访问?完整解决方案

本期敖行客研发实战日记,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

关键 IP192.168.3.76 是 Mac 在 Wi-Fi 局域网中的地址。

6、修改项目 URL 为 Mac 主机 IP

(与前面1.1类似,是需要修改项目运行的ip的地址)

URL=http://10.211.55.4:3000

修改后(使用 Mac 主机局域网 IP)

URL=http://192.168.3.76:3000

成功后手机浏览器访问:http://192.168.3.76:3000

若此时手机端访问成功,那么基本上打通信息端就已经成功了,

需要解决一些奇怪的兼容性问题就不再需要让维运打包盲测了。

敖行客介绍:

敖行客(Allthinker)聚焦服务企业研发团队及开发者,以搭载自研企业级智能体引擎的 AT Work-Agent 研发工作台为核心支撑,打造 AI 原生一体化研发协同体系,依托企业智能体重构研发协作范式,致力于赋能各类研发团队轻量化完成智能化升级。

AT Work介绍:

AT Work-Agent 研发工作台是国内首个分钟级部署、AI 原生全链路研发协同平台,依托企业级智能体赋能研发全流程,零门槛打造专属 AI 研发团队,实现研发效率与数据安全的双重飞跃。

官网:www.allthinker.com

邮箱:allthinker@allthinker.com

相关推荐
keyipatience7 小时前
线程栈与TLS和线程互斥
java·linux·服务器·开发语言·ubuntu
元Y亨H7 小时前
生产环境监控与故障应急处理(5-5-5 标准)指南
运维
j7~7 小时前
【Linux】二十二.《Linux 信号机制完全指南:表示、捕捉与处理》
linux·信号处理·volatile·可入重函数·保存信号
观山岳五楼8 小时前
Ubuntu 24 怎么使用Ubuntu 20 的镜像源
linux·运维·ubuntu
m0_715646769 小时前
20260720
linux·arm
寒晓星9 小时前
[linux]线程及多线程
linux·运维
辰痕~9 小时前
物理机装Linux操作系统(Ubuntu为例)
linux·ubuntu
慧一居士9 小时前
Linux如何设置固定的静态ip
运维
国服第二切图仔11 小时前
13其他工具 - Skill/LSP/Sleep等
linux·运维·里氏替换原则