如何使用 Samba 在计算机之间打开网络发现和共享

如何使用 Samba 在计算机之间打开网络发现和共享

我有一台 Ubuntu 服务器。从 Windows 客户端访问该服务器很方便。

但 Windows 客户端的网络概览中可用的 PC 中没有列出该服务器。
对于 Windows 计算机,它将是网络发现特征。

如何使我的 Samba 服务器在网络上可见?

Windows 版本是 Windows 7。
中的工作组smb.conf与 Windows 中的相同。

答案1

要在同一 LAN 上的 2 台或多台计算机之间共享资源(文件共享),您需要 Samba,默认情况下,网络发现(安装 Samba 后)已激活。它将在您的本地网络中工作,但您需要记住设置工作组到网络正在使用的那个。

要安装 Samba,首先您必须“共享文件夹”,我建议共享主文件夹中的任何内容,这样就不会因为权限问题而产生麻烦,例如,这可以是桌面上的文件夹。您可以通过右键单击文件夹并选择共享来共享它,Ubuntu 将引导您完成几个涉及安装 Samba 和设置正确权限的共享问题。

安装 samba 的另一种方法是直接安装 samba ;)。软件中心或者在终端中输入以下内容:sudo apt-get install samba<-- 你没想到这个吧!

现在编辑 Samba 配置并确保你在同一网络工作组。局域网中的所有计算机的工作组都应该相同。这样,它们就可以真正利用 Windows 和 Ubuntu 或 Ubuntu 和 Ubuntu 计算机之间的网络发现。

  1. 编辑您的smb.conf文件:sudo nano /etc/samba/smb.conf

  2. 找到[全球的]部分内容如下工作组

    [global]
    
    ## Browsing/Identification ###
    
    # Change this to the workgroup/NT-domain name your Samba server will part of  
     workgroup = WORKGROUP
    
  3. 将工作组的值更改为您的网络工作组正在使用的值或为您想要处理的工作组设置一个新名称,例如:

    workgroup = myhomenet
    
  4. 保存文件并重新启动 Samba 服务:sudo service smbd restart

享受奇异网络发现的力量^^

这应该足以让 Ubuntu 到 Ubuntu LAN 正常工作,但如果涉及 Windows,并且万一 Windows 无法识别您的 Ubuntu PC,请将以下内容添加到您的[全球的]文件中的部分smb.conf

local master = yes
preferred master = yes

当然,还要重新启动您的 Samba 服务。

如果仍然没有找到,请在 Windows 中查找高级共享设置在左侧面板中找到网络和共享中心. 在那里选择选项为使用 40 或 56 位加密的设备启用文件共享。这仅仅是 Windows Vista 及更高版本中的问题,如果您使用的是 Windows XP,它应该可以正常工作。

此后,要访问网络上的任何其他计算机,您可以打开文件浏览器并选择浏览网络

在此处输入图片描述

答案2

我刚刚决定解决这个烦人的问题。这个问题困扰了我很长时间,但现在我设置了一台新电脑,是时候让它正常工作了。

  1. 我将我的 Ubuntu 机器设置为 WINS 服务器,并将上述帖子中的几行添加到我的smb.conf

    wins support = yes
    local master = yes
    preferred master = yes
    
  2. 由于这没有帮助,我通过修改网络适配器 IPv4 首选项中的高级 WINS 设置,强制我的 Win7 盒子使用 Ubuntu 盒子作为 WINS 服务器

  3. 这也没有帮助,所以我启动了 Wireshark 来查看发生了什么。我看到 Win7 框查询 WINS 服务器,我看到响应包含所有具有共享的计算机。那么,为什么它们没有出现在 Windows 中?我想防火墙。我使用 Windows 防火墙,在高级设置中我注意到

    File and Printer Sharing (LLMNR-UDP-In)
    

    已为私有网络启用,但未为域或公共网络启用。我只是为域和公共网络也启用了规则。

  4. 呼,我的电脑现在出现在 Windows 中了。我想可能有一种方法可以让 Win7 包含 Ubuntu 机器和其他 Linux 机器,无论它定义为私有网络但我会把这次冒险留到另一天。

我希望这可以对某些人有所帮助。

编辑:启用防火墙规则后,我删除了网络适配器中的硬编码 WINS 服务器设置,现在当允许流量时,我认为标准协商过程可能会按我希望的方式工作。

答案3

尽管这是一个老问题,但它仍然是 Samba 存在一些问题的主题。

我正在搭建 Samba 服务器,它运行正常,只是我的 Windows 10 无法在网络位置看到我的 Samba 服务器(但我可以直接通过 IP 地址访问它)。问题出在 Windows 服务发现上 - Samba 尚未实现该功能。

然而WSDD Github 存储库这会将此功能添加到您的 Samba 服务器中。它是用 Python 编写的,具有良好的文档,还链接到替代项目,讨论了 Samba 无法正常工作的原因,并警告不要使用 SMB1 协议(互联网上的某些说明仍将其视为此问题的“修复” - 因为它使用了 Samba 中实现的 NetBIOS)。

答案4

2023年

sudo apt install wsdd

就可以正常工作。默认情况下,它会侦听所有非环回接口,但您可以编辑 /etc/default/wsdd 来限制它侦听的位置等。

(在 Ubuntu 22.04.2 LTS 上测试)

相关内容