Skip to main content

部署到服务器供远程访问

本指南教你把 AutoGLM-GUI 部署到一台常开的机器上(VPS、NAS 或闲置的旧电脑),让它对局域网或远程开放 Web 界面。这样配合定时任务,就能把 AutoGLM-GUI 变成一个 7x24 小时运行的自动化中枢:服务器不关机,定时任务按点触发,AI 持续帮你完成签到、检查、监控等周期性操作。

下面以直接用 Python 包启动为例。如果你更倾向于容器化部署,请直接看Docker 部署,本指南讲到的对外监听、WiFi 连接设备、HTTPS 等概念在两种方式下是通用的。

前提

  • 一台能长期开机的机器,已安装好 Python 3.11+ 并装好了 autoglm-gui(参见模型配置)。
  • 该机器装有 adb,并且能通过网络访问到你的 Android 设备(通常是同一局域网)。
  • 你能从自己的电脑访问到这台机器(局域网 IP,或通过 VPN / 内网穿透)。

让服务对外提供访问

默认情况下 AutoGLM-GUI 只监听 127.0.0.1,也就是只有本机能访问。部署到服务器时,需要让它监听所有网卡地址,并关掉自动打开浏览器的行为(服务器通常没有桌面环境):

autoglm-gui --host 0.0.0.0 --port 8000 --no-browser
  • --host 0.0.0.0 让服务监听所有网卡,局域网内其它机器才能访问。
  • --port 8000 固定端口,方便记忆和配置防火墙;不指定时会从 8000 起自动找一个空闲端口。
  • --no-browser 关闭启动时自动打开浏览器,服务器无头环境必备。

启动后,在你自己的电脑浏览器里打开 http://<服务器IP>:8000 即可访问界面。

如果希望开机自启、崩溃自动重启,建议用 systemd、supervisor 之类的进程管理工具把上面这条命令托管起来,而不是手动跑在终端里。完整的命令行参数说明见命令行参考

连接远程 Android 设备

服务器上一般没有插着手机的 USB 口,所以推荐用 WiFi 调试把设备连进来,让手机和服务器处在同一局域网即可。

  1. 在 Android 设备上打开「开发者选项」→「无线调试」。
  2. 在「无线调试」里查看设备的 IP 地址和端口。
  3. 在 Web 界面点「添加无线设备」,填入 IP:端口 并连接。

详细的连接流程(包括 Android 11+ 的二维码配对)见连接设备。需要注意二维码配对依赖 mDNS 多播,跨网段或在容器 bridge 网络里可能不通;远程部署场景下直接用「IP:端口」方式更稳妥。

配置 HTTPS(实时视频流需要)

实时屏幕预览用到了浏览器的媒体能力,这类能力只在「安全上下文」里可用。当你通过 localhost 访问时浏览器会把它当作安全上下文,所以本机使用一切正常;但一旦换成 http://<服务器IP>:8000 这种非 localhost 的明文地址访问,浏览器就会拒绝,实时视频流无法工作。

要在远程访问时用上实时视频流,需要走 HTTPS。有两种做法。

方法一,让 AutoGLM-GUI 自己用 TLS 证书启动:

autoglm-gui --host 0.0.0.0 --port 8000 --no-browser \
--ssl-keyfile /path/to/key.pem \
--ssl-certfile /path/to/cert.pem

只要同时给出 --ssl-keyfile--ssl-certfile,服务就以 HTTPS 提供,访问地址变为 https://<服务器IP>:8000。自签证书也能让视频流工作,但浏览器会提示证书不受信任,需要手动放行。

方法二,在前面放一个反向代理(Nginx、Caddy 等)来终结 TLS,由代理转发到本机的 http://127.0.0.1:8000。这种方式更适合已经有域名和正式证书的场景,证书管理也更省心。两种方式选其一即可,不要重复配置。

配置 CORS

如果你是直接打开 AutoGLM-GUI 自带的页面,不涉及跨域,通常不用动 CORS。只有当你从另一个域名下的前端去调用 AutoGLM-GUI 的接口时,才需要把那个来源加进允许列表,否则浏览器会拦截请求。

用环境变量 AUTOGLM_CORS_ORIGINS 配置,多个来源用逗号分隔:

AUTOGLM_CORS_ORIGINS="https://app.example.com,http://192.168.1.10:3000" \
autoglm-gui --host 0.0.0.0 --port 8000 --no-browser

默认值是 http://localhost:3000。可以设成 * 放行所有来源,但这等于关掉了这道防线,仅建议在可信内网里临时使用。完整的环境变量清单见环境变量参考

安全建议

AutoGLM-GUI 本身没有内置登录鉴权,谁能访问到这个端口,谁就能操控你连进来的手机。所以请务必注意以下几点。

不要把无鉴权的服务直接暴露到公网。--host 0.0.0.0 配上公网 IP,意味着任何人都能打开你的界面、操作你的设备。

优先放在内网。把服务限制在局域网内,远程访问时通过 VPN(如 WireGuard、Tailscale)连回内网,是最简单也最安全的做法。

如果确实要公网访问,请在前面加一层带鉴权的反向代理。例如用 Nginx 配 Basic Auth,或用 Caddy、Authelia 之类的方案做访问控制,把鉴权和 TLS 一起在代理层解决,AutoGLM-GUI 只监听 127.0.0.1,不直接对外。

收紧防火墙。只放行你真正需要的端口和来源 IP,不要图省事开放整段。

与 Docker 部署的关系

本指南讲的是用 Python 包直接在服务器上跑。如果你想要更干净的隔离、免去手动装环境、以及更方便的开机自启与持久化,Docker 是更省心的选择,它在 7x24 部署场景下尤其合适。对外监听、WiFi 连设备、HTTPS、CORS 这些要点在容器里同样适用。具体步骤见Docker 部署