« 上一篇下一篇 »

win10无法使用Linux的samba共享?

【win10无法使用Linux的smb共享】大致分以下几类:

一,无法发现,即便使用IP地址 \\a.b.c.d\smbSharename 这样的方式也无法连接,请看1、2两项

二,能看到共享的名字,但无法登录,请看 2、5两项

三,能登录,但打开共享文件夹时提示权限不够,请看第6项

 

【1】
Win10 能成功访问共享文件夹,要安装 SMB1 协议,否则可能找不到网络名称。
打开 启用或关闭 Windows 功能 对话框,找到 SMB 1.0 相关选项,全部选中,

参考:https://www.icoa.cn/a/814.html

【2】
win10连接Linux的smb共享时,被要求输入用户名+密码,提示无权限等等,是因为用户名/密码不对

又分若两类原因:

一,NTLM响应的版本问题,多换几次,看看哪种方式适合你的smb服务器((本节1-4)

二,缓存的用户名/密码与smb服务器设置的不一致,要清除以前缓存的凭据(见本节5-6)

2-1. win10系统上,运行-- secpol.msc,打开本地安全策略 
2-2. 安全策略->本地策略->安全选项 
2-3. 右侧找到“网络安全:LAN管理器身份验证级别”打开,选择“仅发送NTLMv2响应,拒绝LM和NTLM”点确定。 
2-4. 本路径下再找到“网络访问:本地账户的共享和安全模型”打开,选择“经典”(避免所有用户都映射成来宾身份登录)

2-5.  运行-- control userpasswords2 ,选择用户,管理凭据,windows凭据,删除对应的smb地址或名称的项目
参考:https://blog.51cto.com/mengix/1895969

2-6.  打开 服务,Workstation---停止--启动,以彻底清理以前的凭据
2-7.  重新浏览该smb共享,输入用户名、密码

 

【5】【在Linux的smb服务器上】首先得加系统用户,然后再在smbpasswd 修改此用户密码(可与系统用户密码不同)
参考:https://www.cnblogs.com/liulipeng/p/3406352.html 添加的Samba用户首先必须是Linux用户

  • # useradd share4smb
    # smbpasswd -a share4smb
    New SMB password:
    Retype new SMB password:
    Added user share4smb.

然后在Windows机器上【控制面板】→【凭证管理器】中添加Windows凭证:
网络地址:xxx.xxx.xxx.xxx(即需要连接的Linux机的IP)
用户名:share4smb  密码:刚才给该用户设置的smb密码

 

【6】注意Linux的文件系统权限,全路径上的权限都要符合要求,否则会出现您无权访问xxx的提示
例如,Netxcloud的data文件夹,即便你设置为 777,
但是Nextcloud程序会经常检查该目录权限是否770,会主动修改为770,

假如你使用该文件夹(及其子目录)给普通用户作为smb共享,则可能出现权限不够。
导致你在win机器上偶发性地出现登录之后打不开共享的情况。

所以也许,smb.conf里面,valid users = root 用户可能让问题更简单些


【3--存疑待证实】
组策略中打开 工作站的:启用不安全来宾登陆 选项。
开始运行,或者快捷键 Win+R 打开运行,输入 gpedit.msc 打开组策略。
然后分别选择 计算机配置 → 管理模板 → 网络 →Lanman工作站,
在右边找到 启用不安全的来宾登陆,双击打开,然后选择启用,点确定即可。

【4--存疑待证实】
win10连接smb时候需要输入凭据,但是用户名+密码不对,
参考:http://www.612459.com/yjpc/1964.html 其中关键一句:

Win10用微软账户登录的,连局域网共享时,输入用户名的时候,前面加个乱七八糟的域名就可以访问了。应该是一个奇葩的Bug。

 

【7】其他:Linux作为smb客户端时的用法:
smbclient  -U username  //a.b.c.d/smbSharename

 

【8】无关杂记:
重启网卡  /etc/rc.d/init.d/network restart

对于网卡有问题的服务器,可以考虑 crontab -e 增加一条定时任务:
#每10分钟检测一下网关,||代表如果不成功,,,则重启网卡
*/10 *   * * *   root    /bin/ping -c2 -w5 192.168.1.1  || /etc/init.d/networking restart