为什么从 Ubuntu 20.04 升级到 22.04 后 Samba 停止工作?

为什么从 Ubuntu 20.04 升级到 22.04 后 Samba 停止工作?

我最近将我的家庭服务器从 Ubuntu 20.04 升级到了 22.04,升级过程相当艰难。今天,当我尝试从 Windows 连接到文件共享时,我收到了一条拒绝连接的消息。我记得在升级过程中被问及配置文件,我选择保留我的 smb.conf,因为唯一的区别是我配置的共享。

故障排除我转到 Web 控制台上的服务列表,发现 smbd 和 nmbd 均列为未运行,已屏蔽。我之前没有遇到过这种情况,经过一番搜索似乎表明,需要做的是取消屏蔽,启动它,如果出现错误,请检查日志。

  • systemctl 取消屏蔽 smbd.service && systemctl 取消屏蔽 nmbd.service
  • systemctl 重新启动 smbd.service nmbd.service
  • journalctl-xe

启动服务时没有出现任何错误,journalctl 只是说它们已经启动。Web 控制台显示它们正在运行,甚至它们的详细信息页面也是如此,service --status-all但我仍然无法从 Windows 连接,甚至无法使用服务器上的 smbclient 进行连接。调试时,它说无法连接到 139 或 445。我尝试查看更长的日志列表,甚至查看 /var/log/samba/ 日志文件。没有任何线索。

  • 日志控制-r

答案1

Samba 已被删除。请重新安装以修复此问题。

我首先尝试跟踪 smbclient 的非调试错误 NT_STATUS_CONNECTION_REFUSED,但是这却将我引向了错误的方向。接下来我检查了监听端口,但在这些端口上没有看到任何内容。我尝试搜索进程列表,除了 journalctl 进程外,没有看到 smbd 或 nmbd。因此我寻找另一种列出正在运行的服务的方法,然后找到了systemctl list-units。它说 smbd 和 nmbd 的状态为 loaded active exited。因此我查看了 apt 以了解 smbd 状态,它已配置,但没有安装。我验证了我有 /etc/init.d/smbd,但没有 /usr/sbin/smbd。我有 /etc/init.d/nmbd,但没有 /usr/sbin/nmbd。Samba 已被卸载,我不记得做过这件事。

  • netstat -tln | grep -e '\(139\|445\)'
  • systemctl 列表单位
  • apt 搜索 smbd

我安装了 samba 软件包,它引入了一堆依赖项。安装完成后,我的文件共享便可从 Windows 访问。

令我惊讶和失望的是,Web 控制台服务列表service --status-all显示这些进程正在运行,而不是由于缺少 smbd 而出现错误。至少systemctl list-units给出了有关它已退出的线索。也许被屏蔽的服务应该是一个线索,但这对我来说是新的。另外,请注意,虽然 Web 终端很方便,但它似乎不会触发写入 .bash_history 的事件。

相关内容