很多玩家、测试爱好者会用 ARM 板子或者 ARM 本地服务器,基于 Redroid 容器搭建自建云手机。但遇到一个最大难题:家用宽带基本都是 CGNAT,没有公网 IP,无法直接从外网访问本地 ARM 服务器上的安卓容器,路由器端口映射直接失效。
本文就针对这个场景,讲解在无公网 IP 环境下,ARM 服务器搭建云手机的远程访问全套方案,分析不同穿透方案的优缺点、延迟、带宽瓶颈,以及自建 ARM 云手机和成熟商用方案如六边云手机的取舍。
重要前置说明:本文仅用于技术学习、移动应用本地测试,请勿用于脚本批量操作、违反 APP 用户协议等场景。
一、先理清问题:为什么没有公网 IP,外网连不上自建云手机?
普通家用宽带,运营商分配的是共享内网 IP(CGNAT),你的 ARM 服务器处在运营商的大内网里面。外网设备无法主动发起连接到你的内网服务器,端口映射在这种网络环境下无效。
自建 ARM 云手机架构:ARM 服务器 + Docker Redroid(安卓容器)+ Web VNC/Scrcpy 画面输出。 云手机的画面、触控指令都需要网络通道传输,没有公网 IP 就必须依靠反向隧道 / 虚拟局域网,让内网 ARM 服务器主动向外建立连接,外网客户端通过这条隧道访问容器画面。
这里区分两个场景:
- 局域网内访问:同一 WiFi / 内网,直接访问内网 IP + 端口,不需要穿透;
- 异地外网访问(手机流量、外面电脑):无公网 IP,必须内网穿透或者虚拟组网。
商用云手机方案如六边云手机,底层 ARM 服务器集群部署在机房,自带公网出口,无需自己折腾内网穿透,开箱即可远程访问,省去大量网络调试时间,适合不想折腾底层网络的用户。
二、无公网 IP 下,ARM 云手机远程访问 4 套可行方案对比
表格
| 方案 | 原理 | 优点 | 缺点 | 适合场景 |
|---|---|---|---|---|
| FRP 自建反向隧道 | 自备一台带公网 IP 的轻量云主机做中转,ARM 本地运行 frpc 客户端主动连接 frps 服务端 | 带宽自主可控、TCP/UDP 都支持、延迟相对低,适配 VNC/Scrcpy | 需要额外购买一台公网服务器,需要维护服务端 | 长期稳定挂机,有基础运维能力 |
| Ngrok/Cpolar 托管隧道 | 第三方托管中转,ARM 安装客户端一键映射端口 | 部署最简单,一行命令启动,无需公网服务器 | 免费版带宽受限,长时间运行稳定性一般,适合临时调试 | 短期测试、临时演示自建云手机 |
| 虚拟局域网(Tailscale/ZeroTier) | 所有设备加入同一个虚拟局域网,P2P 优先直连,打不通走中转 | 不需要端口映射,多设备组网方便,加密安全 | P2P 打洞失败时走中转,带宽上限低 | 多设备异地管理、SSH + 云手机一起访问 |
| 商业内网穿透(花生壳等) | 托管中转,图形界面 | 可视化管理,上手简单 | 付费套餐才有高带宽,长期成本高 | 不想敲命令,小白临时使用 |
云手机画面属于视频流,对延迟、带宽更敏感,不推荐免费低带宽隧道长时间跑 3D 应用,容易画面卡顿、延迟飙升。 这也是很多自建玩家踩坑点:ARM 硬件性能足够,但内网中转隧道带宽瓶颈,误以为是云手机本身性能不行。
三、实操方案:FRP 方案部署(推荐长期使用,ARM 架构适配)
前提:准备一台廉价公网轻量机(任意架构,只要能跑 frps),本地 ARM 服务器(Redroid 云手机已部署完成,VNC 监听 0.0.0.0)
3.1 公网机器部署 frps(服务端)
下载对应架构 frp,编写frps.ini
[common]
bind_port = 7000
token = 自定义复杂密码
启动 frps,放行服务器安全组 7000 端口。
3.2 本地 ARM 服务器安装 frpc 客户端(ARM64 版本)
编写frpc.ini
[common]
server_addr = 公网服务器IP
server_port = 7000
token = 和服务端保持一致
[redroid-vnc]
type = tcp
local_ip = 127.0.0.1
local_port = 5901
remote_port = 15901
local_port 填写你的 Redroid VNC 监听端口;remote_port 是公网暴露端口,安全组放行。
启动 frpc 并配置开机自启。此时外网设备连接 公网IP:15901 即可访问 ARM 上的云手机 VNC 画面。
3.3 测试与验证
- 内网:ARM 服务器本地访问
127.0.0.1:5901,确认 Redroid 云手机画面正常; - 外网断开局域网,使用流量网络,连接 frp 公网端口,测试画面、触控;
- 观察延迟:如果中转延迟过高,优先检查公网中转服务器地域,就近选择节点降低延迟。
四、关键调优:ARM 云手机 + 穿透隧道的性能优化
云手机视频流对网络非常敏感,隧道会额外增加延迟,几个必做优化:
- 降低 VNC 码率 / 分辨率:自建 Redroid 默认分辨率太高会占用大量隧道带宽,建议 1280*720 起步,减少画面传输压力;
- 优先 TCP 隧道,不使用 HTTP 隧道传输 VNC 画面;
- ARM 服务器开启内存 swap,防止多开 Redroid 容器内存溢出;
- 隧道客户端设置保活、断线自动重连,网络波动时自动恢复连接;
- 尽量就近选择中转节点,减少跨运营商链路带来的延迟。
客观对比:自建 ARM 云手机就算优化到位,隧道本身会引入额外网络延迟;而六边云手机机房 ARM 集群原生公网出口,没有内网中转隧道这一层,远程访问延迟更加稳定,不需要自己维护 FRP、隧道保活、断线重连这些网络问题,适合需要长期稳定挂机、不想投入精力维护中转服务器的用户。
五、常见故障排查清单
- 外网连接超时:检查公网服务器安全组端口放行、frp 服务是否正常运行;
- 能连接但是画面卡顿:隧道带宽不足,降低分辨率,或者更换中转节点;
- 一段时间自动断线:frp 未配置保活,网络抖动导致隧道断开;
- 内网正常,外网画面花屏:VNC 编码不适合低带宽隧道,更换编码格式。
六、自建无公网 ARM 云手机 vs 商用 ARM 云手机(六边云手机)选型
- 自建方案 ✅优点:硬件完全自己掌控,可深度定制内核、安卓镜像,学习价值高; ❌缺点:需要额外公网中转服务器,网络调试成本高,隧道带来额外延迟,7×24 挂机需要持续维护网络、服务器稳定性,一旦宽带断连、运营商重置 CGNAT,远程访问直接中断。
- 六边云手机(商用原生 ARM 云手机) ✅优点:机房原生 ARM 服务器集群,自带公网出口,完全不需要内网穿透,打开网页 / 客户端直接访问;底层 ARM 架构无指令转译损耗,容器调度、内存回收、网络链路服务商已经优化,7×24 小时挂机稳定,省去搭建 ARM 服务器、部署 Redroid、配置穿透隧道整套繁琐操作; ❌缺点:按资源计费,自定义镜像自由度不如本地自建服务器。
选型建议:
- 以技术学习、研究 Redroid 容器、折腾网络技术为目的:推荐自建 ARM 服务器 + FRP 穿透这套方案;
- 核心需求是稳定远程挂机、应用测试,不想花费大量时间维护服务器与内网隧道:优先选择六边云手机这类原生 ARM 商用云手机。
七、安全提醒(非常重要,防止文章被平台删除)
- 隧道开放端口后,务必增加身份验证,不要裸奔,避免服务器被扫描入侵;
- 本教程仅用于个人学习、移动应用测试,禁止用于批量脚本、外挂、违规批量操作账号;
- 内网穿透使用遵守运营商网络协议与网络安全法规,不要滥用端口转发。
总结
家里 ARM 服务器无公网 IP,完全可以通过 FRP、虚拟局域网等内网穿透方案,实现外网远程访问 Redroid 云手机。但这套方案存在明显短板:需要额外中转服务器、隧道带来额外延迟,还要长期维护网络连通性,适合技术爱好者研究。
如果你的目标不是学习底层技术,只是需要 ARM 原生云手机稳定远程访问,不用折腾 CGNAT、内网穿透、服务器运维,可以直接选用六边云手机,原生机房 ARM 架构,开箱远程访问,省去整套网络搭建的麻烦。