Skip to content

安装与网络方案

移动端配对前,先把桌面端的 7420 端口暴露成一个公网可访问的地址。

系统要求

项目要求
桌面端智码 AICoder v3.5.2+
移动端Android 8.0+(API 26+)
手机摄像头(扫码可选;不可用则手动 PIN)
网络桌面与手机不在同一局域网时需要内网穿透

iOS 暂未发布。

下载 APK

最新版本:v0.1.0

渠道下载链接
Cloudflare R2(主)AICoder-mobile-v0.1.0.apk
Gitee 备AICoder-mobile-v0.1.0.apk
GitHub 存档AICoder-mobile-v0.1.0.apk

侧载分发提示

Android 系统默认拦截「未知来源安装」,需要在系统设置中单独允许该浏览器/文件管理器安装应用。 APK ≈ 18 MB。

安装步骤

  1. 用手机浏览器扫码下载 APK
  2. 打开 APK,系统提示「是否允许此应用来源安装」,前往设置打开
  3. 返回安装界面,点击「安装」
  4. 安装完成后打开「智码 AICoder」(橙色图标)

网络方案:自行配置反向代理

桌面端的 axum 网关默认监听 127.0.0.1:7420你需要自行用任意一种内网穿透 / 反向代理方案,把这个端口暴露成公网可访问的地址,然后把地址填到桌面端「远程访问 → 公网访问地址」字段。

   手机端 App                  你的反向代理 / 穿透通道                桌面端
  ┌──────────┐   HTTPS/WSS   ┌─────────────────────────┐  TCP    ┌──────────────┐
  │  React   │ ────────────▶ │ frp / cloudflared /     │ ──────▶ │ axum gateway │
  │   SPA    │ ◀──────────── │ Tailscale / nginx /...  │         │ 127.0.0.1    │
  └──────────┘               └─────────────────────────┘         │   :7420      │
                                                                 └──────────────┘

桌面端不再内置 frpc

v3.5.2 起,桌面端不再内嵌 frpc 子进程(避免国内杀软对 frp 二进制的误报触发隔离)。 你只需要选一种自己熟悉的工具部署好反向代理,桌面端 App 只关心一个公网地址

推荐工具(任选其一)

方案适合场景备注
frp(fatedier/frp)自有 VPS / 第三方 frps 服务经典选择;客户端 frpc 需自己装并配置 local_ip = 127.0.0.1, local_port = 7420
Cloudflare Tunnel有域名 + 想白嫖cloudflared tunnel --url http://localhost:7420,零端口暴露
Tailscale FunnelTailscale 用户启用 Funnel 后 https://machine-name.tail-xxxx.ts.net/ 直接可用
nginx 反代已有公网服务器 + 域名proxy_pass http://内网穿透/127.0.0.1:7420

安全建议

  • 优先用 HTTPS / WSS,避免明文传输
  • 反向代理工具的 token / 密钥单独保管,不要嵌入代码 / 截图
  • 桌面端「远程访问 → 一键安全自检」会扫描 TLS 配置 / 端口暴露 / 鉴权熔断状态

第一步:桌面端开启远程访问

  1. 桌面 App 顶栏 → ⚙️ 设置 → 远程访问
  2. 公网访问地址:填你配好的反代入口完整 URL
    • 示例:https://api.example.com
    • 示例:https://xxx.trycloudflare.com
    • 示例:https://machine.tail-xxxx.ts.net
  3. 监听端口默认 7420,反代要把流量转到这个端口
  4. 「启动」,等到状态变绿
  5. 可选:勾选 「下次自动启动」 —— 下次开 App 自动恢复运行

验证连通性

桌面端启动后,用任意浏览器(含手机端)打开:

https://<你的公网地址>/api/v1/ping

应返回:

json
{ "ok": true, "version": "3.5.2", "timestamp": "..." }

如果返回非 JSON 或 5xx:

  • 反代是否在跑?
  • 反代是否把目标设为本机 7420 端口?
  • 防火墙 / 安全组是否放行?
  • WebSocket 是否被拦截?(部分反代默认不转发 Upgrade 头,需配置)

下一步

给 AI 编程工具一个统一的家