![无法从 Windows 10 连接到 Linux Samba 共享](https://linux22.com/image/666177/%E6%97%A0%E6%B3%95%E4%BB%8E%20Windows%2010%20%E8%BF%9E%E6%8E%A5%E5%88%B0%20Linux%20Samba%20%E5%85%B1%E4%BA%AB.png)
我在 Ubuntu 14.04 上运行了一个 Samba 服务器版本 4.1.11。我无法从 Windows 10 连接(但可以从 Windows 7 连接)。
服务器和客户端不在同一个局域网上。
Windows 给出的错误消息是服务器在线但没有响应。但是 Samba 日志却显示并非如此。
我已附加 Windows 10 中连接失败的日志以及 Windows 7 中连接成功尝试的日志(用于比较)。
简而言之,与成功的尝试不同,失败的尝试始于:
switch message SMBnegprot (pid 2855) conn 0x0
然后它会在选择之前请求多个不同的协议SMB2_FF
。然后,经过一些安全协商后,它会切换到协议SMB 2.???
,然后SMB3_00
是:
Server exit (NT_STATUS_END_OF_FILE).
成功的尝试SMB2_10
从一开始就选择了协议,但 Windows 10 甚至没有请求该协议。
以下是日志:
尝试失败(来自 Windows 10)
http://pastebin.com/M0xmBuY3
成功尝试(来自 Windows 7)
http://pastebin.com/jF8VzaiA
我已在评论中添加了我的 smb.conf 文件(不能有超过 2 个声誉低于 10 的链接)
答案1
这解决了我的问题:
Windows 10 将尝试协商 SMB3_11,而 Samba4 尚不支持该协议(
当前的 4.3 候选版本除外)。我认为,目前
在 Windows 10 客户端上禁用 SMB2/3 是最佳选择(即使不是最理想的选择)。操作说明可以
在这里找到:https://support.microsoft.com/en-us/kb/2696547
https://lists.samba.org/archive/samba/2015-September/193886.html
进一步阅读:
- 上面提到的 MSKB:Microsoft 支持,KB2696547:如何在 Windows 和 Windows Server 中检测、启用和禁用 SMBv1、SMBv2 和 SMBv3
答案2
问题:Windows 在最新的 Windows 操作系统上删除了 SMB v1 协议,Linux 尝试使用 v1 协议连接,而 Windows/Linux 无法尝试协议 2、3 等。
解决方案:编辑linux(ubuntu)Samba conf文件:
sudo nano /etc/samba/smb.conf
在 [GLOBAL] 部分添加:
客户端最小协议 = SMB2
客户端最大协议 = SMB3
然后保存文件并重新启动 samba
就我而言,我还必须明确输入密码或我的 Samba 用户,但我认为这是我的特定系统问题。
答案3
我认为我有一个适用于 Windows 7 - 10 和 Server 2012 的解决方案
就我而言,注释掉“smb ports 139”行有帮助。
我正在使用 FreeBSD 10 和 Samba 4.4.5
这是我的 SMB4.conf 的副本。希望它能对某些人有所帮助。
[global]
netbios name = SERV
server string = FreeBSD Samba Server
security = ADS
workgroup = FFTPJ
realm = fftpj.local
log file = /var/log/samba4/%m.log
log level = 1
# Default idmap config used for BUILTIN and local windows accounts/groups
idmap config *:backend = tdb
idmap config *:range = 2000-9999
# idmap config for domain FFTPJ
idmap config DOMAIN:backend = rid
idmap config DOMAIN:range = 10000-99999
# Use template settings for login shell and home directory
winbind nss info = template
winbind enum users = Yes
winbind enum groups = Yes
winbind use default domain = yes
client use spnego = yes
client ntlmv2 auth = yes
encrypt passwords = yes
restrict anonymous = 2
valid users = @"Domain Users
# **** When smb ports is Set Windows 10 clients cannot connect
#smb ports = 139
load printers = No
disable spoolss = Yes
local master = No
hide dot files = No
wide links = No
store dos attributes = yes
vfs objects = acl_xattr
map acl inherit = yes
[images]
comment = Images Drive
path = /images
read only = No
[backups]
comment = Backup Drive
path = /data/backup
read only = No
答案4
我发现这可行,无需编辑注册表或禁用 SMB 2/3 服务,我就可以连接到使用 Samba-4.2.10-Debian 的 raspi 3,通过手动输入地址以及在 Windows 10 上的文件资源管理器的地址栏中输入 raspi 的 smb.conf 文件中设置的 netbios 名称。
我单击了网络选项卡,但是我找不到我的 samba 共享,即使网络共享已启用,但在输入 //192.168.0.22(我的 pi 的地址)或 //SAMBA(我在 smb.conf 中设置的 netbios 名称)后,我就可以连接我的 samba 共享。
当时我的 Windows 10 仍然无法连接到 SMB 4.x,但这似乎可以解决这个问题。之后只需映射驱动器,您不再需要手动输入地址。
Win 10 版本 - 10.0.14393 Build 14393(包含最新更新)
希望这对将来的其他人有所帮助。