尝试将 Ubuntu 计算机连接到 Windows 工作组。各种操作都有效,但无法访问文件共享

尝试将 Ubuntu 计算机连接到 Windows 工作组。各种操作都有效,但无法访问文件共享

我一直在努力将我的一台 Linux 机器(Ubuntu 18.04.4)与我的 Windows 工作组联网。各种方法都行得通(见下文),但在 Ubuntu 的文件管理器的 Windows 网络下没有显示任何内容,同样,Ubuntu 机器也没有显示在 Windows 上。我遗漏了什么关键细节?

Ubuntu 电脑:Lenny,IP 192.168.0.61

  • 有一个共享的公共文件夹,每个人都拥有所有权限。
  • Samba 正在运行,其工作组和公共文件夹在 smb.conf 中定义(下面的 testparm 转储)。

Win10电脑:蒂皮,IP 192.168.0.21

  • 对于专用网络,已启用网络发现和文件/打印机共享。
  • 所有网络的公用文件夹共享均已打开。
  • IIS 正在运行。

路由器:为 Tippy 和 Lenny 设置了主机映射。

什么有效

  • Tippy 或 Lenny 可以通过名称或 IP 互相 ping 。
  • Lenny 上的 Web 浏览器可以查看 http://tippy 上的页面
  • Ubuntu 远程桌面 Remmina 运行良好,可以通过名称连接到 Tippy。

什么不起作用

  • 两台计算机都没有出现在对方的文件管理器中,所以我看不到共享的文件。
  • 如果我尝试在 Win10 上导航到 \lenny 或 \lenny\public,它会显示错误代码 0x80004005(未指定的错误)。Windows 疑难解答程序表示远程设备不会接受连接。我不清楚是否有必要安装 samba。有些文章只是说右键单击文件夹并将其设置为共享,但这本身不起作用,所以我尝试安装 samba。

我认为我对 smb.conf 所做的只是添加工作组名称和公共文件夹。这是 testparm:

Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
WARNING: The "syslog" option is deprecated
Processing section "[printers]"
Processing section "[print$]"
Processing section "[public]"
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

# Global parameters
[global]
    bind interfaces only = Yes
    dns proxy = No
    interfaces = 127.0.0.0/8 eth0
    log file = /var/log/samba/log.%m
    map to guest = Bad User
    max log size = 1000
    obey pam restrictions = Yes
    pam password change = Yes
    panic action = /usr/share/samba/panic-action %d
    passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
    passwd program = /usr/bin/passwd %u
    server role = standalone server
    server string = %h server (Samba, Ubuntu)
    syslog = 0
    unix password sync = Yes
    usershare allow guests = Yes
    workgroup = CASTLE
    idmap config * : backend = tdb


[printers]
    browseable = No
    comment = All Printers
    create mask = 0700
    path = /var/spool/samba
    printable = Yes


[print$]
    comment = Printer Drivers
    path = /var/lib/samba/printers


[public]
    force create mode = 0777
    force directory mode = 0777
    force user = nobody
    guest ok = Yes
    guest only = Yes
    path = /samba/public
    read only = No

答案1

您的问题无疑都与 SMBv1 有关,您的 Ubuntu 机器仍将使用它,而 Win10 不会。此外,网络浏览需要 SMBv1,Windows 已用网络发现取代了网络浏览,但 Linux 不使用它,而是使用 Avahi。您可以在此处获取 Linux 网络发现服务器: https://github.com/christgau/wsdd

我还建议您通过在 smb.conf 文件中添加以下几行来关闭 Ubuntu 计算机上的 SMBv1:客户端最小协议 = SMB2_02 服务器最小协议 = SMB2_02

答案2

我不会期望 Linux 主机出现在 Win10 的网络下。当您迁移到 Ubuntu 20 时,客户端或服务器端都不会启用 SMB1(就像 Win10 一样),并且 netbios 浏览依赖于它。

WSD 肯定可以起到替代的作用。

静态 IP 地址在这里也是您的朋友。

但 mDNS 也是如此:

如果我尝试在 Win10 上导航到 \lenny 或 \lenny\public,它会显示错误代码 0x80004005(未指定的错误)。

mDNS 可在 WIn10 和 Ubuntu 上使用,因此可以通过以下方式连接到 Linux 机器:

\\lenny.local

如果成功,您可以将其“固定”在“快速访问”或“开始菜单”下。

边注:我将从你的 smb.conf 文件中删除以下几行,并让 samba 自行解决这个问题:

bind interfaces only = Yes
interfaces = 127.0.0.0/8 eth0

然后重新启动 smbd。

相关内容