news 2026/4/23 13:12:07

AutoGLM-Phone连接被拒?云服务器端口放行设置教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AutoGLM-Phone连接被拒?云服务器端口放行设置教程

AutoGLM-Phone连接被拒?云服务器端口放行设置教程

你兴冲冲地配置好AutoGLM-Phone控制端,输入指令准备让AI替你刷小红书、关注博主、自动点外卖——结果命令行弹出一行冰冷的报错:Connection refused。不是手机没连上,不是ADB没启动,而是请求压根没抵达云端模型服务。问题出在哪?十有八九,是云服务器那扇“门”还关着:端口没放行。

这不是代码bug,也不是模型故障,而是一个常被忽略却至关重要的工程细节:云服务器防火墙必须明确允许外部流量进入你部署的AI服务端口。本文不讲大模型原理,不堆参数调优,只聚焦一个实操痛点——当AutoGLM-Phone提示“连接被拒”,如何快速定位、精准修复云服务器端口放行问题,并完成从本地电脑到真机的全链路打通。


1. 理解AutoGLM-Phone的通信架构:为什么端口放行是关键一环

AutoGLM-Phone不是单机运行的App,它是一个典型的“客户端-服务端”协同框架。理解它的数据流向,是解决连接问题的第一步。

1.1 它到底在和谁“对话”?

AutoGLM-Phone的控制逻辑分三层:

  • 最底层:你的安卓手机
    它是执行终端,负责显示界面、响应点击、输入文字。所有操作都通过ADB(Android Debug Bridge)这条“数字脐带”来完成。

  • 中间层:你的本地电脑(控制端)
    你在这里运行main.py,它像一个指挥官:接收你的自然语言指令(如“打开微信发红包”),解析意图,然后通过ADB向手机发送具体操作命令(点击坐标、输入文本等)。

  • 最上层:云服务器(AI大脑)
    这才是真正的智能核心。本地控制端本身不运行大模型,它会把手机当前屏幕截图、任务描述、历史动作等信息,打包成API请求,发送给部署在云服务器上的autoglm-phone-9b模型服务。模型推理完成后,再把下一步操作指令(比如“点击坐标(520, 880)”)返回给本地控制端。

关键点来了:本地控制端与云服务器之间的通信,走的是标准的HTTP协议。默认情况下,vLLM或FastAPI服务会监听在某个端口上(例如8800)。这个端口,就是云服务器面向公网的“窗口”。如果这个窗口被防火墙锁死,无论你的ADB多么顺畅,指令永远无法抵达AI大脑,必然报错Connection refused

1.2 “连接被拒”的真实含义

Connection refused这个错误,操作系统层面的含义非常明确:你的本地电脑成功发出了TCP连接请求,但目标IP和端口上没有任何进程在监听,或者该端口被防火墙主动拒绝了连接

它和Timeout(超时)有本质区别:

  • Timeout:请求发出去了,但石沉大海,没人应答 → 可能是网络不通、服务器宕机、或端口被屏蔽。
  • Connection refused:请求发到了,但对方直接说“我不认识你,不接” →几乎可以100%锁定为云服务器端口未开放或服务未启动

所以,当你看到这个报错,请立刻停止检查手机USB线,转而登录你的云服务器后台。


2. 云服务器端口放行实战:三步搞定,覆盖主流平台

端口放行不是玄学,它就是给服务器防火墙下一条清晰的“放行令”。不同云厂商控制台界面略有差异,但核心逻辑完全一致:找到防火墙规则,添加一条入站规则,允许指定端口的TCP流量。

2.1 阿里云ECS:安全组是你的第一道防线

