news 2026/4/18 0:22:00

防火墙怎么设?Open-AutoGLM云服务器端口配置

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
防火墙怎么设?Open-AutoGLM云服务器端口配置

防火墙怎么设?Open-AutoGLM云服务器端口配置

你已经成功在云服务器上部署了 Open-AutoGLM 的推理服务,也配好了本地电脑的 ADB 环境,手机调试一切就绪——可当执行python main.py命令时,终端却卡在连接阶段,报错:Connection refusedFailed to connect to server

别急,这不是模型没跑起来,也不是 ADB 没连上,大概率是云服务器的防火墙把请求拦住了

这就像你家装修好了智能中控系统,遥控器也配好了,但大门装了把新锁——钥匙(请求)是对的,可门(端口)根本没开。本文不讲大模型原理、不堆参数调优,专注解决一个最实际、最高频、新手最容易卡住的问题:怎么正确开放云服务器端口,让本地控制端稳稳连上远端的 AutoGLM-Phone 服务

全文基于真实部署场景,所有命令可直接复制粘贴,每一步都标注了“为什么这么设”,帮你一次配对、长期稳定。


1. 明确服务暴露方式:不是所有端口都需要开放

Open-AutoGLM 作为手机 AI Agent 框架,其云侧核心是vLLM 或 SGLang 提供的 HTTP API 服务,默认监听在0.0.0.0:8000(vLLM)或0.0.0.0:8080(SGLang)等地址。但注意:这个端口只是服务在服务器内部监听的地址,它本身并不自动对外网可见

真正决定“能不能从你家电脑访问到它”的,是两层关卡:

  • 第一层:云服务器操作系统防火墙(如 ufw / firewalld / iptables)
  • 第二层:云厂商安全组(如阿里云安全组、腾讯云网络ACL、AWS Security Group)

很多用户只开了系统防火墙,却忘了配安全组;或反过来,安全组放行了,但系统防火墙仍拦截——结果就是“明明端口开着,却连不上”。

我们按实际部署顺序,逐层打通。


2. 查看服务实际监听端口与绑定地址

在云服务器上,先确认你的 Open-AutoGLM 推理服务是否真的在运行,以及它监听在哪。

2.1 检查进程与端口占用

# 查看所有监听中的 TCP 端口(重点关注 LISTEN 状态) sudo ss -tuln | grep ':' # 或使用 netstat(如已安装) sudo netstat -tuln | grep LISTEN

你会看到类似输出:

tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN

关键看第一列0.0.0.0:8000—— 表示服务正监听所有网卡的 8000 端口,这是可外网访问的前提
❌ 如果显示的是127.0.0.1:8000,说明服务只绑定了本地回环,必须修改启动命令

# 启动 vLLM 时,务必加上 --host 0.0.0.0 python -m vllm.entrypoints.api_server \ --model zhipu/autoglm-phone-9b \ --host 0.0.0.0 \ --port 8000 \ --tensor-parallel-size 1

小贴士:--host 0.0.0.0是关键!它告诉服务“接受来自任意 IP 的连接”,而不是仅限本机。很多教程省略这步,导致后续所有防火墙配置都白忙。

2.2 验证服务本地可通(绕过防火墙)

在云服务器内部,用 curl 测试 API 是否响应:

curl http://localhost:8000/health # 应返回 {"status":"ok"} 或类似健康状态

如果这步失败,说明服务根本没起来,先排查模型加载、显存、依赖等问题——防火墙配置是最后一步,不是第一步


3. 开放系统级防火墙:ufw(Ubuntu)或 firewalld(CentOS/RHEL)

绝大多数云服务器使用 Ubuntu 或 CentOS 系统。我们分两种主流情况说明。

3.1 Ubuntu 系统(推荐 ufw)

Ubuntu 默认启用ufw(Uncomplicated Firewall),简洁易用。

