大兴安岭地区网站建设_网站建设公司_PHP_seo优化
2026/1/18 1:43:23 网站建设 项目流程

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 安全组设置

  1. 登录 阿里云控制台。
  2. 进入目标实例详情页,点击“安全组”标签。
  3. 点击“配置规则” → “添加安全组规则”。
  4. 添加入方向规则:
参数
授权策略允许
协议类型自定义 TCP
端口范围8800/8800
授权对象0.0.0.0/0(或限制为开发机公网 IP)

建议:生产环境避免使用0.0.0.0/0,应限定为可信 IP 地址段。

  1. 保存规则。

3.2 腾讯云 CVM 安全组设置

  1. 登录 腾讯云控制台。
  2. 找到对应云服务器,进入“安全组”页面。
  3. 点击“入站规则” → “添加规则”。

配置如下:

  • 协议:TCP
  • 端口:8800
  • 来源:0.0.0.0/0 或指定 IP
  • 策略:允许

提交后等待几秒生效。

3.3 AWS EC2 安全组设置

  1. 登录 AWS 控制台,进入 EC2 服务。
  2. 在左侧导航栏选择“Security Groups”。
  3. 选中实例关联的安全组,点击“Edit inbound rules”。
  4. 添加新规则:
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 reload

4.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 8800

4.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

  1. 下载 Platform Tools 并解压。
  2. Win + R输入sysdm.cpl→ 高级 → 环境变量。
  3. 在“系统变量”中的Path添加 ADB 解压路径(如C:\platform-tools)。
  4. 打开命令行输入adb version验证安装成功。

macOS

在终端执行:

# 替换为实际路径 export PATH=${PATH}:~/Downloads/platform-tools

可将其写入~/.zshrc~/.bash_profile实现持久化。


6. 手机端设置

6.1 开启开发者模式与调试

  1. 进入手机“设置” → “关于手机” → 连续点击“版本号”7次,启用开发者选项。
  2. 返回设置主菜单 → “开发者选项” → 启用“USB 调试”。
  3. 若提示授权,确认电脑指纹并允许调试。

6.2 安装 ADB Keyboard(可选但推荐)

用于文本输入支持:

  1. 下载 ADB Keyboard APK 并安装。
  2. 进入“语言与输入法”设置 → 当前输入法 → 切换为“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 连接方式

  1. 使用数据线连接手机与电脑。
  2. 执行命令查看设备状态:
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
  • 系统防火墙未放行端口

解决方法:

  1. 确认服务启动命令包含--host 0.0.0.0
  2. 检查安全组和系统防火墙是否放行端口
  3. 使用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 连接、控制端部署及常见问题排查的完整链路。

关键要点总结如下:

  1. 服务必须绑定0.0.0.0才能接受外部请求
  2. 云服务器安全组和系统防火墙均需放行目标端口
  3. 推荐使用固定端口(如 8800)并限制访问来源 IP 提升安全性
  4. ADB 支持 USB 与 WiFi 两种连接模式,后者便于远程开发
  5. 通过telnetnc工具可快速验证端口连通性

只要严格按照上述步骤操作,即可顺利完成 Open-AutoGLM 的跨网络部署,实现真正的“远端模型 + 本地执行”的智能代理架构。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询