跑在 iKuai 上的本来好好的 Samba 共享,因为调了一下匿名访问后,客户机再也连不上 Samba 共享了(之前也有随机连不上的问题出现),找了一点时间仔细研究了一下。
Windows 下的 Samba 充满了玄学,最好先从简单的入手。
开始之前:
* 确认 Samba 服务已经启动
* 确认目标 Samba 端口防火墙已被放行
* 在 Linux 看看能不能挂载上
都可以?那么就可以开始动手了。
禁用 Microsoft 网络客户端强制通信数字签名
Win+S,输入 secpol.msc
,以管理员身份启动本地安全策略管理控制台。
转到 “本地策略 -> 安全选项”,将 Microsoft 网络客户端:对通信进行数字签名(如果服务器允许)
和 Microsoft 网络客户端:对通信进行数字签名(始终)
的安全设置设为 已禁用
。
继续向下滚动,找到 网络安全:LAN 管理器身份验证级别
,设置为 发送 LM 和 NTLM - 如果已协商,则使用 NTLMv2 会话安全 (& )
允许 Samba 匿名登陆
Win+S,输入 cmd.exe
,以管理员身份运行命令提示符。
粘贴并执行下面的注册表编辑语句:
reg add HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters /v AllowInsecureGuestAuth /t reg_dword /d 00000001 /f
确保已安装 Microsoft 网络客户端协议
在网络适配器对话框中检查,确保 Microsoft 网络客户端
和 Micorosoft 网络的文件和打印机共享
已被勾选安装。
如果没有看到这两个项目,点击 安装...
来安装对应的客户端和服务。
启用 SMBv1 协议
一般来说,目前各个NAS、服务器系统和路由系统提供的都是 SMBv2 或者更高版本,该步骤实际上并不是非常需要。
如果上述步骤不奏效,也可以试试看启用 SMBv1 协议。
Win+S,输入 启用或关闭 Windows 功能
值得一提的是,SMB 1.0 协议已经非常不安全了,除非是历史遗留问题,否则尽量升级到 SMBv2 或者更高版本。
避免使用 NETBIOS 访问
尽量避免使用 \\<主机名>
访问,该功能能否正常工作全看一个玄学。(好在我这里工作正常)
如果是内网环境,尝试直接使用 \\IPV4地址
进行访问,避免被路由到奇怪的 IPV6 地址上去。
如果要使用 NETBIOS,则必须启用网络发现。最简单的方式是切换到 “专用网络” 上。
结束
至此,Samba 共享现在可以正常使用了,网络驱动器也可以正常进行挂载。