<!-- title: 影子核心网：运维人的练兵场 -->

## 概述

核心网运维最尴尬的现实是：练手的唯一“正规”场地，恰恰是最不允许出错的生产网。本文回答一个具体问题——不碰生产网，核心网工程师在哪里练割接、练排障、练读信令？答案是花一个下午，在手里任何一台旧电脑上搭一套全开源的“影子核心网”：Open5GS 扮演 5GC/EPC 全套核心网，UERANSIM 扮演基站和手机，Wireshark 扮演信令显微镜。本文从选件、搭网，到解剖一次注册失败、预演一次版本升级，给出一份可以照抄的运维练兵账本。文中所有组件、版本、论文编号均为真实可查项目，数据截至 2026 年 10 月。

## 目录

- 一、生产网不是练手场
- 二、四件开源货：采购清单
- 三、搭起来：影子网长什么样
- 四、实战一：解剖一次注册失败
- 五、实战二：割接前夜的升级预演
- 六、进阶：学术界拿它当靶场
- 七、边界：影子网练不了什么
- 八、结语：手不抖，是练出来的

## 一、生产网不是练手场

带了这么多年新人，我最深的体会是：核心网工程师的本事，九成是在“出事”的时候长出来的，可生产网偏偏不许你出事。割接窗口只有凌晨一点到五点，你敢在服务几百万用户的 AMF 上“先试一下”？故障复盘时，你敢把现场复现一遍？答案都是不敢。于是大家的真实成长路径变成：跟着老手看过几次，然后某天硬着头皮自己上——第一次独立操作就发生在凌晨两点的生产网上。

传统解法是真机实验室，但对大多数基层运维单位，真机实验室是奢侈品：一套商用 EPC/5GC 实验环境要专门机房、专门预算，最要命的是版本——生产网都跑到新版本了，实验室那套还停在三个版本之前，练了等于白练。

开源生态这两年的成熟度，把这个门槛踏平了。Open5GS 的仓库标题现在直接写着"C-language Open Source implementation for 5G Core and EPC (Release-19)"——这套开源核心网已跟着 3GPP 标准演进到 Release-19，GitHub 上约 2700 星、五千三百多次提交，社区相当活跃。配上开源的基站与终端仿真器，一套能完整跑通 5G 注册、鉴权、会话建立、数据转发的“影子核心网”，成本只剩一台旧笔记本和一个下午。

四类场景，影子网都能接住：割接升级前的流程预演、故障的信令级复现、新人的带教训练，以及最基础也最稀缺的——静下心来，从头到尾读一遍完整信令。

## 二、四件开源货：采购清单

**第一件，Open5GS，核心网本体。** C 语言写的 5GC 加 EPC 全家桶：AMF、SMF、UPF、UDM、UDR、PCF、AUSF、NRF、NSSF、BSF 这些 5G 网元一应俱全，也带 4G 时代的 MME、HSS、SGW/PGW，4G/5G 互操作能在同一个实验环境里练。签约数据存 MongoDB，配一个 Node.js 写的 WebUI，开卡销户点点鼠标。官方提供 deb 软件源、Docker 镜像和 meson 源码编译三条安装路径，Debian/Ubuntu 上一套 apt 拉起来。

**第二件，UERANSIM，基站和手机的仿真器。** 按仓库自述，这是“全球第一个开源的 5G SA 制式 UE 与 gNodeB 实现”，当前版本 v3.3.0。关键认知先说破：它不实现完整物理层，“空口”是用 UDP 报文模拟的。所以它能让你不买任何无线设备就跑通 NAS 层全部信令；这个特性同时划定了它的边界，第七节细说。

**第三件，OCUDU（原 srsRAN Project），真空口软件基站。** 如果想把“假空口”换成真空口——让一台真手机通过软件无线电真正入网——就需要它：开源 O-RAN CU/DU 实现，配 USRP B210 这类 SDR 硬件发射真实 5G 信号。这里有个 2026 年的新动态：srsRAN Project 已于 2025 年 12 月整体转入 Linux 基金会的 OCUDU 项目，原 GitHub 仓库自 2026 年 6 月 1 日起归档只读。新搭实验室建议直接从 OCUDU 起步，那个约 1.1k 星的旧仓库只作资料查阅用。

