dswqgu 发表于 2025-10-21 02:51:26

使用 srsLTE 构建 LTE 网络并编程自己的 USIM 卡

本帖所发布的资源和文章均来自网络,仅限用于学习和研究目的,不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负!
https://m.360buyimg.com/i/jfs/t1/297524/33/24112/88671/68f68330F469da8d9/c7ed1031bcb1e94d.png## 要求

- 一台 Linux(最好是 Ubuntu 16.04.4 桌面版 64 位)机器(i5 双核 CPU 即可,最好有 USB 3.0 端口)
- 一款支持 Ettus Universal Hardware Driver (UHD)或 bladeRF 驱动的软件定义无线电(SDR)板,例如 USRP B210
- 一台运行闭源 USIM 卡编程软件的 Windows 机器
- 一个兼容 (https://en.wikipedia.org/wiki/PC/SC) 的 SIM 卡读卡器,例如 MCR3512
- 一张与编程软件兼容的 USIM 卡
- 一个 LTE 手机,比如 Oneplus One

## 构建

> srsLTE 是 SRS (www.softwareradiosystems.com) 开发的免费开源 LTE 软件套件。

在三个著名的开源 LTE 协议栈(openLTE、srsLTE 和 OpenAirInterface)中,我发现 srsLTE 兼具 openLTE 的代码优雅性和 OpenAirInterface 的完整性。

使用 srsLTE,我们可以在单台 PC 上运行一个 LTE 网络(eNodeB、MME、HSS 和 S/P-GW)。

在一个全新安装的 64 位 Ubuntu 16.04.4 桌面机器上,使用以下命令安装所需的库:

```
sudo apt-get install cmake libfftw3-dev libmbedtls-dev libboost-program-options-dev libconfig++-dev libsctp-dev
```

然后为我们的 USRP B210 安装 UHD 驱动程序:

```
sudo apt-get install libuhd-dev libuhd003 uhd-host
```

接下来,使用非 root 用户在主目录中下载并构建 srsLTE:

```
cd ~
git clone https://github.com/srsLTE/srsLTE.git
cd srsLTE
mkdir build
cd build
cmake ../
make
make test
sudo make install
```

## 配置

切换回源目录。

```
cd ~/srsLTE
```

### srsEPC

```
cp srsepc/epc.conf.example srsepc/epc.conf
cp srsepc/user_db.csv.example srsepc/user_db.csv
```

### srsENB

```
cp srsenb/enb.conf.example srsenb/enb.conf
cp srsenb/rr.conf.example srsenb/rr.conf
cp srsenb/sib.conf.example srsenb/sib.conf
cp srsenb/drb.conf.example srsenb/drb.conf
```

## 运行

```
cd ~/srsLTE/srsepc
sudo srsepc epc.conf
```

打开另一个终端:

```
cd ~/srsLTE/srsenb
sudo srsenb enb.conf
```

您也可以调整 epc.conf 或 enb.conf 文件,例如更改 MCC 和 MNC,或 DNS 地址。

**注意:** UE 数据库文件(user_db.csv)必须与运行 srsepc 命令的目录在同一目录下。

从你的手机上搜索“可用网络”,你应该能在本地网络中看到定制的 4G 网络。

!(https://m.360buyimg.com/i/jfs/t1/342543/35/15094/160049/68f68365F23bd9c4c/17413d58811337b2.png)

## USIM 卡

USIM 卡是一个复杂的封闭系统。

通常情况下,你无法使用像 (https://github.com/osmocom/pysim) 这样的开源软件来编程在线购买的空白 USIM 卡,因为不同制造商对 USIM 标准有不同的实现。

如果你没有 pySIM 支持的 USIM 卡,例如 (http://shop.sysmocom.de/products/sysmousim-sjs1)、GrcardSIM、GrcardSIM2 和 MagicSIM,则需要闭源软件,而且大多数情况下,该软件是基于 Windows 的。

另一种方法是直接请卖家为你编程 USIM 卡。eBay 和淘宝上都有很多这样的卖家。

只需确保 ICCID、IMSI、KI 和 OP/OPc 等参数已正确编程。

### 节省 150 元

我从[淘宝](https://item.taobao.com/item.htm?id=564708442949)上买了一张 USIM 卡,花了 30 元。USIM 卡读卡器和编程软件加起来花了 150 元。

!(https://m.360buyimg.com/i/jfs/t1/349965/37/15596/106817/68f68385Fd0d78901/9bee7fdc3637cfdb.png)

注意:如果此链接失效,只需在淘宝上搜索“openlte”即可。

看来我得为此至少花 180 元。

别急!

在翻阅了中国的程序员网站 CSDN 后,我发现了一篇[有趣的帖子 ](https://blog.csdn.net/u013429928/article/details/75319585)。

博主使用的 USIM 卡编程软件和淘宝店里的图片一样,尽管后者有很重的水印。

!(https://m.360buyimg.com/i/jfs/t1/348852/33/14846/377925/68f68401F6dbe9a12/6f5475221789b240.png)

两张截图都显示,USIM 编程软件名为 `SIM Personalize tools(Copyright: GreenCard Co.,Ltd Ver 3.1.0)` 。它们甚至是同一版本!

博主已将配置文件和编程软件都上传至 CSDN,但只提供了[参数配置文件](https://download.csdn.net/download/u013429928/10137875)的下载链接。

我已经设法找到了编程软件的下载链接[在这里 ](https://download.csdn.net/download/u013429928/10125492)。

不幸的是,像大多数中文网站一样,CSDN 需要积分才能下载。

幸运的是,淘宝上有许多卖家提供 CSDN 下载服务,无论 CSDN 需要多少积分,费用都不到 3 元。

为了省事,我决定[在这里](https://mega.nz/#!KG5VCSxI!W8-nxXkc5cqQ8Bk1GFvinyNltKJuMZ7kgTIk-xCKaBs)提供它。为了安全起见,你最好用一些杀毒软件扫描一下:)

对于 USIM 读卡器,任何兼容 PC/SC 的智能卡读卡器都可以。

### 烧录 USIM 卡

在 Windows 10 上,只需插入智能卡读卡器,Windows 就会负责安装所需的驱动程序。

然后,打开 SIM Personalize 工具 `GRSIMWrite.exe`,点击 `Read Card`,它应该能够无错误地读取存储的参数。

!(https://m.360buyimg.com/i/jfs/t1/331746/9/25575/25563/68f68424Fee457509/1e899ce23b1dfcc1.png)

接下来,随心所欲地写入卡片。

对于 srsLTE,请确保 IMSI、KI 和 **OP** 值与 `user_db.csv` 文件中的值相同。

## 启用 IP 网络

使用上面编程的 USIM 卡,您应该能够连接到 LTE 网络。

要浏览互联网:

```
cd ~/srsLTE/srsepc
sudo su
./if_masq.sh
```

你可以使用 `ifconfig` 获取机器上的所有网络接口,请确保将连接到互联网的接口名称提供给 `if_masq.sh`。

**注意:** 不要使用 `sudo` 运行 if_masq.sh,它在 Ubuntu 上不起作用。

srsEPC 创建一个虚拟网络接口 `srs_spgw_sgi`,IP 地址为 `172.16.0.0/24`。你的手机应该能够获得像 `172.16.0.2` 这样的 IP 地址。

!(https://m.360buyimg.com/i/jfs/t1/338993/26/22344/42674/68f6843aFb9f5bb06/cf13842288d53569.png)

`if_masq.sh` 脚本为我们的 Ubuntu 系统启用 IP 转发,并通过连接到互联网的接口,对来自 `srs_spgw_sgi` 的流量进行伪装。

接下来,在手机的蜂窝网络设置中添加一个接入点名称(APN)。

!(https://m.360buyimg.com/i/jfs/t1/335231/8/15432/12757/68f6845cF3d5ad7c0/1ae7e827a123960c.png)!(https://m.360buyimg.com/i/jfs/t1/337103/2/22410/30323/68f68462Fe5535376/a530859d655497ab.png)

只需要填写两个字段,第一个 `name` 可以随意填写;第二个 `APN` 需要与 `epc.conf` 中的设置相同,默认为 **srsapn**。

现在,你可以像使用 Wi-Fi 一样,通过定制的 LTE 网络上网了!

`Verizon` 服务提供商名称(SPN)值已在 USIM 卡中设置。

!(https://img.meituan.net/csc/5e54689f908bb54b9526f21cf41de49d2526764.png)

使用来自 Netflix 的 (https://play.google.com/store/apps/details?id=com.netflix.Speedtest) 进行速度测试。

!(https://m.360buyimg.com/i/jfs/t1/245812/3/35799/129343/68f68492Fe75688b1/c7ad73e9f7eb5a7d.png)

## 参考

- https://github.com/srsLTE/srsLTE
- https://sourceforge.net/p/openlte/wiki/Programming%20you%20own%20USIM%20card/
- https://blog.csdn.net/u013429928/article/details/75319585
- https://cyberloginit.com/2018/05/03/build-a-lte-network-with-srslte-and-program-your-own-usim-card.html

ahqier 发表于 2025-10-21 07:06:25

是不是在找到esim发卡服务器就可以实现写卡了

hqs 发表于 2025-10-21 07:17:26

相当于自建基站自己发卡当运营商啊😂

syee 发表于 2025-10-21 08:45:20

太高深了

qh7 发表于 2025-10-21 09:11:30

{tieba27} 牛啊

mynuolr 发表于 2025-10-21 09:34:14

{tieba27}玩这么大

includeW 发表于 2025-10-21 12:18:37

太高级了看不懂

HYmoe 发表于 2025-10-21 21:17:28

牛啊大佬{tieba42}

Zy143L 发表于 2025-10-21 22:08:36

这..有点年头了 要不要讲讲OpenNR啊

ahqier 发表于 2025-10-21 22:27:02

Zy143L 发表于 2025-10-21 22:08
这..有点年头了 要不要讲讲OpenNR啊

4g还不够用啊

Srasnx 发表于 2025-10-22 22:06:09

虽然看的坑坑洼洼的,mark一下回去再研究研究{tieba14}

xrh0905 发表于 2025-10-23 00:53:16

ahqier 发表于 2025-10-21 07:06
是不是在找到esim发卡服务器就可以实现写卡了

参考6055用simlessly试试?

XTian 发表于 2025-10-26 14:01:59

还能这么玩吗? 学习

Zy143L 发表于 2025-10-26 16:42:40

ahqier 发表于 2025-10-21 22:27
4g还不够用啊

有一股很浓的机翻味

sound886 发表于 2025-10-26 22:52:15

如果出门了还能连接到吗?

nnas 发表于 2025-10-27 06:02:49

这个太厉害了

lzh168668 发表于 2025-11-4 10:14:11

小范围试验好了,搞大了范围会被无线电管理部门找上门的。

87036886 发表于 2025-11-4 18:26:16

感谢大佬分享

Mr.Z 发表于 2025-11-11 07:53:12

有点牛啊

youfak 发表于 2025-11-11 10:27:31

做大做强,自己当运营商
页: [1] 2
查看完整版本: 使用 srsLTE 构建 LTE 网络并编程自己的 USIM 卡