Linux挂载Windows 10 SMB2共享失败(SMB1可正常挂载)求助
Linux挂载Windows 10 SMB2共享失败(SMB1可正常挂载)求助
遇到这种情况太常见了,我之前也踩过类似的坑。SMB1能正常挂载说明基本的网络和账号权限没问题,换成SMB2/3就报Host is down,大概率是协议版本匹配或者认证方式的问题,给你几个解决方案和排查步骤:
先试这个修正后的挂载命令
直接用SMB3(Windows 10原生支持,兼容性比2.x更好),同时指定合适的安全协议:
mount -t cifs -o user=USER,password=PASSWORD,vers=3.0,sec=ntlmssp //192.168.1.222/SHARE /tmp/test
为什么这么改?
- vers=3.0:Windows 10默认启用SMB3,相比2.0/2.1,它的稳定性和兼容性更强,很多2.x版本的协商问题换3.0就能直接解决。
- sec=ntlmssp:指定现代NTLM认证方式,避免Linux默认的认证协议和Windows端不匹配导致的连接失败(这是很多“Host is down”报错的根源)。
如果还是不行,按这些步骤排查
确认Windows端SMB2/3是否真的启用
虽然你禁用了SMB1,但有时候系统配置会出问题,打开Windows的PowerShell(管理员权限)执行:Get-SmbServerConfiguration | Select EnableSMB2Protocol如果返回
EnableSMB2Protocol是False,执行下面的命令开启,然后重启Windows:Set-SmbServerConfiguration -EnableSMB2Protocol $true检查Linux端的cifs-utils版本
旧版本的cifs-utils对SMB2/3的支持不完善,先更新到最新版本:- Debian/Ubuntu系:
sudo apt update && sudo apt install --reinstall cifs-utils - RHEL/CentOS系:
sudo yum update cifs-utils
- Debian/Ubuntu系:
验证网络和端口连通性
- 先ping目标主机:
ping 192.168.1.222,确保网络通 - 检查SMB默认端口445是否开放:
nc -zv 192.168.1.222 445,如果提示连接失败,检查Windows防火墙是否允许“文件和打印机共享(SMB-In)”规则
- 先ping目标主机:
确认共享权限
确保你用的USER账号同时拥有Windows共享的共享权限和NTFS权限(有时候共享权限开了,但NTFS权限没给,也会导致连接失败)
额外的安全建议
避免在命令行明文输密码,可以创建一个凭证文件:
- 新建
/etc/smbcredentials文件,内容如下:username=USER password=PASSWORD - 设置权限为600(只有root能读):
sudo chmod 600 /etc/smbcredentials - 挂载命令改成:
mount -t cifs -o credentials=/etc/smbcredentials,vers=3.0,sec=ntlmssp //192.168.1.222/SHARE /tmp/test
备注:内容来源于stack exchange,提问作者MistaRoboto
相关产品推荐
相关产品推荐

