构建指南:Free5gc
获取中... 获取中...
Free5GC 简介
free5GC 是第五代 (5G) 移动核心网络的开源项目。该项目的最终目标是实现 3GPP Release 15 (R15) 及更高版本中定义的 5G 核心网络 (5GC)。目前,主要贡献者来自国立阳明交通大学(NYCU)。
Free5GC采用当前较为流行的Go语言进行编写,在性能上会比传统基于C/C++编写的核心网更强,同时Free5GC有较多的国人与台湾同胞开发者,在语言沟通上、社区氛围更贴近国内开发者,因此Free5GC成为了部署核心网的一个优秀选项。
Free5GC的安装
Free5GC的安装包含三部分:其一是依赖库,其二是源码编译以及一个web端的核心网可视化管理页面。本文写于2024年8月,当你阅读到这时可能已经发生版本更新。但是这也没关系,你依然可以参考官方的 安装文档 进行最新版本的安装,我这里推荐使用v3.3.0
版本的,因为这个版本经过测试可以在18.04至24.04的Ubuntu上工作。非v3.3.0版本安装,请严格参考官方的安装文档,否则会造成严重的问题!
前置依赖安装
Golang 安装
。Free5gc使用Go 1.17.8构建,因此需要先安装该版本的Golang,当然可以使用最新版的Go。1
2
3
4
5
6
7
8
9wget https://dl.google.com/go/go1.17.8.linux-amd64.tar.gz
sudo tar -C /usr/local -zxvf go1.17.8.linux-amd64.tar.gz
mkdir -p ~/go/{bin,pkg,src}
# The following assume that your shell is bash
echo 'export GOPATH=$HOME/go' >> ~/.bashrc
echo 'export GOROOT=/usr/local/go' >> ~/.bashrc
echo 'export PATH=$PATH:$GOPATH/bin:$GOROOT/bin' >> ~/.bashrc
echo 'export GO111MODULE=auto' >> ~/.bashrc
source ~/.bashrc数据库依赖
: Free5GC使用MongoDB作为数据库。从这一步开始,请再次确认你打算安装的Free5GC的版本,如果你确定使用v3.3.0版本,那么请继续往下;否则,请参考官方文档进行安装。
1 | sudo apt -y update |
控制面依赖
: 控制面依赖主要是为GTP相关模块的编译做准备的。使用如下命令安装编译GTP模块的依赖:
1 | sudo apt -y update |
源码下载与编译
使用如下命令下载源代码。注意v3.3.0
就是下载的Free5GC的版本。下载时,请保障下载的终端具备科学上网的能力,否则可能会出现部分网元子仓库下载但有些网元仓库没下载的情况。
1 | cd ~ |
如果有仓库克隆失败,那么使用 sudo rm -rf free5gc
删除掉目录下free5gc
文件夹重新运行上述命令重新下载。当所有代码下载成功后,下一步是编译相关代码。
1 | cd ~/free5gc |
注意如果出现了编译失败,有可能是在上一步的源码下载部分出现问题,也可能是代理终端出现问题:该项目的编译需要依赖一定的科学上网条件进行编译(很抽象,但这就是Golang)。当代码编译完成后,我们还需要再编译GTP模块。在编译GTP前,请注意关闭掉硬件中的安全启动选项,否则会编译失败:
1 | cd ~ |
WebConsole安装
Webconsole可用于增删改查UE注册信息,提供简单边界的操作接口管理核心网用户。使用如下命令安装前置,主要是Node
和Yarn
。
1 | sudo apt install curl |
当一切就绪后,如下命令编译Webconsole:
1 | cd ~/free5gc |
简单使用
使用如下的命令可以简单验证系统是否成功安装。
运行WebConsole
1 | cd ~/free5gc/webconsole |
打开浏览器跳转至 http://127.0.0.1:5000
端口,输入账户 admin
和密码 free5gc
,如果成功进入则说明控制台成功安装并运行。
此时如果出现白屏,则有可能是部分资源未能成功从CDN处加载。挂上梯子后再刷新页面:
运行Free5gc核心网
新建一个终端,输入如下指令:
1 | cd ~/free5gc |
如果没有报错,则说明核心网启动无恙。不要关闭该终端,否则整个核心网会有部分网元停止运行。
退出Free5gc核心网
如果在启动Free5gc核心网时遇到问题,在按下ctrl+c
后还需关闭掉其他的一些已启动的进程:
1 | cd ~/free5gc |