阿里云的安全组,本质上就是一个虚拟的、基于云服务器的防火墙。

  1. 登录阿里云控制台,进入ECS实例列表
  2. 找到你部署AutoGLM-Phone服务的那台云服务器,点击其实例ID进入详情页。
  3. 在左侧菜单栏,点击“安全组”
  4. 找到该实例绑定的安全组,点击右侧的“配置规则”
  5. 在“入方向”规则页,点击“手动添加”
  6. 填写以下关键信息(其余保持默认):
    • 授权策略:允许
    • 协议类型自定义TCP
    • 端口范围:填入你实际映射的端口,例如8800/8800(表示只开放8800这一个端口)
    • 授权对象0.0.0.0/0(允许所有IP访问)
      • 生产环境建议限制为你的本地电脑公网IP,更安全。*
  7. 点击“确定”,规则立即生效。

验证小技巧:添加规则后,无需重启服务器。你可以立刻在本地电脑用telnet <云服务器IP> 8800测试。如果出现黑屏(光标闪烁),说明端口已通;如果提示“无法连接”,说明规则未生效或服务未启动。

2.2 腾讯云CVM:网络ACL与安全组双保险

腾讯云采用“网络ACL + 安全组”双重防护,但日常使用中,安全组是主要管理入口

  1. 登录腾讯云控制台,进入云服务器CVM列表。
  2. 找到目标服务器,点击其实例ID
  3. 在实例详情页,找到“安全组”标签页,点击右侧的“管理规则”
  4. 在“入站规则”页,点击“添加规则”
  5. 设置如下:
    • 协议类型:TCP
    • 端口范围8800
    • 源IP地址0.0.0.0/0
    • 策略:允许
  6. 点击“完成”

注意:腾讯云的网络ACL(子网级防火墙)默认是放行所有流量的,如果你没动过它,基本不用管。优先排查安全组规则。

2.3 华为云ECS:安全组规则需精确匹配

华为云的安全组规则配置最为细致,务必注意“协议”和“端口”的填写格式。

  1. 登录华为云控制台,进入弹性云服务器ECS
  2. 找到目标服务器,在其操作列点击“更多” → “安全组”
  3. 在安全组列表中,点击你正在使用的安全组名称。
  4. 在“入方向规则”页,点击“添加规则”
  5. 关键字段设置:
    • 协议TCP
    • 端口8800不是8800/8800,华为云此处只填单个端口号
    • 源地址0.0.0.0/0
    • 策略允许
  6. 点击“确定”

3. 本地控制端完整配置指南:从零开始打通全链路

端口放行只是打通了“云”的一端。要让AI真正接管你的手机,本地电脑的每一步配置都必须严丝合缝。

3.1 ADB环境:让电脑“认得”你的手机

ADB是整个自动化流程的基石。没有它,一切指令都是空中楼阁。

  • Windows用户

    1. 下载Android SDK Platform-Tools。
    2. 解压到一个无中文、无空格的路径,例如C:\adb
    3. Win + R输入sysdm.cpl→ “高级”选项卡 → “环境变量” → 在“系统变量”中找到Path→ “编辑” → “新建” → 粘贴C:\adb
    4. 打开新命令行窗口,输入adb version。若显示版本号,则配置成功。
  • macOS用户

    1. 下载Platform-Tools并解压。
    2. 打开终端,执行以下命令(将路径替换为你自己的解压路径):
    echo 'export PATH=$PATH:~/Downloads/platform-tools' >> ~/.zshrc source ~/.zshrc
    1. 输入adb version验证。

3.2 手机端设置:开启“调试权限”的三把钥匙

仅仅安装ADB还不够,手机必须主动授权。

  1. 开启开发者模式
    进入手机“设置” → “关于手机” → 连续点击“版本号”7次,直到提示“您现在处于开发者模式”。

  2. 开启USB调试
    返回“设置” → “系统” → “开发者选项” → 找到并开启“USB调试”。首次开启时,手机会弹出授权窗口,勾选“始终允许”,点击“确定”。

  3. 安装ADB Keyboard(关键!)
    AutoGLM-Phone需要向手机输入文字(比如搜索关键词),这依赖于一个特殊的输入法。

    • 前往GitHub搜索adb-keyboard,下载最新版APK。
    • 在手机上安装。
    • 进入“设置” → “语言与输入法” → 将默认输入法切换为“ADB Keyboard”
      这是实现“自动打字”的唯一方式,切勿跳过。

