问题描述
最近刷OpenWrt时心血来潮弄了个Samba服务器,想要在局域网内共享文件,但是Android手机登录Samba顺畅无比,但家里两台Win10电脑均无法登录,上网搜遍了解决方案但还是无济于事,于是用WireShark抓包,终于发现问题症结所在。
问题分析
Win10开启Samba 1.0支持
我有两台OpenWrt设备,分别运行samba36和samba4的server,通过WireShark抓包分析,可以发现Win10面对这两台设备所表现出的反应是不同的。
Win10连接Samba36时的反应
如上图所示,Win10在连接Samba36时,首先向Samba36询问:“我这些协议你看看你用哪个能给我提供服务?”,然后Samba36回:“用NT LM 0.12吧”,于是连接建立成功,Win10用微软账户直接登录。这个用微软账户直接登录登录是最坑的,一般来说微软账户用的都是邮箱,和Samba里面存在的账户一致的可能性几乎为0。Samba36服务器反应还算厚道,会弹出窗口告诉你用户名和密码错误(如下图所示),让你重新填写,于是当你重新填写之后就一切正常了。
Win10连接Samba4时的反应
如上面4张图所示,Win10在连接Samba4时,首先询问:“我这些协议你看看你能用哪个给我提供服务?”,然后Samba4回复:“什么垃圾协议,给我整点SMB 2.0以上的!”,然后Win10把自己SMB 2.0以上的协议报给Samba4,Samba4回:“就用SMB 3.1.1吧!”,然后连接建立成功,同样地,Win10用微软账户直接登录。一旦这样做,此时Win10不再会像连接Samba36时给你机会填写用户名和密码,直接显示连接不成功,如下图所示。
问题解决
既然用微软账户联网登录的Win10主动向Samba服务器提供邮箱地址作为登录信息,那我们让Win10在向别人做自我介绍时用Samba里面的账户即可。按照如下步骤即可解决问题,此方法对Samba36和Samba4均有效。
1、打开控制面板,选择凭据管理器
;
2、选择Windows凭据
,然后点击添加凭据
;
3、填入Samba服务器的地址、用户名和密码,点击OK后保存即可。

解决验证
如下图所示,Win10已经可以正常登录Samba服务器了。
版权属于:Edward Kong
本文链接:https://kong.ink:666/archives/Win10-login-Samba-if-Microsoft-Account-Used
转载时请注明出处及本文链接