Open-AutoGLM云端部署教程:公网IP映射与防火墙配置详解
1. Open-AutoGLM – 智谱开源的手机端AI Agent框架
你有没有想过,让AI帮你操作手机?不是简单的语音助手,而是真正“看懂”屏幕、理解界面、自动点击滑动,像真人一样完成复杂任务。这就是Open-AutoGLM的能力。
Open-AutoGLM 是由智谱推出的开源项目,基于 AutoGLM 构建的手机端智能代理(Phone Agent)框架。它结合了视觉语言模型(VLM)和自动化控制技术,通过 ADB(Android Debug Bridge)实现对安卓设备的精准操控。用户只需用自然语言下达指令,比如“打开小红书搜索美食”或“给昨天聊天的朋友发条消息”,系统就能自动解析意图、识别当前界面元素、规划操作路径,并一步步执行下去。
这个框架的强大之处在于它的多模态理解能力——不仅能“读文字”,还能“看图像”。它把整个手机屏幕当作输入,用视觉模型分析按钮位置、文本内容、页面结构,再结合大模型的推理能力做出决策。整个过程无需手动干预,真正实现了“你说,它做”。
更贴心的是,系统内置了敏感操作确认机制。当涉及支付、删除等高风险动作时,会暂停并提示用户确认。同时支持在登录验证、验证码输入等场景下临时接管,确保安全与灵活性兼备。
而今天我们要讲的重点,是如何将这套系统部署在云服务器上,并通过公网 IP 实现远程调用,让你即使不在本地,也能随时唤醒 AI 助理去操作远端的手机。
2. 云端部署核心:公网访问与网络配置
2.1 为什么需要云端部署?
如果你只是想在自己电脑上试试 Open-AutoGLM,直接本地运行完全没问题。但如果你想实现“随时随地控制手机”,比如出差时让家里的手机帮你抢票、刷短视频、自动打卡,那就必须把 AI 模型部署到一台 24 小时在线的云服务器上。
这样一来,你的本地设备(笔记本、手机、树莓派)就变成了一个轻量级客户端,只负责发送指令和接收结果,真正的“大脑”——也就是视觉语言模型和推理引擎——运行在云端。
但这也带来了一个关键问题:如何让本地客户端安全、稳定地访问云上的服务?
答案就是:公网 IP 映射 + 防火墙配置。
2.2 服务端环境准备
首先,在你的云服务器上准备好以下环境:
- 操作系统:推荐 Ubuntu 20.04 或 CentOS 7+
- Python 版本:3.10+
- GPU 支持:建议至少 16GB 显存(如 A10/A100/L4),用于运行 vLLM 推理服务
- 依赖工具:
- Docker(可选)
- NVIDIA Driver + CUDA
- vLLM 或 HuggingFace Transformers
安装 vLLM 并启动模型服务
Open-AutoGLM 使用的是autoglm-phone-9b这个专为手机操作优化的视觉语言模型。你可以使用 vLLM 快速部署一个高性能 API 服务。
# 安装 vLLM pip install vllm # 启动模型服务 python -m vllm.entrypoints.openai.api_server \ --model zai-org/autoglm-phone-9b \ --tensor-parallel-size 1 \ --max-model-len 4096 \ --gpu-memory-utilization 0.9 \ --host 0.0.0.0 \ --port 8800注意:
--host 0.0.0.0是关键!这意味着服务监听所有网络接口,允许外部连接。如果写成127.0.0.1,则只能本地访问。
此时,模型服务已运行在云服务器的8800端口上,等待来自客户端的请求。
2.3 公网 IP 映射配置
大多数云服务器默认分配的是内网 IP,你需要将其映射为公网可访问的地址。
步骤一:获取公网 IP
登录你的云服务商控制台(如阿里云、腾讯云、AWS、华为云等),查看实例详情中的“公网 IP”或“弹性 IP”。如果没有,请申请一个并绑定到该服务器。
例如,假设你的公网 IP 是47.98.123.45。
步骤二:确认端口映射
检查是否已开启端口转发规则。以8800端口为例:
| 协议 | 内部端口 | 外部端口 | 目标地址 |
|---|---|---|---|
| TCP | 8800 | 8800 | 云服务器内网 IP |
这表示:当有人访问http://47.98.123.45:8800时,流量会被自动转发到服务器内部的8800端口。
提示:部分云平台默认关闭所有入站端口,需手动添加安全组规则。
2.4 防火墙配置(Ubuntu/CentOS)
即使端口映射好了,系统级防火墙仍可能拦截请求。以下是常见系统的配置方法。
Ubuntu(使用 ufw)
# 查看状态 sudo ufw status # 开放 8800 端口 sudo ufw allow 8800/tcp # 重启防火墙 sudo ufw reloadCentOS(使用 firewalld)
# 查看开放端口 sudo firewall-cmd --list-ports # 添加永久规则 sudo firewall-cmd --permanent --add-port=8800/tcp # 重载配置 sudo firewall-cmd --reload验证服务是否可达
在本地电脑执行:
curl http://47.98.123.45:8800/health如果返回{"status": "ok"},说明服务正常且可从外网访问。
3. 客户端与真机连接(本地电脑)
现在我们回到本地电脑,配置控制端来连接安卓设备,并调用云端的 AI 模型。
3.1 硬件与环境准备
- 操作系统:Windows / macOS
- Python:建议 Python 3.10+
- 安卓设备:Android 7.0+ 手机或模拟器
- ADB 工具:Android SDK Platform Tools
ADB 安装与环境变量配置
Windows 配置步骤:
- 下载 Platform Tools
- 解压后复制文件夹路径(如
C:\platform-tools) Win + R输入sysdm.cpl→ 高级 → 环境变量- 在“系统变量”中找到
Path,点击编辑 → 新建 → 粘贴路径 - 打开命令行,输入
adb version验证安装成功
macOS 配置方法:
在终端中执行:
# 假设解压目录为 ~/Downloads/platform-tools export PATH=${PATH}:~/Downloads/platform-tools为了永久生效,可以将上述命令添加到~/.zshrc或~/.bash_profile中。
3.2 手机端设置
为了让电脑能控制手机,需要开启开发者权限。
开启开发者模式
设置 → 关于手机 → 连续点击“版本号”7次,直到提示“您已进入开发者模式”开启 USB 调试
返回设置主界面 → 开发者选项 → 启用“USB 调试”安装 ADB Keyboard(可选但推荐)
- 下载 ADB Keyboard APK 并安装
- 进入“语言与输入法”设置 → 默认键盘 → 切换为 ADB Keyboard
- 这样 AI 就可以通过 ADB 发送文本输入,无需手动打字
3.3 部署控制端代码(Open-AutoGLM)
在本地电脑上下载并安装 Open-AutoGLM 控制程序。
# 1. 克隆仓库 git clone https://github.com/zai-org/Open-AutoGLM cd Open-AutoGLM # 2. 安装依赖 pip install -r requirements.txt pip install -e .注意:某些依赖可能需要编译,建议使用虚拟环境避免冲突。
3.4 连接设备
确保手机通过 USB 连接到电脑,或处于同一 WiFi 网络下。
USB 方式连接
adb devices正常输出应类似:
List of devices attached ABCDEF1234567890 device其中ABCDEF1234567890就是你的设备 ID。
WiFi 远程连接(推荐用于长期运行)
如果你希望摆脱数据线束缚,可以用 ADB over WiFi。
# 先用 USB 连接,启用 TCP/IP 模式 adb tcpip 5555 # 断开 USB,通过 IP 连接 adb connect 192.168.x.x:5555手机 IP 可在“设置 → WLAN → 当前网络详情”中查看。
连接成功后,再次运行adb devices应能看到带 IP 地址的设备列表。
4. 启动 AI 代理:让 AI 接管手机
一切准备就绪,现在可以正式启动 AI 代理了。
4.1 命令行方式运行
在Open-AutoGLM根目录下执行:
python main.py \ --device-id ABCDEF1234567890 \ --base-url http://47.98.123.45:8800/v1 \ --model "autoglm-phone-9b" \ "打开抖音搜索抖音号为:dycwo11nt61d 的博主并关注他!"参数说明:
--device-id:通过adb devices获取的设备标识--base-url:替换为你云服务器的公网 IP 和端口(注意/v1路径)- 最后的字符串:你要下达的自然语言指令
执行后,你会看到 AI 开始截图、分析界面、生成操作步骤,并通过 ADB 自动执行点击、滑动、输入等动作。
4.2 使用 Python API 进行远程控制
除了命令行,你也可以在自己的脚本中集成 Open-AutoGLM 的功能。
from phone_agent.adb import ADBConnection, list_devices # 创建连接管理器 conn = ADBConnection() # 连接远程设备(WiFi) success, message = conn.connect("192.168.1.100:5555") print(f"连接状态: {message}") # 列出所有已连接设备 devices = list_devices() for device in devices: print(f"{device.device_id} - {device.connection_type.value}") # (首次连接时)启用 TCP/IP 模式 success, message = conn.enable_tcpip(5555) if success: ip = conn.get_device_ip() print(f"设备 IP: {ip}") # 断开连接 conn.disconnect("192.168.1.100:5555")这种方式适合嵌入到自动化系统、Web 后台或定时任务中,实现无人值守的操作流程。
5. 常见问题排查指南
5.1 连接被拒绝(Connection Refused)
可能原因:
- 云服务器未开放对应端口
- 防火墙未放行
- vLLM 服务未监听
0.0.0.0
解决方法:
- 检查安全组规则是否允许
8800端口入站 - 确认
ufw或firewalld已添加规则 - 检查 vLLM 启动命令是否包含
--host 0.0.0.0
5.2 ADB 设备离线或频繁掉线
可能原因:
- WiFi 信号不稳定
- 手机休眠导致 ADB 断开
- USB 数据线接触不良
解决方法:
- 使用高质量 USB 线缆
- 在开发者选项中关闭“USB 调试超时”
- 设置手机永不休眠(设置 → 显示 → 休眠 → 30分钟以上)
- 或改用有线连接保证稳定性
5.3 模型无响应或输出乱码
可能原因:
- vLLM 参数配置错误
- 显存不足导致推理失败
- 输入格式不符合预期
解决方法:
- 检查
--max-model-len是否足够(建议 ≥4096) - 确保 GPU 显存充足,可通过
nvidia-smi查看 - 查看服务日志是否有报错信息
- 尝试简化指令,避免歧义表达
6. 总结
通过本文,你应该已经掌握了如何将 Open-AutoGLM 部署在云服务器上,并通过公网 IP 实现远程调用的核心技能。整个流程包括:
- 在云端部署 vLLM 服务并正确暴露端口
- 配置防火墙和安全组规则,确保外部可访问
- 在本地安装 ADB 和 Open-AutoGLM 控制端
- 连接真实安卓设备(USB/WiFi)
- 调用云端模型执行自然语言指令
这套系统不仅适用于个人自动化需求(如自动签到、抢购、刷视频),也可扩展为企业级移动自动化测试、客服机器人、数据采集工具等场景。
未来随着模型能力增强和边缘计算发展,这类“看得懂、会操作”的 AI 手机代理将成为人机交互的新范式。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。