# 1. 查看当前状态 sudo ufw status verbose # 2. 若为 inactive,先启用 sudo ufw enable # 3. 允许指定端口(以 8000 为例,替换成你实际使用的端口) sudo ufw allow 8000 # 4. (可选)允许特定IP访问,更安全(例如只允许你家宽带IP) # sudo ufw allow from 203.123.45.67 to any port 8000 # 5. 再次查看状态,确认规则已生效 sudo ufw status numbered

输出应包含:

Status: active To Action From -- ------ ---- 8000 ALLOW Anywhere 8000 (v6) ALLOW Anywhere (v6)

成功:8000端口已加入白名单,ufw 不再拦截该端口入站流量。

3.2 CentOS / Rocky Linux / AlmaLinux(推荐 firewalld)

这些系统默认使用firewalld

# 1. 查看状态 sudo firewall-cmd --state # 应返回 running # 2. 查看当前区域(通常是 public) sudo firewall-cmd --get-active-zones # 3. 临时开放端口(重启后失效) sudo firewall-cmd --add-port=8000/tcp --permanent # 4. 重载配置使永久规则生效 sudo firewall-cmd --reload # 5. 验证 sudo firewall-cmd --list-ports # 应输出:8000/tcp

注意:--permanent参数必须加!否则重启后规则丢失。--reload是必须步骤,不执行则不生效。


4. 配置云厂商安全组:这才是外网访问的“总闸门”

系统防火墙管的是“服务器操作系统”,而安全组管的是“云服务器这张网卡的物理入口”。它位于网络链路最前端,优先级高于系统防火墙。

无论你用的是阿里云、腾讯云、华为云还是 AWS,操作逻辑一致:找到你这台云服务器所属的安全组,添加一条入方向(Inbound)规则,协议为 TCP,端口为你服务监听的端口(如 8000),源 IP 设置为你的本地电脑公网 IP(或 0.0.0.0/0 临时测试)

下面以三家主流平台为例,给出精准路径和截图要点(文字描述,无图):

4.1 阿里云 ECS 安全组配置

  • 进入 ECS 控制台
  • 左侧菜单 →网络与安全安全组
  • 找到你 ECS 实例绑定的安全组(名称通常含 “sg-” 开头),点击配置规则
  • 点击手动添加入方向
  • 填写:
    • 授权策略:允许
    • 协议类型:自定义 TCP
    • 端口范围:8000/8000(不要写成 8000,必须带端口范围格式)
    • 授权对象:你的本地公网 IP/32(如203.123.45.67/32),切勿填 0.0.0.0/0 上线环境!
  • 保存

如何查自己本地公网 IP?在浏览器打开 https://ip.cn ,页面顶部即显示。

4.2 腾讯云 CVM 安全组配置

  • 进入 CVM 控制台
  • 左侧菜单 →网络与安全安全组
  • 找到对应安全组 → 点击配置安全组规则
  • 点击添加规则入站规则
  • 填写:
    • 类型:自定义
    • 协议端口:TCP:8000
    • 源 IP:203.123.45.67/32(同上,精确到单 IP)
  • 保存

4.3 AWS EC2 安全组配置

  • 进入 EC2 控制台
  • 左侧菜单 →Network & SecuritySecurity Groups
  • 找到关联实例的安全组 → 点击Edit inbound rules
  • 点击Add rule
  • 填写:
    • Type:Custom TCP
    • Protocol:TCP
    • Port range:8000
    • Source:Custom → 203.123.45.67/32
  • 保存规则

统一原则:安全组规则必须明确、最小权限。生产环境严禁使用 0.0.0.0/0,测试环境可临时使用,验证通过后立即改回具体 IP。


5. 验证端口是否真正开放:三步连通性测试

配置完两层防火墙,别急着跑main.py,先做三步验证,快速定位问题环节:

5.1 第一步:本地电脑能否 ping 通云服务器?

ping <你的云服务器公网IP>
  • 通:说明网络层可达(ICMP 协议)
  • ❌ 不通:检查云服务器是否关机、弹性公网 IP 是否绑定、安全组是否禁用了 ICMP(部分厂商默认禁用,不影响 TCP)

