玄兴梦影
如果你出差、在家办公,不在公司内网,却还要做微服务开发联调,这篇可能有用。我会按真实场景写:如何访问内网网关、Nacos、Swagger、业务系统,以及如何让内网网关回调你本地正在开发的服务。文中示例地址已做脱敏处理,你按自己环境替换即可。
我平时做微服务开发,人在公司内网时很简单:前端调 网关,后端服务注册到 Nacos,网关再按注册信息调用各个后端服务。需要看接口时打开 Swagger,需要看业务效果时打开内网页面。
但出差或在家时,电脑不在公司内网里,会遇到两个方向的问题:

这篇用 懒猫微服私有云 + 局域网端口转发工具 + PortProxyGUI,把这两个方向都打通。最后效果是:人不在公司内网,也可以像在公司一样做微服务联调。
文中为了好理解,把公司内网里的中转机器叫 同事电脑。实际使用时,不一定非要占用同事的主力电脑,也可以在公司放一台性能一般的 Windows 小主机、旧笔记本、迷你主机,当作 内网代理机。只要它常开、能访问内网服务、能登录懒猫微服客户端,就能承担同样的中转作用。

下面所有地址都已经打码,只保留结构和端口,方便替换成自己的环境。
| 角色 | 打码示例 | 说明 |
|---|---|---|
| 内网网关 | 10.*.*.10:8701 | 公司内网网关地址 |
| 懒猫转发后的网关 | example.heiyu.space:18701 | 出差电脑访问这个地址 |
| Nacos | 10.*.*.11:8848 | 公司内网 Nacos 地址 |
| 懒猫转发后的 Nacos | example.heiyu.space:8048 | 出差电脑访问这个地址 |
| 同事电脑 / 内网代理机 | 10.*.*.20 | 公司内网里常开的 Windows 电脑,可以是低配小主机 |
| 我本地服务端口 | 18503 | 我电脑上正在开发的后端服务端口 |
| 其他内网服务 | 10.*.*.12:7038 等 | 数据库、Redis、RabbitMQ、其他 HTTP 服务同理 |
核心原则:
example.heiyu.space:端口。10.*.*.20:端口,这台中转机再通过 PortProxyGUI 和懒猫通道转给我。我在外网,不能直接访问内网网关、Nacos 等服务。做法是:
我的电脑 → 懒猫微服私有云 → 同事电脑/内网代理机/在线客户端 → 公司内网服务

我本地服务启动后,内网网关要调用它。但内网服务器访问不到我的家庭宽带 IP,所以需要走回程:
内网服务器 → 同事电脑/内网代理机(PortProxyGUI/netsh)→ 懒猫微服 → 我的电脑本地服务

去程解决“我访问内网”,回程解决“内网访问我”。两个方向都通之后,前端、本地后端、网关、Nacos、内网服务就能形成闭环。

这台电脑必须在公司内网里,且能访问网关、Nacos 等内网服务。
10.*.*.10:8701、10.*.*.11:8848不要求和我的电脑登录同一个账号。局域网端口转发工具可以选择当时在线的账号设备,只要目标设备在列表里在线可选即可。
更推荐准备一台低配 Windows 代理机放在公司内网里,专门负责中转:
18503如果这套链路要长时间使用,同事电脑或内网代理机不能休眠。Windows 11 可以这样设置:

其他 Windows 版本路径可能不同,搜索 睡眠 或 接通电源 找到对应设置即可。
我的第一个需求是访问公司内网网关。真实地址已经打码,结构如下:
内网网关:10.*.*.10:8701
转发后:example.heiyu.space:18701
这样我在外网浏览器、前端项目、接口工具里访问 example.heiyu.space:18701,实际访问的就是公司内网网关 10.*.*.10:8701。
在 局域网端口转发工具 中编辑转发规则:
TCPexample.heiyu.space18701
这里的 18701 是我为了对应网关端口 8701 额外选的外部端口。你可以换成其他未占用端口,但建议有规律,后面维护会轻松很多。
目标配置选择 微服客户端,然后填内网网关地址:
10.*.*.108701
点击 测试目标连接,提示目标地址连接正常,就说明这条链路已经通了。

微服务开发离不开 Nacos。我的 Nacos 在内网里,打码后结构如下:
内网 Nacos:10.*.*.11:8848
转发后:example.heiyu.space:8048
流程和网关完全一样,只是端口不同。
TCPexample.heiyu.space8048
10.*.*.118848
测试通过后,浏览器打开:
http://example.heiyu.space:8048/nacos/
能看到 Nacos 登录页,就说明 Nacos 也可以在外网访问了。

