设备:ubuntu24.04

核心网搭建步骤地址:https://gitlab.eurecom.fr/oai/openairinterface5g/-/blob/develop/doc/NR_SA_Tutorial_OAI_CN5G.md?ref_type=heads

步骤解释:

1. 安装常用工具

sudo apt install -y git net-tools putty
  • git → 代码管理工具,用于克隆仓库。

  • net-tools → 包含 ifconfignetstat 等经典网络命令(新系统默认没有)。

  • putty → SSH/Telnet 客户端(在 Linux 上用得少,主要是 Windows 常用)。

  • -y → 自动确认,不需要手动输入 y

2. 更新 apt 包索引

sudo apt update

3. 安装依赖

sudo apt install -y ca-certificates curl
  • ca-certificates → 系统根证书,确保 HTTPS 请求能验证对方身份。

  • curl → 下载工具,用来获取 Docker 官方 GPG key。

4. 创建 apt keyrings 目录

sudo install -m 0755 -d /etc/apt/keyrings
  • /etc/apt/keyrings 下创建目录,权限 0755(所有人可读,只有 root 可写)。

  • apt 推荐把第三方仓库的 GPG key 放到这里,而不是老版本的 /etc/apt/trusted.gpg

5. 下载 Docker 官方 GPG key

sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
  • 从 Docker 官方下载 GPG 签名公钥,用于验证 Docker 包的来源。

  • 保存到 /etc/apt/keyrings/docker.asc

这一步可能出现问题:

多尝试几次就好,可以去 /etc/apt/keyrings路径中看docker.asc是否成功保存。

6. 修改 GPG key 文件权限

sudo chmod a+r /etc/apt/keyrings/docker.asc

让所有用户都能读取 key 文件,否则 apt 可能没权限验证签名。

7. 添加 Docker 官方 apt 源

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  • dpkg --print-architecture → 获取系统架构,比如 amd64arm64

  • . /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}" → 获取 Ubuntu 代号,比如 jammy (22.04)、focal (20.04)。

  • signed-by=/etc/apt/keyrings/docker.asc → 指定用刚才下载的 GPG key 验证。

  • 把完整配置写到 /etc/apt/sources.list.d/docker.list,这样 apt 就知道从哪里下载 Docker 包。

8. 更新 apt

sudo apt update

9. 安装 Docker 相关组件

sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  • docker-ce → Docker 社区版引擎。

  • docker-ce-cli → Docker 命令行工具。

  • containerd.io → 容器运行时(Docker 底层依赖)。

  • docker-buildx-plugindocker buildx 扩展,支持多架构构建。

  • docker-compose-plugindocker compose 子命令(新版 Compose 插件)。

10.把当前用户加入 docker 用户组

sudo usermod -a -G docker $(whoami)

把当前用户加入 docker 组,就能直接用 docker 命令,而不用每次写 sudo

11.重启

reboot
  • 用户组权限修改要在重新登录后才生效。

  • 重启机器后,你的用户就能直接运行 docker ps 等命令了。

12.下载OAI CN5G 配置文件

wget -O ~/oai-cn5g.zip https://gitlab.eurecom.fr/oai/openairinterface5g/-/archive/develop/openairinterface5g-develop.zip?path=doc/tutorial_resources/oai-cn5g
  • wget → 下载文件工具。

  • -O ~/oai-cn5g.zip → 把下载的文件保存到 ~/oai-cn5g.zip

  • URL → 这是 OAI GitLab 上 openairinterface5g 项目 develop 分支的一个 部分源码压缩包,只包含 doc/tutorial_resources/oai-cn5g 这个路径。

13.解压 zip

unzip ~/oai-cn5g.zip

14.移动资源目录

mv ~/openairinterface5g-develop-doc-tutorial_resources-oai-cn5g/doc/tutorial_resources/oai-cn5g ~/oai-cn5g

15.删除临时文件

rm -r ~/openairinterface5g-develop-doc-tutorial_resources-oai-cn5g ~/oai-cn5g.zip

最后只保留 ~/oai-cn5g

16.拉取镜像

cd ~/oai-cn5g
docker compose pull

如果挂了梯子,那么这一步大概率出问题,因为docker不会走我们设置的代理,因此会出现类似下图的网络错误:

解决办法:为docker设置我们的代理:

(1)查看自己梯子的代理地址和端口:

(2)创建系统d目录:

sudo mkdir -p /etc/systemd/system/docker.service.d

(3)创建代理配置文件:

sudo nano /etc/systemd/system/docker.service.d/proxy.conf

(4)在文件中添加:

[Service]
Environment="HTTP_PROXY=http://your-proxy:port/"       # 这里的your-proxy:port改为查到的代理服务地址
Environment="HTTPS_PROXY=http://your-proxy:port/"     # 这里的your-proxy:port改为查到的代理服务地址
Environment="NO_PROXY=localhost,
127.0.0.1,192.168.0.0/16,10.0.0.0/8,172.16.0.0/12"       # 排除了本地回环和局域内网

例如我的写为:

[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7897/"
Environment="HTTPS_PROXY=http://127.0.0.1:7897/"
Environment="NO_PROXY=localhost,127.0.0.1,192.168.0.0/16,10.0.0.0/8,172.16.0.0/12"

按 Ctrl+O 保存,按 Enter 确认,再按 Ctrl+X 退出。

(5)重启 Docker:

sudo systemctl daemon-reexec
sudo systemctl restart docker

(6)验证 Docker 是否走代理:

docker info | grep -i proxy

出现与设置一致的结果:

(7)再次尝试拉取:

docker compose pull

拉取成功:

17.启动OAI CN5G

cd ~/oai-cn5g
docker compose up -d

18.停止OAI CN5G

cd ~/oai-cn5g
docker compose down


进一步搭建gnb/ue的笔记:https://blog.csdn.net/zwj202101/article/details/151227395?fromshare=blogdetail&sharetype=blogdetail&sharerId=151227395&sharerefer=PC&sharesource=zwj202101&sharefrom=from_link

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