升级到 Samba 4.11,现在 Windows 10 看不到服务器

升级到 Samba 4.11,现在 Windows 10 看不到服务器

我曾让 Samba 在 Centos 8 服务器和 Windows 10 客户端上作为独立服务器运行。然后我升级到 Samba 4.11,一切都崩溃了。

这是 smb.conf 文件

[global]
        path = /srv/smb
        writeable = yes
        security = user
        netbios name = konishiki
        wins support = yes
        local master = yes
        preferred master = yes
        client min protocol = SMB2
        client max protocol = SMB3
        sync always = yes
        socket options = TCP_NODELAY
        passdb backend = tdbsam
        workgroup = WORKGROUP
        log level = 2
        unix password sync = no
        vfs objects = acl_xattr
        map acl inherit = yes
        wins support = yes
        username map = /etc/samba/smbusers
        admin users = hank, hankwin hcohe
[homes]
        inherit acls = Yes
        browseable = no
        writable = yes
        path = /home
        comment = Home Directories
[hankwin]
        path = /srv/smb/hankwin/
        read only = no
[hank]
        path = /srv/smb/hank
        read only = no
        create mask = 777

在服务器端,[小锦是历史上最伟大的相扑选手,所以我用他的名字命名我的大文件服务器] smbclient 给了我以下报告:

[root@konishiki samba]# smbclient -L localhost -U%

        Sharename       Type      Comment
        ---------       ----      -------
        hankwin         Disk
        hank            Disk
        IPC$            IPC       IPC Service (Samba 4.11.2)
SMB1 disabled -- no workgroup available

我觉得我想要的是禁用 SMB1。这是 Samba 4.0 的一大改进,但为什么没有可用的工作组?

在客户端(akaoninoko 是我的客户端)net view 显示如下:

C:\Users\hcohe>net view
Server Name            Remark
-------------------------------------------------------------------------------
\\AKAONINOKO
The command completed successfully.

显然,akaoninoko 看不到来自 konishiki 的共享。名称解析正在工作,我可以在所有主机之间 ping 通,没有任何问题。我在两个接口上运行了 netshark,并确认浏览消息正在传递,并且 konishiki 赢得了本地主机选举,但 Windows 10 客户端似乎没有收到该消息。(可根据要求提供 pcap)。

我尝试过的其他方法:我卸载了客户端上的 SMB1 支持,但这导致了更糟糕的情况,即 net view 命令生成了系统错误。[抱歉,我想显示错误消息,但我需要再次卸载 SMB1 支持并重新启动,这需要很长时间。]

任何建议将不胜感激。

汉克

答案1

我认为你想要的是两件相反的事情。

我觉得我想要的是禁用 SMB1。这是 Samba 4.0 的一大改进,但为什么没有可用的工作组?

由于您的 Samba 配置具有client min protocol = SMB2,它还会阻止 smbclient 使用 SMBv1 来查询服务器的工作组名称——该操作没有 SMBv2/3 等效操作。

client min protocol不是关于連接客户——这是关于 Samba 的自己的[lib]smbclient。更改 Samba 服务器与其他客户端通信的协议的选项是server min protocol。)

总体而言,工作组是一个仅与 NetBIOS 相关的概念,它与 SMBv1 混杂在一起,通常与其一起被禁用。工作组不直接与 SMB 文件共享交互 - 它们的存在是为了将计算机分组以供 NetBIOS “浏览”,主要是出于技术原因,以减少选定浏览器的负载。

我卸载了客户端上的 SMB1 支持,但这导致了更糟糕的情况,即 net view 命令生成了系统错误。

在 Windows 上卸载 SMBv1 也会卸载 NetBIOS 支持。请注意,与 Samba 配置不同(它只告诉“smbd”守护程序拒绝 SMBv1 协商,不会影响“nmbd”NetBIOS 守护程序),在 Windows 上删除 SMBv1实际上删除了实现该协议的内核驱动程序。

具体来说,浏览消息是通过 SMBv1“邮件槽”交换的 - 因此即使“nmbd”可能仍在 Samba 端运行,但 Windows 上不再需要关注它。


Windows 首选的替代“浏览”协议是 WS-Discovery,它由不同的系统服务(“功能发现”之类的东西)处理。Explorer 将自动使用这两种服务,并在“网络”选项卡中显示 NetBIOS 和 WSD 结果,但网络视图尚未更新以与新服务进行交谈。

WS-Discovery 不是 Samba 的一部分,但至少有两个 Linux 实现(韋斯代德wsdd2)。WSD 仍然具有“工作组”参数,但不像 NetBIOS 那样使用它。

(Linux 和 macOS 可能更喜欢通过 mDNS 的 DNS-SD,但尽管 Windows 已经支持 mDNS 进行主机名解析和打印机发现,但它尚不支持 SMB 服务发现。)

相关内容