**第四件，Wireshark，信令显微镜。** NGAP、S1AP、NAS、PFCP、GTP-U、Diameter、SBI 的 HTTP/2 全都能解到字段级，免费跨平台，是影子网里性价比最高的一件。

| 组件 | 在影子网中扮演 | 关键事实（2026-10 实测） | 许可 |
| --- | --- | --- | --- |
| Open5GS | 5GC+EPC 核心网全套 | C语言，跟踪3GPP R19，约2700星 | AGPL-3.0，另有商业授权 |
| UERANSIM | 仿真 gNB 与 UE | v3.3.0，空口以UDP模拟，首个开源5G SA双端实现 | AGPL-3.0 加商业双许可 |
| OCUDU（原srsRAN Project） | 真空口软件 gNB | 2025年12月转入Linux基金会，原仓库2026年6月归档 | 以新仓库说明为准 |
| Wireshark | 信令抓包与解码 | NGAP、NAS、PFCP、GTP-U 解码到字段级 | 开源免费 |

顺带一张选型参考，免得你纠结。ICOIN 2025 发表的一项对比测试（arXiv:2412.21162）在同一 COTS 测试床上比较了三家主流开源 5GC：Open5GS 的控制面流程时延表现最好，OpenAirInterface 数据面速率最高，free5GC 资源消耗最低。练兵场景里控制面最要紧——信令就是你的一切，所以我默认推荐 Open5GS。

## 三、搭起来：影子网长什么样

```mermaid
flowchart TD
    UE["仿真终端<br/>UERANSIM UE"] -->|"NAS消息封装"| GNB["仿真基站<br/>UERANSIM gNB"]
    GNB -->|"NGAP 走SCTP 38412"| AMF["AMF 接入移动性"]
    AMF -->|"SBI 服务化接口"| NRF["NRF 注册中心"]
    AMF -->|"会话建立请求"| SMF["SMF 会话管理"]
    SMF -->|"PFCP 走UDP 8805"| UPF["UPF 用户面转发"]
    UPF -->|"GTP-U 走UDP 2152"| DN["外部数据网络"]
    DB["MongoDB 签约库"] -.-> AMF
    CAP["Wireshark 抓包点"] -.-> GNB
    CAP -.-> AMF
    CAP -.-> SMF
    CAP -.-> UPF
```

一台 Ubuntu 虚机（双核、4G 内存起步）就能把控制面全跑起来；用户面 UPF 需要加载 gtp5g 内核模块，官方文档有现成步骤。起网元的顺序本身就是一门课：先起 NRF——所有网元都要到它那里注册报到，再起 AMF、SMF、AUSF、UDM 这一串，最后起 UPF。这个“先有名字服务、再有业务网元”的次序，就是 5GC 服务化架构的运行逻辑，练的时候多问一句为什么，比背十遍 PPT 都管用。

再背一遍这套影子网的端口账本，都是 3GPP/IANA 的标准分配，真网上原样适用：NGAP 走 SCTP 38412（4G 的 S1AP 是 36412，别记混）；GTP-U 隧道走 UDP 2152；SMF 管 UPF 的 PFCP 走 UDP 8805；网元之间的 SBI 走 HTTP/2。日常抓包盯三个观察位：N2（gNB 到 AMF）、N4（SMF 到 UPF）、N3（UPF 出口）。信令排障的功夫，一半就练在这三个点位的取舍上。

## 四、实战一：解剖一次注册失败

这是新人的第一课，也是我自己练手最多的一课：故意把 UE 配置里的 PLMN（MCC/MNC）改成与网络侧不一致，让学员从抓包里找出“为什么注册不上”。

现象很直观：UE 反复发 Registration Request，AMF 冷冷回一张 Registration reject，UE 隔几秒再来一遍，周而复始。学员的第一反应往往是去翻 AMF 日志，而正确姿势是直接抓 N2 点位的包，Wireshark 里展开 NAS 层，5GMM cause 字段一目了然。把常见原因值练成条件反射，这张表值得打印贴在工位上：