3.3 启动控制端:让AI开始工作

一切就绪后,启动流程清晰明了:

  1. 确保设备已连接
    USB线连接手机与电脑,或确保手机与电脑在同一WiFi下。
    在命令行输入adb devices,输出应类似:

    List of devices attached 1234567890abcdef device
  2. 克隆并安装控制端

    git clone https://github.com/zai-org/Open-AutoGLM cd Open-AutoGLM pip install -r requirements.txt pip install -e .
  3. 发起AI指令(核心命令)

    python main.py \ --device-id 1234567890abcdef \ --base-url http://123.45.67.89:8800/v1 \ --model "autoglm-phone-9b" \ "打开小红书搜索美食"
    • --device-id:来自adb devices的输出。
    • --base-urlhttp://+ 你的云服务器公网IP+:+ 你放行的端口 +/v1
      务必确认这个URL能在浏览器里直接访问(返回JSON错误是正常的,说明端口通了)。

4. 排查清单:5分钟定位90%的连接问题

Connection refused再次出现,请按此顺序快速排查:

检查项如何验证正确表现错误表现
云服务器服务是否运行?SSH登录服务器,执行ps aux | grep vllm显示vLLM进程及其端口参数无任何输出
云服务器端口是否放行?本地执行telnet <云IP> <端口>光标闪烁(连接成功)Could not open connection
云服务器端口是否被占用?SSH登录后执行lsof -i :8800netstat -tuln | grep 8800显示vLLM进程监听显示LISTEN但不是你的进程,或无输出
本地网络能否访问云服务器?本地执行ping <云IP>有正常回复Request timed out
base-url地址是否拼写正确?--base-url后的URL粘贴到浏览器地址栏返回{"detail":"Not Found"}或类似JSON浏览器提示“无法访问此网站”

终极建议:首次部署时,先在云服务器本地用curl测试服务是否健康:

curl http://localhost:8800/v1/models

如果这一步都失败,问题100%出在服务启动环节,与端口放行无关。


5. 远程ADB的进阶玩法:摆脱USB线,实现真·无线控制

USB线虽然稳定,但限制了使用场景。WiFi远程ADB让你的手机真正“自由”。

5.1 一次配置,永久受益

  1. 首次必须用USB连接
    将手机用USB线连到电脑,确保adb devices能识别。
  2. 开启手机的TCP/IP模式
    adb tcpip 5555 # 输出:restarting in TCP mode port: 5555
  3. 断开USB线,连接同一WiFi
    在手机“设置”→“关于手机”里找到“IP地址”,记下它(如192.168.1.100)。
  4. 通过WiFi连接
    adb connect 192.168.1.100:5555 # 输出:connected to 192.168.1.100:5555

从此,只要手机和你的控制电脑在同一局域网,你就可以用--device-id 192.168.1.100:5555参数,彻底告别USB线。

5.2 Python API:为你的自动化脚本注入灵魂

除了命令行,Open-AutoGLM也提供了简洁的Python接口,方便集成到更复杂的业务逻辑中:

from phone_agent.adb import ADBConnection # 创建ADB连接管理器 conn = ADBConnection() # 连接WiFi设备 success, msg = conn.connect("192.168.1.100:5555") print(f"连接结果: {msg}") # 成功则输出 "Connected successfully" # 获取设备IP(用于后续调试) ip = conn.get_device_ip() print(f"设备IP: {ip}") # 断开连接 conn.disconnect("192.168.1.100:5555")

这段代码的核心价值在于:它把ADB连接这个“脏活累活”封装成了几个函数调用,让你可以把精力全部放在AI指令的设计和业务流程的编排上。


