树莓派折腾日记:设置家庭共享目录

树莓派折腾日记:设置家庭共享目录

这个需求主要来自于使用投影看视频,以前都是将视频上传到百度网盘,完了用 TV 版的 APP 看。

不得不说,垃圾百度。为了省带宽,美其名曰智能高清,实则就是压缩了画质,网络还不稳定,经常播放的时候还有卡顿,槽点太多,说多了影响心情。

最终还是回到了投影仪本身的文件管理上,基本大部分投影都支持使用 SMB 协议共享文件,于是就想着用树莓派做个家庭共享目录。

这里推荐两个开源项目:https://casaos.io/https://runtipi.io/,都是搭建家庭服务的。只不过对于现在的我来说,这些项目提供的内容都太重了,95%的内容都用不上,NAS 什么的更用不上了,技术用来解决当下的问题,一切简单就好。

安装 Samba

我的需求很简单,所以不需要太过复杂的解决方案,我就想视频文件能保存到共享目录,不管是投影还是手机、笔记本都能方便访问观看就行。

SMB 协议基本是所有设备都支持,所以就在树莓派上使用 Samba 创建一个共享目录,流程如下:

# 在根目录创建 share 目录用于共享,这个根据个人爱好来
sudo mkdir /share

# 安装 Samba
sudo apt install samba samba-common-bin -y

# 备份原始配置文件,养成备份好习惯
cd /etc/samba && sudo cp smb.conf smb.conf.backup

# 编辑配置文件
sudo vim smb.conf

我这里使用的是 Vim,树莓派默认没有安装 Vim,但是有 NANO,也可以编辑。在配置文件中添加如下内容:

[global]
   guest account = nobody

[MorShare]
   path = /share
   browsable = yes
   writable = yes
   guest ok = yes
   create mask = 0777
   directory mask = 0777

这个配置文件需要特别说明一下,这里就偷个懒了:

  • [global]: 这个部分包含了整个 Samba 服务器的全局设置。所有的设置都会应用到服务器上的所有共享。
  • guest account = nobody: 这个设置指定了当以游客身份访问 Samba 共享时,所使用的系统账户。在这个例子中,游客会被映射到系统的 nobody 账户上。
  • [MorShare]: 这是一个共享块的开始标记,表示以下的配置都是针对名为 MorShare 的共享。每个共享块都有其自己的设置,这是我自己的名称,你们可以自定义。
  • path = /share: 指定共享目录的路径。在这个例子中,共享的目录是 /share
  • browsable = yes: 允许网络邻居中的用户看到这个共享。设置为 yes,则此共享会出现在网络上的列表中。
  • writable = yes: 允许对共享目录的文件进行写操作。如果设置为 no,则此共享为只读。
  • guest ok = yes: 允许不需要密码的游客访问此共享。
  • create mask = 0777directory mask = 0777: 这两个设置决定了通过 Samba 创建的文件和目录的权限。0777 表示所有用户(拥有者、组和其他)都有读、写和执行的权限。create mask 应用于文件,而 directory mask 应用于目录。

这里特别说明一下,因为我的目的是家庭局域网共享,并不对外,所以为了方便直接免除了授权流程。要放以前,我肯定会折腾授权各种功能,但是体验过多次在投影上用遥控器输用户名密码的噩梦后,我放弃了。

先让服务跑起来,有需要的时候再去扩展就行了,没必要为了个日常所需去死命折腾。

配置文件编辑完成后,如果树莓派上安装了 UFW(防火墙工具),需要打开对应端口,没有安装过的忽略:

sudo ufw allow 139/tcp && sudo ufw allow 445/tcp && sudo ufw allow 137/udp && sudo ufw allow 138/udp

一切配置完成后重启服务即可:

sudo systemctl restart smbd && sudo systemctl restart nmbd

sudo systemctl restart nmbd 命令主要是针对比较老的 Windows 网络,新设备基本都不用执行,加上也不会出错。

安装后续

如果以上设置完成后无法正常访问共享目录,可以尝试重启树莓派试试。

如果连上共享目录,但是读写文件的时候提示无权限,那么给 /share 目录授权一下就行了。

sudo chmod -R 777 /share

Windows 连接

一切完成后,Windows 上可以在文件管理器通过 \\192.168.1.10\MorShare 访问共享目录(IP 为树莓派的 IP 地址),下图:

手机连接

手机上比如使用的 VLC 播放器,可以在“网络 - 文件服务器”中连接,下图:

选择“SMB”,输入 IP 地址,点击右上角“连接”就行,其余的不用管了。下图:

Mac 连接

至于 Mac,本来不想动了,想想还是一步到位。

打开“访达”,在菜单中点击“前往 - 连接服务器”,下图:

输入 SMB 地址,点击“连接”,下图:

因为没有设置授权,所以直接选择“客人”就行,下图:


以上。