我一直在努力将我的一台 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。