总结

AutoGLM-Phone的“连接被拒”,从来不是一个孤立的技术故障,而是一条完整数据链路上某个环节的失守。本文带你穿透表象,直击本质:

  • 它不是手机的问题,而是云服务器那扇未开启的“门”;
  • 它不是模型的问题,而是服务进程与防火墙规则之间的一场无声博弈;
  • 它不是你的问题,而是所有AI Agent落地时必经的、充满烟火气的工程实践。

从阿里云安全组的一行规则,到手机设置里那个被反复点击7次的“版本号”,再到命令行里那个精确到毫秒的--base-url参数——正是这些看似琐碎的细节,共同构筑了AI从“能跑”到“能用”的坚实桥梁。

现在,你已经掌握了端口放行的全部要点。回到你的云服务器控制台,打开安全组,添加那条至关重要的入站规则。然后,深吸一口气,再次运行python main.py。这一次,当AI开始流畅地为你滑动屏幕、点击图标、输入文字时,你会明白:所谓前沿技术,不过是把每一个“理所当然”的步骤,都亲手走了一遍。

--- > **获取更多AI镜像** > > 想探索更多AI镜像和应用场景?访问 [CSDN星图镜像广场](https://ai.csdn.net/?utm_source=mirror_blog_end),提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 21:29:18

HsMod炉石插件全解:高效游戏体验与实用功能实战指南

HsMod炉石插件全解&#xff1a;高效游戏体验与实用功能实战指南 【免费下载链接】HsMod Hearthstone Modify Based on BepInEx 项目地址: https://gitcode.com/GitHub_Trending/hs/HsMod HsMod&#xff08;Hearthstone Modify&#xff09;是基于BepInEx框架开发的炉石传…

作者头像 李华
网站建设 2026/4/8 10:01:09

HsMod炉石插件实用指南:从入门到精通

HsMod炉石插件实用指南&#xff1a;从入门到精通 【免费下载链接】HsMod Hearthstone Modify Based on BepInEx 项目地址: https://gitcode.com/GitHub_Trending/hs/HsMod 核心价值速览 HsMod作为基于BepInEx框架&#xff08;插件加载器&#xff09;的炉石传说辅助工具…

作者头像 李华
网站建设 2026/4/16 22:34:56

League Akari 英雄联盟辅助工具全攻略:功能模块与实战指南

League Akari 英雄联盟辅助工具全攻略&#xff1a;功能模块与实战指南 【免费下载链接】LeagueAkari ✨兴趣使然的&#xff0c;功能全面的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/LeagueAkari 一、…

作者头像 李华
网站建设 2026/4/18 20:42:15

3大核心功能!Bili2text智能转换效率工具让视频转文字提速80%

3大核心功能&#xff01;Bili2text智能转换效率工具让视频转文字提速80% 【免费下载链接】bili2text Bilibili视频转文字&#xff0c;一步到位&#xff0c;输入链接即可使用 项目地址: https://gitcode.com/gh_mirrors/bi/bili2text 在信息爆炸的时代&#xff0c;视频内…

作者头像 李华
网站建设 2026/4/22 1:17:33

CAM++语音识别系统部署教程:快速上手192维特征提取

CAM语音识别系统部署教程&#xff1a;快速上手192维特征提取 1. 这不是“语音转文字”&#xff0c;而是“听声辨人” 很多人第一次看到CAM&#xff0c;会下意识以为这是个语音识别&#xff08;ASR&#xff09;工具——其实完全不是。它不关心你说的是“今天天气真好”还是“转…

作者头像 李华
网站建设 2026/4/18 7:53:15

如何用League Akari提升游戏体验:从入门到精通

如何用League Akari提升游戏体验&#xff1a;从入门到精通 【免费下载链接】LeagueAkari ✨兴趣使然的&#xff0c;功能全面的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/LeagueAkari 引言 League Ak…

作者头像 李华