Samba 部分工作:可以连接但无法浏览

Samba 部分工作:可以连接但无法浏览

我有一台机器用作 HTPC,运行 Fedora 23。直到最近,一切都工作正常,浏览和连接网络上的其他 PC(我混合使用 Linux 和 Windows 机器)。现在,由于某种原因,我无法再从这台 PC 浏览我的 samba 共享。直接连接(通过名称或IP)工作正常;按名称 ping 效果很好。我没有做任何改变;事实上,我离开了一个星期,一切都关闭了,这个问题似乎在我回来后就出现了。

我已经尝试了很多事情——以各种排列多次——但都无济于事:

  • 重新启动一切,包括我的路由器
  • 重新启动 smb.service 和 nmb.service
  • 暂时禁用firewalld
  • 暂时将 SELinux 设置为宽容
  • 将这些行添加到 smb.conf:
  • 1)名称解析顺序 = 广播主机 lmshosts 获胜
  • 2)DNS 代理= 否
  • 3)映射到访客 = 坏用户
  • 使用 s 测试终端中的连接mbclient -d2 -L 计算机名 -U 用户名——这有效!

另外,我在 /var/log/samba 的日志中没有看到任何错误。因此,经过几个小时的思考后,我感到非常困惑。在这一点上,这并不是我需要解决的问题,因为直接连接是可行的,但我想更好地理解这一点并学习一些东西。

smbtree以下是无法工作的 HTPC(我们称之为“WOMBAT”)的输出,以及两台可以工作的机器(运行 openSUSE 和 Linux Mint)的输出。

# smbtree output from "WOMBAT":
# browsing smb shares from this machine does not work...
# however, connecting directly works, e.g., to smb://dog/shared
# Pinging any of the other machines by name also works.
HOME
\\WOMBAT                Samba Server Version 4.3.11
    \\WOMBAT\IPC$               IPC Service (Samba Server Version 4.3.11)
    \\WOMBAT\homes              Home Directories
\\                      OpenRG File Server


# smbtree output from working machine, "DOG":
HOME
\\WOMBAT                Samba Server Version 4.3.11
\\ROUTERUSB_FILESH      OpenRG File Server
\\DOG           dog server (Samba, Linux Mint)
    \\DOG\IPC$              IPC Service (dog server (Samba, Linux Mint))
    \\DOG\Shared2           Media2 on dog
    \\DOG\Shared            Media on dog
    \\DOG\print$            Printer Drivers
\\CAT                   Cat
    \\CAT\Video (F)         
    \\CAT\C$                Default share
    \\CAT\Shared-Cat-F      
    \\CAT\H$                Default share
    \\CAT\ADMIN$            Remote Admin
    \\CAT\F$                Default share
    \\CAT\Shared-Cat2       
    \\CAT\Shared-Personal   
    \\CAT\G$                Default share
    \\CAT\Shared-Video      
    \\CAT\C                 
    \\CAT\Shared-Cat-C      
    \\CAT\print$            Printer Drivers
    \\CAT\SharedDocs        
    \\CAT\IPC$              Remote IPC
    \\CAT\Other (G)         
\\CHIPMUNK              Samba 4.2.4-18.1-3668-SUSE-SLE_12-x86_64
    \\CHIPMUNK\IPC$             IPC Service (Samba 4.2.4-18.1-3668-SUSE-SLE_12-x86_64)
    \\CHIPMUNK\share            Shared files
    \\CHIPMUNK\print$           Printer Drivers
    \\CHIPMUNK\groups           All groups
    \\CHIPMUNK\users            All users
    \\CHIPMUNK\profiles         Network Profiles Service
\\PIG         


# smbtree output from working machine, "CHIPMUNK":
HOME
\\WOMBAT                Samba Server Version 4.3.11
\\ROUTERUSB_FILESH      OpenRG File Server
\\DOG           dog server (Samba, Linux Mint)
    \\DOG\IPC$              IPC Service (dog server (Samba, Linux Mint))
    \\DOG\Shared2           Media2 on dog
    \\DOG\Shared            Media on dog
    \\DOG\print$            Printer Drivers