| 原因值 | 含义 | 排查方向 | 出处 |
| --- | --- | --- | --- |
| #3 | Illegal UE | 鉴权上下文、号簿数据 | TS 24.501 |
| #7 | 5GS services not allowed | 签约状态、欠费停机 | TS 24.501 |
| #11 | PLMN not allowed | UE侧PLMN选择、漫游签约 | TS 24.501 |
| #13 | 本TA不允许漫游 | 漫游限制区域配置 | TS 24.501 |
| #15 | TA内无合适小区 | TA配置、小区状态、频点支持 | TS 24.501 |

```mermaid
flowchart TD
    A["影子网注册失败"] --> B["先看NAS拒绝原因值"]
    B -->|"原因11"| C["PLMN不允许<br/>查TAI与漫游配置"]
    B -->|"原因15"| D["TA内无合适小区<br/>查TA列表与频点"]
    B -->|"原因7"| E["业务不允许<br/>查签约与停机状态"]
    B -->|"原因3"| F["非法终端<br/>查鉴权与号簿"]
    B -->|"无NAS包"| G["信令未达核心网<br/>查SCTP与对时"]
```

这套练习的价值，到生产网上立刻兑现：注册成功率类告警的第一动作，就是把 NAS 拒绝原因值分桶统计——#11 扎堆查 PLMN 和漫游签约，#15 扎堆查 TA 和小区状态，一条 NAS 包都没有则查 SCTP 传输链路。十几年的排障经验，浓缩起来就是这张表加一个抓包习惯。

进阶一档的变体练习：把 gNB 配置里的 TAC 改错，复现 #15；在 WebUI 里把用户销户，复现鉴权后的拒绝链路；把 SMF 停掉，看 PDU Session Establishment 卡在哪一步、N4 口发生了什么。每一个变体都对应生产网上真实出现过的事故类型。你在影子网里亲手造一次，好过在生产网上第一次撞见。

## 五、实战二：割接前夜的升级预演

Open5GS 官方提供升级路径，社区文档会说明破坏性变更——但对你而言，重点不是这个项目升不升级，而是把“升级”这件事本身练成肌肉记忆。影子网就是割接预演场，一套可复用的七步剧本：

| 步骤 | 动作 | 要点 |
| --- | --- | --- |
| 1 | 冻结与公告 | 影子网也走完整流程，习惯成自然 |
| 2 | 备份 | 配置目录打包，mongodump 导出签约库 |
| 3 | 回滚点 | 虚机快照，回滚命令逐条写进清单 |
| 4 | 升级顺序 | 通用原则：先用户面后控制面 |
| 5 | 冒烟用例 | 注册、PDU会话、上下行连通，逐项打勾 |
| 6 | 回滚触发线 | 预设阈值，到线就回，不现场争论 |
| 7 | 复盘记录 | 耗时、偏差、意外现象，全部写下来 |

我的练法是同一个剧本跑三遍：第一遍练顺序和手熟；第二遍故意砸——升级到一半 kill 掉 SMF，看注册卡在哪一步、已在线用户受不受影响，观察影子网是怎么烂掉的；第三遍掐表练回滚，从决定回滚到冒烟通过，时间要一次比一次短。三遍跑完，真割接夜你才敢说一句“这个现象我见过”。

心里还要有个量级感，论文实测可以当参考基准：开源环境里 Open5GS 的中位注册时延约 403 至 606 毫秒（arXiv:2603.27618）；容器化 Open5GS 上 N4 口 PFCP 会话修改时延稳定在 200 微秒以内，不随数据面负载明显波动（arXiv:2605.28185）。影子网冒烟时，如果注册时延或会话建立行为明显偏离这类量级，先别急着往下走，停下来看包。

## 六、进阶：学术界拿它当靶场

别以为影子网只是玩具。翻翻最近的论文库，Open5GS 加 UERANSIM 已经是 5G 安全与控制面研究的标准试验床配置。

