smbd(samba 守护进程)未监听端口 139/445

smbd(samba 守护进程)未监听端口 139/445

我正在运行全新安装的 Ubuntu Server 16.04.1,但在使用 smbd 时遇到了问题。service smbd status告诉我 smbd 应该正在运行:

   ● smbd.service - LSB:启动 Samba SMB/CIFS 守护进程(smbd)
   已加载:已加载(/etc/init.d/smbd;错误;供应商预设:已启用)
   活跃:自 Die 2016-10-18 17:35:23 CEST;2 秒前以来活跃(退出)
     文档:man:systemd-sysv-generator(8)
  进程:24218 ExecStop=/etc/init.d/smbd stop(代码=exited,状态=0/SUCCESS)
  进程:21980 ExecReload=/etc/init.d/smbd reload(代码=exited,状态=0/SUCCESS)
  进程:25190 ExecStart=/etc/init.d/smbd start(代码=exited,状态=0/SUCCESS)

10 月 18 日 17:35:22 speedy systemd[1]: 正在启动 LSB: 启动 Samba SMB/CIFS 守护进程 (smbd)...
10 月 18 日 17:35:23 speedy smbd[25190]: * 启动 SMB/CIFS 守护进程 smbd
10 月 18 日 17:35:23 speedy smbd[25190]:...完成。
10 月 18 日 17:35:23 快速 systemd[1]: 已启动 LSB: 启动 Samba SMB/CIFS 守护进程 (smbd)。

可以通过以下方式验证ps axf | grep smbd

25356 分/2 S+ 0:00 | \_ grep --color=auto smbd
19915?Ss 0:08 \_ /usr/sbin/smbd -D
19919?S 0:00 \_ /usr/sbin/smbd -D

但是,netstat -tpln | grep "smbd"没有返回任何内容,并且 nmap 在端口 139 和 445 上显示“已关闭”。

到目前为止,我尝试在 /etc/samba/smb.conf 中激活这些选项,但没有帮助:

接口 = enp2s0
仅绑定接口 = true

我不知道还能尝试什么...有什么想法吗?

此致,

迈克尔

答案1

是什么导致了这个问题?

在同一台机器上,smbd 在 LXC 容器中运行。启动 Samba 守护进程的脚本 - /etc/init.d/smbd - 认为守护进程已在运行,并拒绝启动另一个实例,因为它不知道找到的 smbd 进程在容器中运行。这也是 Samba 在启动时启动的原因:此时容器尚未启动,并且没有“其他”smbd 进程。这同样适用于其他技术,例如 Docker。

如何解决这个问题?

按照[1]的建议,解决办法是修改/etc/init.d/smbd:

if ! start-stop-daemon --start --quiet --oknodo --exec /usr/sbin/smbd -- -D; then

改成:

if ! start-stop-daemon --start --quiet --oknodo --pidfile /var/run/samba/smbd.pid --exec /usr/sbin/smbd -- -D; then

在 Ubuntu 16.04.3 上,此代码位于第 40 行。使用 nano 编辑时,按 Ctrl+W,输入“start-stop”,然后按回车键;这将带您到正确的行。

[1]https://serverfault.com/a/862514/193537

相关内容