在 Raspberry Pi 上安装和配置 SMB(Samba)服务,可以实现文件共享,允许 Windows、Linux、macOS 设备访问 Raspberry Pi 上的共享目录。以下是完整的步骤:
先更新系统包管理器,确保系统是最新的。
<span class="token function">sudo</span> <span class="token function">apt</span> update <span class="token function">sudo</span> <span class="token function">apt</span> upgrade <span class="token parameter variable">-y</span><span class="token function">sudo</span> <span class="token function">apt</span> update <span class="token function">sudo</span> <span class="token function">apt</span> upgrade <span class="token parameter variable">-y</span>sudo apt update sudo apt upgrade -y
使用 apt
命令安装 Samba。
<span class="token function">sudo</span> <span class="token function">apt</span> <span class="token function">install</span> samba samba-common-bin <span class="token parameter variable">-y</span><span class="token function">sudo</span> <span class="token function">apt</span> <span class="token function">install</span> samba samba-common-bin <span class="token parameter variable">-y</span>sudo apt install samba samba-common-bin -y
选择一个目录用来共享,创建并设置访问权限。
例如,创建 /home/pi/shared
目录:
<span class="token function">mkdir</span> <span class="token parameter variable">-p</span> /home/pi/shared <span class="token function">sudo</span> <span class="token function">chmod</span> <span class="token number">777</span> /home/pi/shared<span class="token function">mkdir</span> <span class="token parameter variable">-p</span> /home/pi/shared <span class="token function">sudo</span> <span class="token function">chmod</span> <span class="token number">777</span> /home/pi/sharedmkdir -p /home/pi/shared sudo chmod 777 /home/pi/shared
chmod 777
设置目录读、写、执行的权限,允许所有用户访问(可根据需要调整权限)。
编辑 Samba 配置文件 smb.conf
。
<span class="token function">sudo</span> <span class="token function">nano</span> /etc/samba/smb.conf<span class="token function">sudo</span> <span class="token function">nano</span> /etc/samba/smb.confsudo nano /etc/samba/smb.conf
在文件末尾添加以下内容来配置共享目录:
[SharedFolder] path = /home/pi/shared writable = yes guest ok = yes guest only = yes create mask = 0777 directory mask = 0777 public = yes force user = pi[SharedFolder] path = /home/pi/shared writable = yes guest ok = yes guest only = yes create mask = 0777 directory mask = 0777 public = yes force user = pi[SharedFolder] path = /home/pi/shared writable = yes guest ok = yes guest only = yes create mask = 0777 directory mask = 0777 public = yes force user = pi
path
:共享目录的路径。writable
:是否允许写入。guest ok
:是否允许匿名用户访问。create mask
/directory mask
:新文件和目录的权限。force user
:指定访问时使用的用户身份。
保存并退出(按 Ctrl + X
,然后按 Y
,回车)。
修改完配置文件后,重启 Samba 服务使配置生效。
<span class="token function">sudo</span> systemctl restart smbd<span class="token function">sudo</span> systemctl restart smbdsudo systemctl restart smbd
检查 Samba 服务状态,确保其运行正常:
<span class="token function">sudo</span> systemctl status smbd<span class="token function">sudo</span> systemctl status smbdsudo systemctl status smbd
如果不希望匿名访问,可以为 Samba 添加用户并设置密码:
<span class="token function">sudo</span> smbpasswd <span class="token parameter variable">-a</span> pi<span class="token function">sudo</span> smbpasswd <span class="token parameter variable">-a</span> pisudo smbpasswd -a pi
系统会提示输入并确认密码。完成后,配置文件中可以改为需要用户登录的方式。
修改配置文件,将 guest ok
设置为 no
,添加以下行:
valid users = pivalid users = pivalid users = pi
可以使用 smbclient
或挂载命令:
smbclient //192.168.1.10/SharedFolder <span class="token parameter variable">-U</span> pismbclient //192.168.1.10/SharedFolder <span class="token parameter variable">-U</span> pismbclient //192.168.1.10/SharedFolder -U pi
确保 Samba 开机自启:
<span class="token function">sudo</span> systemctl <span class="token builtin class-name">enable</span> smbd<span class="token function">sudo</span> systemctl <span class="token builtin class-name">enable</span> smbdsudo systemctl enable smbd
- 无法访问:检查防火墙设置,确保 445 端口开放。
- 权限问题:检查共享目录权限和 Samba 用户权限。
通过以上步骤,Raspberry Pi 上的 SMB 服务就配置好了!其他设备可以访问共享目录,实现文件共享。
要在 Raspberry Pi 上配置 Samba 服务禁用 SMB2,强制使用SMB1.0 协议,可以通过修改 Samba 配置文件完成。
编辑 Samba 的主配置文件 smb.conf
:
<span class="token function">sudo</span> <span class="token function">nano</span> /etc/samba/smb.conf<span class="token function">sudo</span> <span class="token function">nano</span> /etc/samba/smb.confsudo nano /etc/samba/smb.conf
在 [global]
部分下,添加或修改以下配置项:
[global] server min protocol = NT1 server max protocol = NT1[global] server min protocol = NT1 server max protocol = NT1[global] server min protocol = NT1 server max protocol = NT1
server min protocol
:设置支持的最低 SMB 协议版本。server max protocol
:设置支持的最高 SMB 协议版本。NT1
:代表 SMB1.0 协议。
这将强制 Samba 服务仅使用 SMB1.0 协议。
修改完配置文件后,重启 Samba 服务以使配置生效:
<span class="token function">sudo</span> systemctl restart smbd<span class="token function">sudo</span> systemctl restart smbdsudo systemctl restart smbd
可以使用 smbclient
命令连接到共享目录,并检查所使用的协议版本。
smbclient <span class="token parameter variable">-L</span> localhostsmbclient <span class="token parameter variable">-L</span> localhostsmbclient -L localhost
在输出中查看连接时所使用的协议版本。
- SMB1.0 协议较老,在 Windows 10/11 系统上默认被禁用。
- 如果客户端使用的是 Windows 系统,需要启用 SMB1.0 支持:
- SMB1.0 协议已被认为不安全,存在安全漏洞,建议在受控的网络环境下使用。
- 如果没有特殊需求,推荐使用 SMB2 或更高版本协议。
通过以上步骤,Raspberry Pi 的 Samba 服务将被强制使用 SMB1.0 协议。
原文链接:https://blog.csdn.net/m0_45378777/article/details/144914927?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522aac1d65b75ce7227b415303b51f916cb%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=aac1d65b75ce7227b415303b51f916cb&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-3-144914927-null-null.nonecase&utm_term=%E5%B0%8F%E7%B1%B3nas