2026 年 8 月挂在 arXiv 的 Drishti 工作（arXiv:2608.30112，已被 ACM CCS 下属安全研讨会 CPSIoTSec 2026 录用）用 AI 辅助加人工把关的方式审计开源 5G 核心网，战果可以直接让你感受这个领域的深浅：Open5GS 的 NRF 多部分解析器里存在一个鉴权前的空指针缺陷，上游已修复并申请 CVE；同门 free5GC 更刺激，NGAP 解码器存在内存放大问题，恶意 gNB 发来的 2 字节输入，6.2 秒就能把 AMF 打到内存耗尽、被内核杀掉；还有 CVE-2025-69248 的既有补丁，其纵深防御检查在鉴权前是一段死代码——补了个寂寞。

这对运维人的启示非常具体：公开漏洞可以在物理隔离的影子网里安全复现，亲眼看一次攻击包长什么样、补丁前后的报文差异在哪。真网上出现类似苗头，你认得出来。2026 年 9 月还有团队把 AI Agent 的控制决策闭环直接架在 Open5GS/UERANSIM 试验床上做类型安全验证（arXiv:2609.33689）——连“AI 上岗前先上试验床练手”这条路，走的也是这套开源组合。

## 七、边界：影子网练不了什么

丑话说足，四条边界。

**第一，空口是假的。** UERANSIM 官方文档写得明明白白：不完整提供物理层，5G-NR 无线接口仅部分实现，以 UDP 报文简单模拟。所以射频类问题——干扰、覆盖、PCI 冲突、波束管理——影子网练不了。要碰真空口，上 OCUDU 配 USRP 这类 SDR 硬件：2026 年 MILCOM 录用的一篇战术 5G 论文（arXiv:2608.11293）就是在 B210 真空口测试床上做的，那是另一个预算档位的玩法。

**第二，规模结论别外推。** 影子网跑十几个 UE 没问题，但单机内存里的 AMF 扛不住十万级注册风暴，任何压测数字都只在它自己的量级里成立。

**第三，复杂域不在默认安装里。** IMS 语音、国际漫游、异网互联这些重运营领域，开源核心网默认不带或只有骨架。另外商用厂家的实现细节与开源实现必有差异，标准允许多种实现，具体行为以各厂家官方文档为准——影子网练的是标准协议的判断力，不是某台设备的按键顺序。

**第四，靶场纪律。** 做漏洞复现必须物理隔离，影子网不是免检通行证，安全研究的隔离规范同样适用于它。

## 八、结语：手不抖，是练出来的

十八年里我见过太多凌晨的割接窗口。手不抖的人，不是胆子大，而是类似的现象他在别处已经见过几百次。以前，那个“别处”是一间放满插箱的真机实验室；现在，它可以是一台旧笔记本上跑着的开源影子核心网。

一个下午的装机时间，换来的账单是这样的：读懂一套完整注册信令的能力、一张贴在工位上的拒绝原因值表、三遍跑熟的割接剧本，以及看见畸形报文时那零点几秒的警觉。生产网永远不该是练手场——从今天起，也别再让它变成你的第一现场。

## 参考来源

1. [Open5GS 官方文档与代码仓库](https://open5gs.org) — 安装指南、网元配置与升级说明（仓库 github.com/open5gs/open5gs，约2700星，AGPL-3.0，跟踪3GPP R19）
2. [UERANSIM 代码仓库](https://github.com/aligungr/UERANSIM) — 开源 5G UE 与 gNodeB 仿真器，v3.3.0，官方说明空口以 UDP 模拟
3. [srsRAN Project 仓库（已归档，转入 OCUDU）](https://github.com/srsRAN/srsRAN_Project) — 2025年12月项目转移、2026年6月归档的官方公告
4. [Drishti: AI-Led Human-Directed Vulnerability Auditing for 5G Cores（arXiv:2608.30112）](https://arxiv.org/abs/2608.30112) — 开源 5GC 漏洞审计，CPSIoTSec 2026 录用
5. [Open-Source 5G Core Platforms: A Low-Cost Solution and Performance Evaluation（arXiv:2412.21162）](https://arxiv.org/abs/2412.21162) — ICOIN 2025，三家开源 5GC 同一测试床横评

---
> 本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵**爱卫生**（微信ID: gprshome201101）维护，聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。
> 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