网关和 Nacos 通了之后,其他服务的转发方式完全一样:
| 服务类型 | 内网地址示例 | 转发后示例 | 说明 |
|---|---|---|---|
| 网关 | 10.*.*.10:8701 | example.heiyu.space:18701 | 前端、本地服务主要调用它 |
| Nacos | 10.*.*.11:8848 | example.heiyu.space:8048 | 注册中心 / 配置中心 |
| 数据库 | 10.*.*.12:3306 | example.heiyu.space:13306 | 客户端连接即可 |
| Redis | 10.*.*.13:6379 | example.heiyu.space:16379 | 注意密码和环境隔离 |
| RabbitMQ | 10.*.*.14:5672 | example.heiyu.space:15672 | 管理端口和 AMQP 端口分开配 |
技巧是:一个内网服务对应一条转发规则。只要同事电脑或内网代理机能访问这个服务,懒猫微服就可以把它转发出来。
前端本地开发时,把原本指向公司内网网关的地址,改成懒猫转发后的域名即可。
原来(公司内网):http://10.*.*.10:8701
现在(出差外网):http://example.heiyu.space:18701

这样前端仍然调网关,由网关再去调内网里的其他微服务。对前端同事来说,开发体验和人在公司内网基本一样。
实际验证时,我打开了 Swagger 页面,也能正常看到网关下的接口信息。

业务页面也可以正常打开。

再看浏览器 DevTools,接口请求返回 200 OK,说明页面不是“只打开了壳”,而是真的能调到接口。

只解决“我访问内网”还不够。微服务开发还有一个关键点:我本地服务要注册进 Nacos,并被内网网关调用。
问题在于:
18503本文打码示例:
同事电脑 / 内网代理机 IP:10.*.*.20
我的本地服务端口:18503
注册到 Nacos 的地址:10.*.*.20:18503
也就是说,内网网关以为它在调用公司内网里的中转机:
网关 → 10.*.*.20:18503
但这台同事电脑或内网代理机收到请求后,会通过 PortProxyGUI / netsh 和懒猫通道,把请求转发到我的出差电脑本地服务。
本地后端服务先固定端口,例如 18503。

如果你的服务端口经常变,回程转发就会很麻烦。建议本地联调期间固定端口。
本地服务注册到 Nacos 时,注册 IP 写同事电脑或内网代理机在公司内网里的 IP,例如:
server:
port: 18503
spring:
cloud:
nacos:
discovery:
ip: 10.*.*.20
这一步的意思是:让内网网关调用 10.*.*.20:18503,不要让它调用我的家庭宽带 IP。
在同事电脑或内网代理机上,用 PortProxyGUI 添加规则:
监听地址:0.0.0.0
监听端口:18503
转发地址:127.0.0.1
转发端口:18503

等价命令是:
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=18503 connectaddress=127.0.0.1 connectport=18503
PortProxyGUI 只是把 netsh interface portproxy 做成了图形界面,适合不想记命令的同事使用。注意:PortProxyGUI 不会自动配置 Windows 防火墙,如果公司内网访问不到 10.*.*.20:18503,要检查这台中转机的 Windows 防火墙是否放行 18503。
更完整的 Windows 端口代理工具说明,可看我之前写的:Windows 网络转发工具推荐:从命令行到图形界面。
完整回程是:
内网网关
→ 同事电脑/内网代理机 10.*.*.20:18503
→ PortProxyGUI / netsh 转到 127.0.0.1:18503
→ 懒猫微服客户端通道
→ 我的出差电脑 127.0.0.1:18503
这样内网网关就能调到我本地正在开发的服务。
| 现象 | 优先排查 |
|---|---|
| 转发工具测试目标失败 | 同事电脑或内网代理机是否能访问目标内网 IP/端口;目标服务是否启动 |
外网打不开 example.heiyu.space:18701 | 规则是否启用;端口是否填错;客户端是否在线 |
| Nacos 能打开但服务注册异常 | 本地服务注册 IP 是否写成同事电脑 / 内网代理机 IP;端口是否固定 |
| 网关调不到我本地服务 | PortProxyGUI 规则是否启用;中转机防火墙是否放行端口;懒猫客户端是否在线 |
| 页面打开但接口失败 | 前端配置里是否仍有内网 IP;DevTools 看接口是否走转发域名 |
| 用一会儿断开 | 同事电脑或内网代理机是否睡眠;Windows 电源设置是否为“从不睡眠” |
这套方案的核心不是“单纯远程访问一个网页”,而是解决微服务开发里的两条链路:
example.heiyu.space:端口。最后效果就是:人不在公司内网,也能完成前端、后端、网关、Nacos、业务页面的闭环联调。
测试环境:Windows 11 · 懒猫微服客户端 · 局域网端口转发工具 · PortProxyGUI。
本文为个人使用经验;菜单名、域名格式以你当前客户端为准。所有截图均已打码,示例 IP/域名仅表示结构,不代表真实环境。
评论
2哇 大佬写的真不错👍
谬赞了,我继续保持