打不开界面或登录不了
按现象查找。命令都在运行 nSIM 的主机上执行,路径以 /opt/nsim 为例。
浏览器打不开管理界面
Section titled “浏览器打不开管理界面”先在主机上执行:
curl -fsS http://127.0.0.1:7575/ready可能的原因与处理:
- 命令没有任何响应:nSIM 没在运行。用
docker compose logs --tail 50或journalctl -u nsim -n 50看最后几行的报错。 - 返回 503:nSIM 在运行,但还没就绪。见
/ready一直返回 503。 - 主机上返回
ok,别的电脑打不开:主机防火墙没放行端口,默认是 TCP 7575。 - 改过端口:Docker 部署用的是 host 网络,端口只认配置文件里的
server.port。compose 里写的ports:不起作用。 server.port写成了"127.0.0.1:7575":这时只能从主机本机访问。别的电脑要经反向代理,见放到 HTTPS 反向代理后面。
/ready 一直返回 503
Section titled “/ready 一直返回 503”响应里的 checks 写着每一项的状态,不是 ok 的那项就是原因。
| 项 | 值 | 原因与处理 |
|---|---|---|
startup |
in_progress |
还在启动,要枚举模组、建立 VoWiFi 连接。模组多时要一两分钟,稍等再试。 |
shutdown |
in_progress |
正在退出或重启,等它重新起来。 |
database |
failing |
数据库打不开。看日志里的报错,常见原因是磁盘满了。 |
data_dir |
failing |
数据目录不可写。检查磁盘空间,以及 data 目录的权限和挂载。 |
改了端口后容器一直显示 unhealthy
Section titled “改了端口后容器一直显示 unhealthy”镜像自带的健康检查固定访问 7575 端口,改了 server.port 后就一直失败。nSIM 本身不受影响,Docker 也不会因此重启容器。
要让状态正确,在 docker-compose.yml 的 nsim 下加一段,把 8080 换成你的端口:
healthcheck: test: ["CMD", "wget", "-q", "-O", "/dev/null", "http://127.0.0.1:8080/ready"]然后执行 docker compose up -d。
提示「用户名或密码错误」
Section titled “提示「用户名或密码错误」”可能的原因:用户名或口令和配置文件里的不一致。在界面改过口令后,配置文件里的 password 会变成一串加密后的哈希,不再是明文。
怎么处理:不要反复尝试,从第 5 次失败起账号会被锁定。确实忘了口令时,按忘记口令重设。
提示「登录尝试过于频繁,请稍后再试」
Section titled “提示「登录尝试过于频繁,请稍后再试」”可能的原因:
- 账号被锁定。从第 5 次失败起锁定,先锁 1 分钟,之后每次翻倍,最长 30 分钟。锁定期间输入正确的口令也会被拒,重启 nSIM 也不会解锁。哪些算失败、何时清零,见登录失败锁定。
- 同一个来源地址 2 分钟内尝试登录超过 10 次。这道限流重启 nSIM 后清零。
怎么处理:
- 有另一台设备还登录着时,在那台设备上打开「设置 › 账号与安全」。在「登录中的设备」里的「登录失败」一行,点「解除锁定」。
- 没有的话,等锁定到期,期间不要再试。锁定后再输错,下一次锁定时间会翻倍。最后一次失败后 24 小时内没有新的失败,失败次数清零。
自己没输错过却总被锁定,说明有人在试你的口令。不要把 nSIM 直接暴露在公网,见放到 HTTPS 反向代理后面。
登录后只能改口令,别的都用不了
Section titled “登录后只能改口令,别的都用不了”原因:用出厂口令 admin 或示例配置里的 change-me 登录了。这时 nSIM 只允许改口令。
怎么处理:在「设置新密码」页设一个新口令,见第一次登录与初始设置。
nSIM 只有一个账号,没有「找回密码」。口令在主机上的配置文件里重设:
- 编辑配置文件,把
web段的password改成新的明文口令。 - 重启 nSIM:
docker compose restart或systemctl restart nsim。 - 用新口令登录。
身份验证器丢了
Section titled “身份验证器丢了”怎么处理:
-
有恢复码:在登录的验证码一栏输入一个恢复码,每个只能用一次。登录后重新绑定身份验证器,见开启两步验证。
-
同时开了通知渠道验证码:在验证码页点「改用通知渠道验证码」。
-
两样都没有:只能在主机上删掉身份验证器的绑定。主机上要有
sqlite3命令。终端窗口 cd /opt/nsimdocker compose stop # 二进制部署:systemctl stop nsimcp data/nsim.db data/nsim.db.baksqlite3 data/nsim.db "DELETE FROM user_totp;"docker compose start # 二进制部署:systemctl start nsim之后登录只要输入口令。进去后重新绑定身份验证器。
收不到登录验证码
Section titled “收不到登录验证码”可能的原因:开了通知渠道验证码,但那个渠道发不出消息,例如 token 过期或网络不通。
怎么处理:
- 编辑配置文件,把
web.two_factor.enabled改成false。 - 重启 nSIM,只用口令登录。
- 在「设置 › 通知」里修好那个渠道,测试能收到后,再重新开启验证码。
经反向代理打开后,界面不自动更新
Section titled “经反向代理打开后,界面不自动更新”现象:页面能打开,但设备状态、新短信、日志都不自动出现,来电不弹出。
原因:反向代理缓冲了实时推送用的长连接,或者过早断开了它。
怎么处理:在代理配置里关闭缓冲、加长读超时。nginx 的写法见放到 HTTPS 反向代理后面。