AI摘要

飞牛OS更新后无法登录问题的解决步骤:检查服务状态、排查PostgreSQL启动失败原因、释放被占用的5432端口、启动PostgreSQL并验证、启动License服务、设置开机自启。

前言

在25年11月,我将飞牛os从0.9.35更新到1.x.x后,发现登不进去了。然后我一直怀疑是飞牛frpc服务未重启,就让家里人手动重启了几次,但都不行。最后也是在寒假第一天晚上修复了,不是frp的问题。


问题现象

  • 浏览器访问 Web 界面时卡在登录页
    2026-01-16T15:17:01.png
  • 控制台报错:

    GET http://192.168.1.9:5666/license/v1/device/baseInfo 502 (Bad Gateway)
  • SSH 登录后发现 trim_license.service 反复崩溃
    2026-01-16T14:10:25.png

解决步骤

第一步:确认核心服务状态

# 检查飞牛相关服务
systemctl list-units --type=service | grep trim

# 检查 Nginx(应为 running)
systemctl status nginx

# 检查 PostgreSQL 是否安装
systemctl list-unit-files | grep postgresql
预期输出:存在 postgresql.service 且为 enabled,但 trim_licenseinactive 或反复重启。

2026-01-16T14:37:36.png

第二步:检查 PostgreSQL 集群状态

# 查看 PostgreSQL 集群列表
sudo pg_lsclusters

示例输出:

Ver Cluster Port Status Owner    Data directory              Log file
15  main    5432 down   postgres /var/lib/postgresql/15/main ...

若状态为 down,说明数据库未运行。

2026-01-16T14:45:29.png

第三步:排查 PostgreSQL 启动失败原因

尝试启动集群:

sudo pg_ctlcluster 15 main start

若失败,查看详细日志:

sudo journalctl -xeu postgresql@15-main.service --no-pager | tail -n 30

关键错误示例

could not bind IPv4 address "127.0.0.1": Address already in use
FATAL: could not create any TCP/IP sockets

表明 5432 端口已被占用

2026-01-16T15:08:53.png

第四步:释放被占用的 5432 端口

1. 查找占用端口的进程

sudo ss -tulnp | grep :5432

示例输出:

tcp LISTEN ... 127.0.0.1:5432 ... users:(("postgres",pid=1358,fd=8))

2. 终止残留进程

sudo kill -9 1358  # 替换为实际 PID

3. 清理残留 PID 文件

sudo rm -f /var/lib/postgresql/15/main/postmaster.pid
sudo rm -f /run/postgresql/*.pid

2026-01-16T15:02:41.png


第五步:启动 PostgreSQL 并验证

# 启动正规集群
sudo pg_ctlcluster 15 main start

# 验证 socket 文件生成
ls /var/run/postgresql/

正常输出应包含:

.s.PGSQL.5432  15-main.pid

第六步:启动 License 服务

# 启动授权服务
sudo systemctl start trim_license

# 验证状态
systemctl status trim_license
预期状态:Active: active (running)

2026-01-16T15:14:27.png

第七步:设置开机自启(防止重启后复现)

# 启用 PostgreSQL 集群自启
sudo systemctl enable postgresql@15-main

# 确保 license 服务自启(通常已启用)
sudo systemctl enable trim_license

验证与总结

  1. 输入账号密码,登录成功
    2026-01-16T15:18:02.png
适用场景:飞牛OS系统更新后,Web 管理界面无法登录,提示 502 Bad Gateway 或“系统内部错误”,且浏览器开发者工具中可见 /license/v1/device/baseInfo 请求失败。
根本原因trim_license 服务依赖 PostgreSQL 数据库,但更新后 PostgreSQL 未正常运行或端口被残留进程占用,导致授权服务启动失败。

附:完整修复命令汇总(可一键复制执行)

# 1. 查看并终止占用 5432 的进程
sudo ss -tulnp | grep :5432
sudo kill -9 1358  # 替换为实际 PID

# 2. 清理残留文件
sudo rm -f /var/lib/postgresql/15/main/postmaster.pid
sudo rm -f /run/postgresql/*.pid

# 3. 启动 PostgreSQL 集群
sudo pg_ctlcluster 15 main start

# 4. 验证 socket
ls /var/run/postgresql/

# 5. 启动 license 服务
sudo systemctl start trim_license

# 6. 设置开机自启
sudo systemctl enable postgresql@15-main
sudo systemctl enable trim_license

# 7. 检查状态
systemctl status trim_license
最后修改:2026 年 01 月 17 日
如果觉得我的文章对你有用,请随意赞赏
END
本文作者:
文章标题:解决飞牛nas更新后无法登录:系统内部错误
本文地址:https://blog.ybyq.wang/archives/1437.html
版权说明:若无注明,本文皆Xuan's blog原创,转载请保留文章出处。