Samba是一个能让Linux系统应用Microsoft网络通讯协议的免费软件,可以轻松实现跨平台的网络文件共享。

安装

1
2
sudo apt-get update
sudo apt-get install samba

配置

首先查看要挂载设备的地址

1
sudo fdisk -l

然后创建共享的文件夹并挂载,其中#为设备地址

1
2
sudo mkdir /media/pi/name_of_directory
sudo mount /dev/sda# /media/pi/name_of_directory

若外接硬盘为NTFS格式,需要安装驱动(optional)

1
sudo apt-get install ntfs-3g

接下来进行Samba的配置

1
sudo nano /etc/samba/smb.conf

为了能在Win系统下访问服务器,需要将

1
2
workgroup = WORKGROUP
wins support = no

改为

1
2
workgroup = HOME
wins support = yes

配置共享文件夹(根据个人需求自行修改)

1
2
3
4
5
6
7
[Pi_Elements]
path = /media/pi/Elements
comment = Pi file server
writeable = Yes
create mask = 0775
directory mask = 0775
public = no

调试

检测有没有把配置文件smb.conf搞残

1
testparm

顺利的话你将看到类似以下的信息

1
2
3
4
5
6
7
8
9
10
11
pi@raspberrypi:~ $ testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
WARNING: The "syslog" option is deprecated
Processing section "[homes]"
Processing section "[printers]"
Processing section "[print$]"
Processing section "[Pi_Elements]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions

将用户pi添加为samba用户

1
sudo smbpasswd -a pi

最后只需重启一下samba服务

1
sudo service smbd restart

即可在树莓派所在网络内自由访问文件服务器。

使用

Mac系统:
在文件浏览器左边的Network中找到pi。如果访问报错,可以通过cmd+K,键入文件服务器地址(如smb://192.168.0.255),身份验证后访问。

Win系统:
在文件浏览器左边的Network中找到pi。

Linux系统:
同上。

效果

由于我的树莓派3B只有USB2.0,实测读写速度为个位数(MB/s),完美!

——2020-02-16-更新——
树莓派4开始支持USB3.0,可显著提升外置硬盘的读写速度(可达112MB/s)。服务器传输的瓶颈在这里有详细介绍。要在树莓派服务器上获得三位数(MB/s)的传输速度,需要:

  • USB3.0
  • 千兆网口支持(服务器端和客户端)
  • 外接硬盘格式化为ext4格式,如使用fdisk

最后,祝大家成功!