\\CAT                   Cat
    \\CAT\Video (F)         
    \\CAT\C$                Default share
    \\CAT\Shared-Cat-F      
    \\CAT\H$                Default share
    \\CAT\ADMIN$            Remote Admin
    \\CAT\F$                Default share
    \\CAT\Shared-Cat2       
    \\CAT\Shared-Personal   
    \\CAT\G$                Default share
    \\CAT\Shared-Video      
    \\CAT\C                 
    \\CAT\Shared-Cat-C      
    \\CAT\print$            Printer Drivers
    \\CAT\SharedDocs        
    \\CAT\IPC$              Remote IPC
    \\CAT\Other (G)         
\\CHIPMUNK              Samba 4.2.4-18.1-3668-SUSE-SLE_12-x86_64
    \\CHIPMUNK\IPC$             IPC Service (Samba 4.2.4-18.1-3668-SUSE-SLE_12-x86_64)
    \\CHIPMUNK\share            Shared files
    \\CHIPMUNK\print$           Printer Drivers
    \\CHIPMUNK\groups           All groups
    \\CHIPMUNK\users            All users
    \\CHIPMUNK\profiles         Network Profiles Service
\\PIG     

我得到的唯一线索是,当systemctl status nmb -l从有问题的盒子(下面的输出)运行时,我的子网看起来不正确。但我对此不确定——也许这很好——而且我不知道如何确认它的正确性。

  ● nmb.service - Samba NMB Daemon
     Loaded: loaded (/usr/lib/systemd/system/nmb.service; enabled; vendor preset: disabled)
     Active: active (running) since Wed 2016-08-10 23:32:26 EDT; 2h 20min ago
   Main PID: 17468 (nmbd)
     Status: "nmbd: ready to serve connections..."
     CGroup: /system.slice/nmb.service
             └─17468 /usr/sbin/nmbd

  Aug 10 23:32:26 wombat.home systemd[1]: nmb.service: Supervising process 17468 which is not our child. We'll most likely not notice when it exits.
  Aug 10 23:32:26 wombat.home systemd[1]: Started Samba NMB Daemon.
  Aug 10 23:32:26 wombat.home nmbd[17468]: [2016/08/10 23:32:26.084522,  0] ../lib/util/become_daemon.c:124(daemon_ready)
  Aug 10 23:32:26 wombat.home nmbd[17468]:   STATUS=daemon 'nmbd' finished starting up and ready to serve connections
  Aug 10 23:32:49 wombat.home nmbd[17468]: [2016/08/10 23:32:49.120302,  0] ../source3/nmbd/nmbd_become_lmb.c:397(become_local_master_stage2)
  Aug 10 23:32:49 wombat.home nmbd[17468]:   *****
  Aug 10 23:32:49 wombat.home nmbd[17468]:   
  Aug 10 23:32:49 wombat.home nmbd[17468]:   Samba name server WOMBAT is now a local master browser for workgroup HOME on subnet 192.168.124.1
  Aug 10 23:32:49 wombat.home nmbd[17468]:   
  Aug 10 23:32:49 wombat.home nmbd[17468]:   *****

我的下一步是尝试 NFS(尽管这是回避问题),然后擦除机器并重新开始。但即使这解决了问题,我也什么也没学到。

答案1

问题是虚拟网络接口 ( virbr0)。 Samba 将此作为首选接口,该接口指向无效的广播地址。我猜想,因为它认为自己是唯一在那里运行的 samba 服务器,所以它将自己设置为“本地主浏览器”。

请参阅 的输出摘录smbtree -d3,并记下第三个条目,其中包含错误的“bcast”“192.168.124.255”:

Processing section "[global]"
added interface wlp0s20u6 ip=192.168.1.14 bcast=192.168.1.255 netmask=255.255.255.0
added interface enp3s0 ip=192.168.1.15 bcast=192.168.1.255 netmask=255.255.255.0
added interface virbr0 ip=192.168.124.1 bcast=192.168.124.255 netmask=255.255.255.0

禁用libvitrdservice( systemctl disable libvirtd) 去掉了那个接口,这似乎已经解决了问题;现在 smbtree 显示网络上的其他共享。

在禁用此接口之前,当我检查 nmb.service 的状态时,我看到一条类似“Samba 名称服务器 WOMBAT 现在是子网 192.168.124.255 上工作组 HOME 的本地主浏览器”的消息。这个不正确的子网导致我进入了不正确的接口;我在运行时看到了它的地址ifconfig

结语:我不确定这个界面是怎么来的。如果我没理解错的话,这是一个虚拟NAT接口。我这台电脑上没有安装Virtualbox、VMWare等;我不确定还有什么可能启用它。如果有人关心,请在评论中阐明一些内容。

相关内容