背景情况:
最近在家把老笔记本改造成了NAS,但是在安装samba服务上卡了好久,windows始终无法访问Ubuntu上的samba服务,在此记录一下整个过程
系统环境:
NAS服务器:ubuntu22 + samba 4.15.13
客户机:win11
文章目录
1 部署Samba服务
1.1 安装samba服务
sudo apt update
sudo apt install samba
1.2 创建共享文件夹
mkdir /data/share
1.3 创建用户
必须创建一个系统用户,不然不能连接
sudo adduser smbuser
会提示密码,但是这个密码是系统登录密码,samba还会有一个单独的密码需要创建
创建samba
访问密码
sudo smbpasswd -a smbuser
1.4 将共享目录授权给新创建用户
将文件目录所有人改为smbuser
sudo chown -R smbuser:smbuser /data/share
将共享目录授权读写权限,这授予777权限也是可以的,但是为了网络安全,还是755或700比较稳妥
sudo chmod 755 -R /data/share
1.5 修改samba配置文件
文件路径/etc/samba/smb.conf
sudo vim /etc/samba/smb.conf
在最后一行加上
[share]
# 共享文件目录
path = /data/share
# 可访问用户白名单
valid users = smbuser
# 可进行写操作的用户白名单
write list = smbuser
# 新创建文件的默认权限
create mask = 0775
# 新创建目录的默认权限
directory mask = 0775
在global
加上最低协议支持
[global]
min protocol = NT1
aio read size = 0
说明:
[share]
中的share
就是后续在windows上建立网络共享盘的名称
min protocol = NT1
,NT1 = samba v1,SMB2 = samba v2,SMB3 = samba v3
aio read size = 0
,表示:读取时不使用异步io,可以加快读取速度
1.6 启动samba服务
sudo systemctl start samba
设置samba服务自动启动
sudo systemctl enable samba
2 windows访问samba共享盘
打开我的电脑,在空白处单击右键,选择“添加一个网络位置”
一路下一步,到填写网络地址,填写\\server_ip\share
,这个share就是在smb.conf
文件中添加的[share]
名称。
一路下一步直到完成,弹出密码框,输入之前创建的smbuser用户和密码,如果正常,那么可以打开共享盘。
!!!然而这个过程大概率会弹出提示无法连接错误!!!
下面来重点说明如何解决
3 windows无法访问问题排查
3.1 windows开启SMB文件共享
进入控制面板 > 程序 > 启用或关闭windows功能,勾选SMB文件共享支持
3.2 ubuntu防火墙允许samba访问
ubuntu防火墙允许samba访问
sudo ufw reject samba
3.3 核对samba账号密码、共享文件路径、目录权限
-
核对samba访问用户名和密码是否敲错
-
检查samba配置文件,共享文件路径是否正确,目录授权是否正确
改完配置记得重启samba
服务
sudo systemctl restart samba
3.4 尝试删除重建网络地址
清空网络盘连接,打开powershell,输入
net use * /deleted
然后重建网盘
3.5 windows组策略开启访问支持
win+r,输入gpedit.msc
,进入计算机配置 > 管理模板 > 网络 > Lanman工作站 > 启用不安全的来宾登陆 > 选择已启用
可能会提示找不到gpedit.msc
通过如下方式安装
以管理员角色打开cmd
,输入以下命令
dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum >gpedit.txt
dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientTools-Package~3*.mum >>gpedit.txt
type gpedit.txt
for /f %I in ('findstr /i . gpedit.txt 2^>nul') do dism /online /norestart /add-package:"C:\Windows\servicing\Packages\%I"
# 执行完毕,删除gpedit.txt
del gpedit.txt
3.6 开启windows网络发现、启用文件共享
进入网络 > 更改高级共享设置 > 启用网络发现、启用文件和打印共享