跳转到内容

用二进制文件安装

不想用 Docker 时,按这一页把 nSIM 程序直接装到 Linux 主机上。systemd 负责开机自启,以及崩溃后重新拉起。

  • 一台使用 systemd 的 Linux 主机,CPU 架构是 amd64、arm64 或 armv7。完整要求见支持的模组与主机。
  • 至少一台模组已经用 USB 接到这台主机,ls /dev/ttyUSB* 能列出设备。
  • 从 <发布地址待定> 下载与主机架构对应的程序,文件名形如 nsim_<版本>_linux_amd64。

下面的命令都以 root 身份执行。

终端窗口
install -d -m 0755 /opt/nsim
install -d -m 0700 /opt/nsim/config /opt/nsim/data /opt/nsim/logs
install -m 0755 nsim_<版本>_linux_amd64 /opt/nsim/nsim

新建 /opt/nsim/config/config.yaml:

server:
port: 7575
web:
username: admin
password: 换成你自己的长口令

web.password 是管理界面的登录口令,可以写明文。启动前就把它改掉。口令仍是 admin 或 change-me 时,谁能访问这台主机,谁就能抢先登录并改掉口令。

终端窗口
chmod 600 /opt/nsim/config/config.yaml

其余配置项都有默认值,见配置文件。

nSIM 借 libqmi 里的 qmi-proxy,让多个功能共用模组的控制口。管理 eSIM 时尤其需要它。缺了它不会报错,只会悄悄退回直连,eSIM 操作可能因此失败。

  1. 在 Debian 或 Ubuntu 上安装:

    终端窗口
    apt install libqmi-proxy libqmi-utils
  2. 确认程序在默认位置:

    终端窗口
    ls -l /usr/libexec/qmi-proxy

    发行版把它装在别处时,在设备配置里写 qmi_proxy_executable,见配置文件。

新建 /etc/systemd/system/nsim.service:

[Unit]
Description=nSIM
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
WorkingDirectory=/opt/nsim
ExecStart=/opt/nsim/nsim -c /opt/nsim/config/config.yaml
User=root
Group=root
Restart=always
RestartSec=5
KillSignal=SIGTERM
TimeoutStopSec=20
KillMode=mixed
LimitNOFILE=65536
StandardOutput=journal
StandardError=journal
SyslogIdentifier=nsim
Environment=TZ=Asia/Shanghai
[Install]
WantedBy=multi-user.target

这几行不要随手改:

设置 为什么
WorkingDirectory 数据库固定在工作目录下的 data/nsim.db,日志在 logs/。换了工作目录,就等于换了一个空数据库。
User=root 把代理绑到模组网卡、配置模组网卡、重置 USB 端口都需要 root。
TimeoutStopSec=20、KillMode=mixed nSIM 退出时要先让每台模组释放连接,最长约 12 秒。被提前强行结束,模组上会留下释放不掉的连接,积多了只能重启模组。
LimitNOFILE=65536 多张卡同时跑代理时,默认的 1024 个文件句柄不够用。

TZ 改成你所在的时区。不要加 HTTP_PROXY 或 HTTPS_PROXY 环境变量:它们会把 nSIM 的全部出站请求塞进同一个代理。

终端窗口
systemctl daemon-reload
systemctl enable --now nsim
  1. 在主机上执行:

    终端窗口
    curl -fsS http://127.0.0.1:7575/ready

    返回 "status":"ok" 就是已就绪。启动后的一两分钟里返回 503 是正常的,稍等再试。

  2. 执行 systemctl status nsim,状态应为 active (running)。

  3. 在另一台电脑的浏览器里打开 http://<主机地址>:7575,能看到登录页。

程序输出用 journalctl -u nsim -f 查看;同样的内容也按天写进 /opt/nsim/logs/app.log。日志里出现「安全警告」,说明口令还是出厂值,改好配置文件后执行 systemctl restart nsim。

要用 USB 读卡器管理卡的,读卡器的准备见用 USB 读卡器管理卡。