Open-AutoGLM网络配置:云服务器防火墙端口开放设置教程
1. 引言
1.1 技术背景与应用场景
Open-AutoGLM 是智谱开源的一款面向手机端的 AI Agent 框架,旨在通过多模态理解与自动化操作能力,实现自然语言驱动的智能设备控制。其核心项目 AutoGLM-Phone 和 Phone Agent 均基于视觉语言模型(VLM)构建,能够实时感知安卓屏幕内容,并结合 ADB(Android Debug Bridge)完成点击、滑动、输入等操作。
用户只需用自然语言下达指令,如“打开小红书搜索美食”或“关注抖音号为 dycwo11nt61d 的博主”,系统即可自动解析意图、识别界面元素、规划执行路径并完成任务。该框架特别适用于自动化测试、辅助操作、远程控制以及低代码机器人流程自动化(RPA)场景。
1.2 网络通信架构概述
在实际部署中,Open-AutoGLM 通常采用客户端-服务端分离架构:
- 本地客户端:运行在开发者电脑上,负责 ADB 设备连接、屏幕截图采集和动作下发。
- 云端服务端:部署在云服务器上,运行 vLLM 或其他推理引擎,提供大模型 API 接口(如
/v1/completions)。
两者通过 HTTP 协议进行通信,客户端将截图和指令发送至云端模型,接收结构化动作指令后在本地执行。因此,确保云服务器的指定端口对外可访问是整个系统正常运行的前提。
2. 云服务器防火墙配置详解
2.1 防火墙基本概念
云服务器默认启用防火墙机制以保障安全,常见的包括:
- 安全组(Security Group):云平台层面的虚拟防火墙规则,控制进出实例的流量。
- 系统级防火墙(如 firewalld、ufw):操作系统内部的防火墙服务,进一步过滤网络请求。
若未正确配置,即使模型服务已启动,本地客户端也无法通过公网 IP 访问,导致连接超时或被拒绝。
2.2 获取服务监听信息
首先确认你的模型服务正在监听的地址和端口。以使用 vLLM 启动为例:
python -m vllm.entrypoints.openai.api_server \ --host 0.0.0.0 \ --port 8800 \ --model zhipu/autoglm-phone-9b关键参数说明:
--host 0.0.0.0:表示服务绑定到所有网络接口,允许外部访问。--port 8800:指定服务端口,后续需在防火墙中放行此端口。
可通过以下命令验证服务是否就绪:
curl http://localhost:8800/v1/models预期返回包含模型信息的 JSON 响应。
3. 安全组规则配置(以主流云厂商为例)
3.1 阿里云 ECS 安全组设置
- 登录 阿里云控制台。
- 进入目标实例详情页,点击“安全组”标签。
- 点击“配置规则” → “添加安全组规则”。
- 添加入方向规则:
| 参数 | 值 |
|---|---|
| 授权策略 | 允许 |
| 协议类型 | 自定义 TCP |
| 端口范围 | 8800/8800 |
| 授权对象 | 0.0.0.0/0(或限制为开发机公网 IP) |
建议:生产环境避免使用
0.0.0.0/0,应限定为可信 IP 地址段。
- 保存规则。
3.2 腾讯云 CVM 安全组设置
- 登录 腾讯云控制台。
- 找到对应云服务器,进入“安全组”页面。
- 点击“入站规则” → “添加规则”。
配置如下:
- 协议:TCP
- 端口:8800
- 来源:0.0.0.0/0 或指定 IP
- 策略:允许
提交后等待几秒生效。
3.3 AWS EC2 安全组设置
- 登录 AWS 控制台,进入 EC2 服务。
- 在左侧导航栏选择“Security Groups”。
- 选中实例关联的安全组,点击“Edit inbound rules”。
- 添加新规则:
Type: Custom TCP Protocol: TCP Port range: 8800 Source: 0.0.0.0/0保存更改。
4. 操作系统级防火墙配置
4.1 Ubuntu 使用 ufw
Ubuntu 默认可能启用ufw(Uncomplicated Firewall),需手动放行端口:
# 查看当前状态 sudo ufw status # 开放 8800 端口 sudo ufw allow 8800/tcp # 可选:仅允许特定 IP 访问(更安全) sudo ufw allow from 192.168.1.100 to any port 8800 proto tcp # 重新加载规则 sudo ufw reload4.2 CentOS/RHEL 使用 firewalld
CentOS 系统常用firewalld管理防火墙:
# 查看当前区域 firewall-cmd --get-active-zones # 永久开放 8800 端口(假设使用 public 区域) sudo firewall-cmd --zone=public --add-port=8800/tcp --permanent # 重载配置 sudo firewall-cmd --reload # 验证端口是否开放 sudo firewall-cmd --list-ports | grep 88004.3 验证端口可达性
从本地电脑测试端口连通性:
telnet <云服务器公网IP> 8800或使用nc:
nc -zv <云服务器公网IP> 8800如果提示“Connection refused”或超时,则说明防火墙仍存在拦截。
5. 客户端与真机连接(本地电脑)
5.1 硬件与环境准备
- 操作系统:Windows / macOS
- Python 版本:建议 Python 3.10+
- 安卓设备:Android 7.0+ 手机或模拟器
- ADB 工具:Android SDK Platform Tools
ADB 环境变量配置
Windows:
- 下载 Platform Tools 并解压。
Win + R输入sysdm.cpl→ 高级 → 环境变量。- 在“系统变量”中的
Path添加 ADB 解压路径(如C:\platform-tools)。 - 打开命令行输入
adb version验证安装成功。
macOS:
在终端执行:
# 替换为实际路径 export PATH=${PATH}:~/Downloads/platform-tools可将其写入~/.zshrc或~/.bash_profile实现持久化。
6. 手机端设置
6.1 开启开发者模式与调试
- 进入手机“设置” → “关于手机” → 连续点击“版本号”7次,启用开发者选项。
- 返回设置主菜单 → “开发者选项” → 启用“USB 调试”。
- 若提示授权,确认电脑指纹并允许调试。
6.2 安装 ADB Keyboard(可选但推荐)
用于文本输入支持:
- 下载 ADB Keyboard APK 并安装。
- 进入“语言与输入法”设置 → 当前输入法 → 切换为“ADB Keyboard”。
这样可通过 ADB 发送中文字符,避免原生输入法干扰。
7. 部署控制端代码(Open-AutoGLM)
在本地电脑执行以下步骤:
# 1. 克隆仓库 git clone https://github.com/zai-org/Open-AutoGLM cd Open-AutoGLM # 2. 安装依赖 pip install -r requirements.txt pip install -e .确保phone_agent包正确安装,且能导入模块。
8. 连接设备方式
8.1 USB 连接方式
- 使用数据线连接手机与电脑。
- 执行命令查看设备状态:
adb devices输出示例:
List of devices attached ABCDEF1234567890 device若显示unauthorized,请在手机上确认调试授权。
8.2 WiFi 远程连接方式
适用于无线调试或远程部署:
# 1. 先通过 USB 连接,开启 TCP/IP 模式 adb tcpip 5555 # 2. 断开 USB,获取手机 IP(可在设置 → WLAN 中查看) adb connect 192.168.x.x:5555连接成功后,adb devices将显示 IP 地址形式的设备。
9. 启动 AI 代理
9.1 命令行运行示例
在Open-AutoGLM根目录下执行:
python main.py \ --device-id ABCDEF1234567890 \ --base-url http://<云服务器公网IP>:8800/v1 \ --model "autoglm-phone-9b" \ "打开抖音搜索抖音号为:dycwo11nt61d 的博主并关注他!"参数说明:
--device-id:来自adb devices输出的设备标识。--base-url:必须指向云服务器的公网 IP 和映射端口(如http://47.98.123.45:8800/v1)。- 最后字符串:自然语言指令,支持复杂语义表达。
9.2 Python API 远程连接示例
from phone_agent.adb import ADBConnection, list_devices # 创建连接管理器 conn = ADBConnection() # 连接远程设备 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}") # 在 USB 设备上启用 TCP/IP success, message = conn.enable_tcpip(5555) ip = conn.get_device_ip() print(f"设备 IP: {ip}") # 断开连接 conn.disconnect("192.168.1.100:5555")可用于集成到自定义控制面板或 Web UI 中。
10. 常见问题排查
10.1 连接被拒绝(Connection Refused)
可能原因:
- 云服务器未开放对应端口(检查安全组)
- 模型服务未监听
0.0.0.0 - 系统防火墙未放行端口
解决方法:
- 确认服务启动命令包含
--host 0.0.0.0 - 检查安全组和系统防火墙是否放行端口
- 使用
netstat -tuln | grep 8800确认端口监听状态
10.2 ADB 掉线频繁
可能原因:
- WiFi 信号不稳定
- 手机休眠或断开调试
建议:
- 使用 USB 线连接进行稳定性测试
- 设置手机“不锁定屏幕”或使用“保持唤醒”功能
10.3 模型响应乱码或无响应
可能原因:
- vLLM 启动参数错误(如
max_model_len不匹配) - 显存不足导致推理失败
- 输入图像尺寸超出模型处理范围
建议:
- 检查日志输出是否有 CUDA OOM 错误
- 调整
--max-model-len至合理值(如 4096) - 确保截图分辨率适配(建议 720p~1080p)
11. 总结
本文系统讲解了 Open-AutoGLM 框架在云服务器部署过程中,如何正确配置防火墙与端口开放,确保本地客户端能顺利调用远程 AI 模型服务。我们覆盖了从云平台安全组设置、操作系统防火墙配置,到 ADB 连接、控制端部署及常见问题排查的完整链路。
关键要点总结如下:
- 服务必须绑定
0.0.0.0才能接受外部请求 - 云服务器安全组和系统防火墙均需放行目标端口
- 推荐使用固定端口(如 8800)并限制访问来源 IP 提升安全性
- ADB 支持 USB 与 WiFi 两种连接模式,后者便于远程开发
- 通过
telnet或nc工具可快速验证端口连通性
只要严格按照上述步骤操作,即可顺利完成 Open-AutoGLM 的跨网络部署,实现真正的“远端模型 + 本地执行”的智能代理架构。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。