提示:ping 不通 ≠ 端口不通。TCP 服务可以完全正常,但 ICMP 被屏蔽。所以 ping 不通不等于失败,继续下一步。

5.2 第二步:本地电脑能否 telnet 通目标端口?

# Windows(需启用 Telnet 客户端)或 macOS/Linux 终端执行 telnet <云服务器公网IP> 8000
  • 显示Connected to ...或一片空白(表示连接成功,服务正在等待 HTTP 请求)→端口已通!
  • ❌ 显示Could not open connectionConnection refused→ 说明请求被某层拦截:
    • 若之前curl http://localhost:8000/health成功 → 问题出在安全组或系统防火墙未生效
    • curl也失败 → 服务未启动或绑定地址错误(回到第2节)

5.3 第三步:本地电脑用 curl 直接调用 API(模拟 main.py)

curl -X POST "http://<云服务器公网IP>:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ -d '{ "model": "autoglm-phone-9b", "messages": [{"role": "user", "content": "你好"}] }'
  • 返回 JSON 响应(含choices字段)→服务、防火墙、网络全部就绪,可放心运行 main.py
  • ❌ 返回curl: (7) Failed to connect→ 回到第5.2步重试
  • ❌ 返回{"error": "Not Found"}→ 路径错误,确认你用的是 vLLM 的/v1/chat/completions,不是 OpenAI 兼容接口的其他路径

6. 常见坑点与避坑指南(血泪总结)

以下全是真实踩过的坑,按发生频率排序:

6.1 坑:端口映射写错,main.py 里填的是内网端口

现象:你在云服务器上用docker run -p 8800:8000启动了容器,服务监听在容器内 8000,映射到宿主机 8800。
但你在main.py命令里写的是:

--base-url http://<IP>:8000/v1 # ❌ 错!这是容器内端口,宿主机对外暴露的是 8800

正确写法:

--base-url http://<IP>:8800/v1 # 宿主机映射端口才是外网可访问的

记住口诀:main.py 连的是“宿主机的端口”,不是容器/服务内部的端口。

6.2 坑:安全组开了,ufw/firewalld 也开了,但还是连不上

大概率原因:云服务器有多张网卡(如 eth0 + eth1),而服务只监听了 eth0,但安全组规则指向了 eth1 的 IP
解决方案:统一使用0.0.0.0绑定,并确认你填入main.py的 IP 是安全组规则所针对的那张网卡的公网 IP。

6.3 坑:本地电脑在公司/学校内网,出口 IP 是 NAT 共享的,无法固定

现象:你查到的本地 IP 是10.x.x.x192.168.x.x,这不是公网 IP,填进安全组无效。
解决方案:

  • 临时测试:安全组源 IP 填0.0.0.0/0(仅限测试,验证通过后立刻改回)
  • 长期方案:联系网络管理员获取出口公网 IP,或使用 frp/ngrok 等内网穿透工具反向代理,让云服务器主动连你(不推荐,增加延迟和复杂度)

6.4 坑:HTTPS 强制跳转导致 HTTP 请求失败

如果你在云服务器上配置了 Nginx 反向代理并启用了 HTTPS,但main.py仍用http://请求,Nginx 可能 301 跳转到https://,而 vLLM 服务本身不支持 HTTPS。
解决方案:main.py--base-url改为https://,并在 Nginx 中正确配置 SSL 证书和 proxy_pass。


7. 最小可行配置清单(抄作业版)

为方便你快速核对,以下是完整、精简、无冗余的配置步骤清单,按执行顺序排列:

步骤操作命令/位置验证方式
1确认服务监听0.0.0.0启动命令加--host 0.0.0.0ss -tuln | grep :8000
2本地测试服务健康云服务器内执行curl http://localhost:8000/health
3开放系统防火墙Ubuntu:sudo ufw allow 8000
CentOS:sudo firewall-cmd --add-port=8000/tcp --permanent && sudo firewall-cmd --reload
sudo ufw statusfirewall-cmd --list-ports
4配置云安全组阿里云/腾讯云/AWS 控制台 → 安全组 → 入方向规则 → TCP:8000 → 源IP=你的本地公网IP/32控制台界面确认规则存在
5本地 telnet 测试本地电脑执行telnet <云IP> 8000→ 成功即通
6本地 curl API 测试本地电脑执行curl -X POST "http://<云IP>:8000/v1/chat/completions" -d '{...}'

完成以上6步,99% 的连接问题都会消失。


8. 安全加固建议(上线前必做)

当你确认功能可用后,请立即执行以下加固操作,避免服务暴露在公网风险中:

  • 将安全组源 IP 从0.0.0.0/0改为你的固定公网 IP/32
  • 为 API 加一层基础认证(如 Nginx Basic Auth),防止未授权调用
  • 限制 vLLM 的最大并发请求数(--max-num-seqs)和上下文长度(--max-model-len,防资源耗尽
  • 关闭不必要的 ADB 调试端口(如 5037),仅保留业务必需端口
  • 定期更新系统与依赖,尤其关注 vLLM、SGLang、ADB 工具的安全公告

安全不是功能的对立面,而是让功能走得更远的基石。一个能自动点外卖的 AI,不该成为攻击者入侵你手机的跳板。


获取更多AI镜像

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 22:32:12

儿童创造力激发实验:Qwen非常规组合生成部署实战

儿童创造力激发实验&#xff1a;Qwen非常规组合生成部署实战 你有没有试过&#xff0c;蹲下来和孩子一起画一只“会跳舞的彩虹狐狸”&#xff1f;或者听他们认真描述“长着蝴蝶翅膀的小熊在云朵上野餐”&#xff1f;孩子的想象力从不设限——但把那些天马行空的画面变成真实可…

作者头像 李华
网站建设 2026/4/16 23:46:09

零基础玩转Qwen图片生成模型,ComfyUI一键启动超简单

零基础玩转Qwen图片生成模型&#xff0c;ComfyUI一键启动超简单 你是不是也试过下载大模型、配环境、调依赖&#xff0c;折腾半天连第一张图都没生成出来&#xff1f;是不是看到“CUDA版本不匹配”“torch版本冲突”就头皮发麻&#xff1f;别急——今天这篇教程专为零基础用户…

作者头像 李华
网站建设 2026/3/22 11:04:29

一文说清ollydbg下载及安装中的杀软误报处理

以下是对您提供的博文《OllyDbg下载及安装中的杀软误报处理:技术原理、实践路径与安全可信构建》的 深度润色与专业重构版本 。本次优化严格遵循您的全部要求: ✅ 彻底去除AI痕迹,语言自然如资深安全工程师现场授课 ✅ 摒弃“引言/概述/总结”等模板化结构,全文以逻辑流…

作者头像 李华
网站建设 2026/4/10 5:54:50

YOLOv9自动化部署:CI/CD流水线集成最佳实践

YOLOv9自动化部署&#xff1a;CI/CD流水线集成最佳实践 你是否还在为每次模型更新后手动打包、测试、上传镜像而反复折腾&#xff1f;是否在团队协作中因环境不一致导致“在我机器上是好的”这类问题频发&#xff1f;YOLOv9作为当前目标检测领域备受关注的新一代架构&#xff…

作者头像 李华
网站建设 2026/4/13 1:42:34

Paraformer-large能否替代商业ASR?成本效益对比实战分析

Paraformer-large能否替代商业ASR&#xff1f;成本效益对比实战分析 1. 开篇&#xff1a;一个真实问题&#xff0c;正在被悄悄解决 你有没有遇到过这些场景&#xff1f; 做会议纪要时&#xff0c;录音长达2小时&#xff0c;外包转写报价300元/小时&#xff0c;等结果要一天&…

作者头像 李华