Samba 网络发现通过文件管理器失败,但适用于 smbtree

ada*_*tum 7 networking samba file-manager

在文件管理器(Caja、Nautilus、PCManFM、Dolphin)中,网络下有一个Windows 网络条目,但双击它会出现一个包含 0 个项目的空窗口。

但是,smbtree确实列出了本地网络中联机的(Windows 和 linux)计算机主机、它们的工作组以及与它们共享的目录和打印机。

在文件管理器中,我可以使用位置地址smb://[HOST_IP]/[SHARE_DIRECTORY]并且它可以工作。但是,smb://[HOST_IP]没有目录会出现错误:

错误:无法从服务器检索共享列表:参数无效。请选择其他查看器并重试。


编辑: 报告了许多与 samba 配置相关的类似错误(这可能仍然是这里的问题)。然而,较新的错误报告表明这可能与 samba 和 Microsoft 弃用旧协议(SMB1)有关:https ://dev.solus-project.com/T1223据称,4.6.10 之后的 samba 版本上存在这个较新的问题.

请注意,出现此问题的计算机正在运行 Fedora 28 和 samba 4.8.3。同一网络上的另一台可以成功浏览共享的计算机在 Ubuntu 16.04 和 samba 4.3.11-Ubuntu 上。

slm*_*slm 5

潜在问题 #1 - 解决订单

听起来像是解决 NMB 的问题。在此主题中提到了这一点:Nautilus 看不到网络计算机... [已解决]

非发现解决顺序
# What naming service and in what order should we use to resolve host names
# to IP addresses
name resolve order = lmhosts host wins bcast
Run Code Online (Sandbox Code Playgroud) 报告工作解决命令
name resolve order = bcast lmhosts host wins
Run Code Online (Sandbox Code Playgroud)

进行此更改后,请务必重新启动 NMB/SMB 服务。

潜在问题 #2 - 客户端协议

进一步研究您的问题,我在这个 AU 问答中发现了这个提示:Nautilus 未能看到 18.04 中的份额。那里的提示是更改以下内容:

$ more /etc/samba/smb.conf
workgroup = WORKGROUP
client max protocol = NT1
Run Code Online (Sandbox Code Playgroud)

进行上述更改后,建议重新启动,而不是简单地重新启动。

作为本技巧的一部分,请确保 avahi 服务正在运行:

$ sudo service avahi-daemon status
$ sudo service avahi-demon start
Run Code Online (Sandbox Code Playgroud)

潜在问题 #3 - firewalld

根据 askfedora.org 这篇题为:fedora 27 网络浏览不起作用的文章。为什么?建议尝试禁用firewalld。它可能会禁止 Samba 的 NMB/SMB 服务正常运行所需的端口 137-139。

潜在问题 #4 - 错误 1513394 与 gvfs

继续搜索导致此问题仍列为未解决。该问题的标题为:错误 1513394 - 使用 gvfs 的应用程序无法浏览 SMB 共享。它与 gvfs-smb 包有关。

使用 gvfs 的应用程序无法浏览 SMB 共享

这些步骤可用于查看问题是否影响您的系统。

重现步骤:

1. nmblookup -M -- -
2. nmblookup -M workgroup
3. smbtree
4. gio list network://
5. gio list smb:///
6. gio list smb://workgroup
Run Code Online (Sandbox Code Playgroud)

如果事情不起作用,上述步骤的结果将如下所示:

1. will return IP address for __MSBROWSE__ special name
2. will return IP address for workgroup master browser
3. will correctly list workgroup, workgroup members and their shares
4. returned items are missing workgroup members
5. will return empty
6. will return an error message "The specified location is not mounted"
Run Code Online (Sandbox Code Playgroud)

如果一切正常,结果将如下所示:

1. OK
2. OK
3. OK
4. returned items should contain workgroup members
5. should contain workgroup name
6. should contain workgroup members
Run Code Online (Sandbox Code Playgroud)

应该注意的是,似乎还没有解决此问题的方法:

根据记录,它也不适用于 Fedora 28 和 Samba 4.8。

阅读有关该问题的评论以查看故事的其余部分。

参考