作者:神之骰时间:2025-09-27 03:04:37
今天早上和往常一样点开 NAS 的 Frigate 监控系统检查花园里停放的车车,看到飞牛云又提示有更新了,内心OS吐槽:不是前两天才更新完么,怎么又有新版本了,真烦人,又不支持滚动更新,每次更新完还要重启系统,还要等存储池就绪。但还是口嫌体正直地点了更新按钮,系统提示一切 OK,自动重启。结果悲剧了——Web 管理页面和SSH都拒绝连接——我的NAS失联了!!
当场囧到不行——在群里吐槽:能用就别乱升级.jpg。
在论坛里搜到这个帖子:飞牛开了OVS更新系统导致飞牛失联解决记录,想起早先手动删掉的 OVS 桥又自动冒出来,果断杀回命令行:
ip addr # 确认网口名称
sudo -i # 切换 root
ovs-vsctl list-br # 列出所有网桥
ovs-vsctl del-br ens233-ovs # 删掉冲突网桥
dhclient # 重新获取 IP
ip addr # 验证拿到局域网地址
网络回来了,可 Web 管理页面还是无法登录,提示“系统内部错误”,SSH也是依旧Connection refused。于是就在宿主机控制面板查看日志,journalctl -xe
发现 systemd
报错:failed to start ssh.service
、failed to start postgresql.service
下一步,瞄准 SSH 和 PostgreSQL 服务。
systemctl status ssh
和 sshd -t
报:
Permissions 0644 for '/etc/ssh/ssh_host_*_key' are too open
Missing privilege separation directory: /run/sshd
按步骤来:
# 调整主机密钥权限
sudo chmod 600 /etc/ssh/ssh_host_rsa_key \
/etc/ssh/ssh_host_ecdsa_key \
/etc/ssh/ssh_host_ed25519_key
sudo chown root:root /etc/ssh/ssh_host_*_key
# 补上隔离目录
sudo mkdir -p /run/sshd
sudo chmod 755 /run/sshd
# 验证配置并重启
sudo sshd -t # 无输出即 OK
sudo systemctl restart ssh
连接恢复,怼回一键登录的梦想。
systemctl status [email protected]
日志里看到:
FATAL: private key file "/etc/ssl/private/ssl-cert-snakeoil.key" has group or world access
DETAIL: File must have permissions u=rw (0600) or less if owned by the database user
这就简单了:
sudo chmod 600 /etc/ssl/private/ssl-cert-snakeoil.key
sudo chown postgres:postgres /etc/ssl/private/ssl-cert-snakeoil.key
sudo systemctl restart postgresql@15-main
要是不打算用 SSL,也可以在 /etc/postgresql/15/main/postgresql.conf
里把 ssl = on
改成 ssl = off
,然后重启。
这次挂掉的根本原因,其实就是典型的权限过宽。
换句话说,系统更新后密钥文件的权限被“放飞自我”,结果服务直接罢工。就是不知道这和我,曾经直接用命令行apt upgrade更新过,最近开启了二步验证,以及更新过程中还在SMB传输文件哪个操作有关。
一通折腾后,NAS Web 界面、SSH、数据库全恢复。心态崩了又如何?一句总结:能用就别乱升级,打不过就跑。
看到群友的吐槽:飞牛云傻逼辣鸡,全生态都应该用 Docker 做容器隔离,而不是想着在一个服务器上搭建全生态。还扒出飞牛云招聘 Linux 专家只给绿联 40% 的薪资。
嘛,毕竟小厂,系统免费用,不像绿联背后有配件厂这些实业来兜底支撑。
下次再约,先备份再说。