在本篇Raspberry Pi NFS教程中,我将向您展示如何使用网络文件系统(NFS)协议共享Raspberry Pi中的文件。
网络文件系统(NFS)协议最初是由Sun Microsystems公司在1983年开发的。它设计设计的初衷是让客户计算机通过网络访问文件。
由于NFS协议是一个以RFC定义的开放标准,任何人都可以轻松实现它。它已经成为网络管理员建立NAS的好帮手。
在本教程中,我将一步一步安装所需的软件包,使NFS协议在Raspberry Pi上运行。
除此之外,我还会展示如何使用NFS协议共享目录。
最后,我会展示如何从Windows和Mac OS X操作系统连接到Raspberry Pi,读取NFS共享的文件。
如果你已经准备好了,那么你可以在下面找到完整的教程。
设备清单
下面是在树莓派上设置NFS所需要的所有设备,点击链接可直达特别优惠购买。
建议
可选
注意:Raspberry Pi上的USB端口可能不足以为外置硬盘供电,所以可能需要买一个供电的USB线。
在Raspberry Pi上设置网络文件系统(NFS)
1. 在Raspberry Pi上设置网络文件系统(NFS)协议之前,必须做的第一件事是确保所有的软件包都是最新的。
要在Raspbian操作系统上这样做,运行以下命令。
sudo apt-get update
sudo apt-get upgrade
2. Raspberry Pi更新后,可以继续安装NFS共享依赖的软件包。
在本指南中,需要使用 “nfs-kernel-server “包。这个包建立了从Raspberry Pi通过NFS协议服务文件的基础。
nfs-kernel-server “包处理NFS协议的服务器端,可以轻松共享磁盘。
要安装这些软件包,需要通过运行以下命令。
sudo apt-get install nfs-kernel-server -y
3. 现在已经安装了NFS服务器端软件,可以在树莓Pi上设置一个NFS共享。
在本指南中,只是在”/mnt/”目录下建立一个名为 “nfsshare “的目录。
如果已经挂载了一个磁盘或想共享一个不同的目录,在接下来的教程中用你想使用的目录替换”/mnt/nfsshare”。
sudo mkdir /mnt/nfsshare
4. 接下需要做的是在网络上共享的文件夹分配正确的权限。
为此,使用以下三个命令。这些命令中的每一条都有特定的用途。
第一条命令将目录内所有文件和文件夹的所有权赋予 “pi “用户和 “pi “组。
第二行搜索”/mnt/nfsshare “文件夹内的所有目录,并运行chmod命令给每个目录 “755”(对所有者的读/写/执行,对组和其他的读/执行)权限。
第三行做的是类似的事情,不过是搜索目录内的所有文件,并对文件应用 “644”(所有者的读/写,组和其他读)权限。
要想更好地了解权限,请务必查看Linux权限教程。
sudo chown -R pi:pi /mnt/nfsshare
sudo find /mnt/nfsshare/ -type d -exec chmod 755 {} \;
sudo find /mnt/nfsshare/ -type f -exec chmod 644 {} \;
5. 接下来,需要查找想用来访问文件的用户的 “gid”(组ID)和 “uid”(用户ID)。可以通过运行下面的命令来实现。
在本教程中,只使用 “pi “用户,但可以将其用于任何想要的用户。
id pi
6. 从前面的命令中,应该得到如下所示的结果。
记下gid和uid的值,因为在后面的步骤中需要这些值。
uid=1000(pi) gid=1000(pi)
7. 现在已经准备好了所需的一切,并且准备了一个文件夹进行共享。继续修改 “exports “文件,运行下面的命令。
之前安装的Raspberry Pi NFS服务器软件会从这个文件中读取到要通过NFS协议共享出去的目录。
sudo nano /etc/exports
8. 这里是事情变得有点复杂的地方。
如果想共享文件夹,使任何人都可以获得对文件夹的访问权,并对其进行读写,可以毫无顾虑地插入以下一行。
进一步分解这一行,以便你能理解它的作用,不过,可以阅读NFS “导出 “文件上的文档。
确保将 “anonuid “替换为步骤6中检索到的 “uid “值,并将 “anonid”替换为步骤6中检索到的 “gid “值。
/mnt/nfsshare *(rw,all_squash,insecure,async,no_subtree_check,anonuid=1000,anongid=1000)
下面就来分析一下,让大家了解一下它的作用。
/mnt/nfsshare
这一行的这部分定义了要共享的目录。在我的例子中,这就是我之前创建的”/mnt/nfsshare “文件夹。
*(NTFS Options)
此星号定义了应允许所有连接的 IP 地址访问此共享。可以通过更改 IP 的 “*”来更改此选项,以允许特定 IP 或 IP 范围。
要允许从 “192.168.0.0 “到 “192.168.0.256 “的所有IP,可以用 “192.168.0.0/24 “代替星号。
方括号内的所有选项只适用于该IP地址,可以定义多个不同的IP,每个IP都有自己的选项集。
(rw,all_squash,insecure,async,no_subtree_check,anonuid=1000,anongid=1000)
- rw – 这个选项允许对NFS卷进行读写请求。
- all_squash – 这个选项会将所有的ids和gids映射到匿名用户。
- 不安全 – 这个选项允许客户机的NFS实现不使用保留的NFS端口。
- async – 这个选项允许NFS服务器打破NFS协议以提高性能,但代价是如果服务器崩溃,数据可能会被破坏。
- no_subtree_check – 这将禁用子树检查,虽然它对安全有一定的影响,但可以提高NFS服务器的可靠性。你可以在我们之前链接的export文档页面上阅读更多关于这个的内容。
- anonuid – 这是用户匿名连接时使用的UID。
- anongid – 这是用于匿名连接的用户的GID。
9. 输入了这一行,就可以按CTRL + X,然后按Y,再按ENTER键来保存文件。
10. 现在,为了让新添加的文件夹能够通过NFS协议访问,必须运行 “exportfs “包,运行下面的命令。
此应用程序更新当前NFS服务器可用的出口表。
sudo exportfs -ra
11. 最后,需要做的是通过运行下面的命令来检索Raspberry Pi的本地IP地址。
需要通过设置WiFi或使用以太网线来确保Pi连接到网络。
需要这个IP地址,这样才能成功连接到Raspberry Pi NFS服务器。
hostname -I
在Windows上连接到Raspberry Pi的NFS共享。
1. 要在Windows上与NFS共享交互,首先需要启用NFS客户端。默认情况下,Windows安装时该功能是被禁用的。
要做到这一点,必须在Windows中搜索 “打开或关闭Windows功能”,然后点击出现的 “打开或关闭Windows功能 “选项,如下图所示。
2. 在该菜单中,搜索 “Services for NFS”(1.)文件夹,并单击复选框以启用所有可用功能。
完成后,单击 “确定 “按钮(2.)以最终完成设置。windows安装继续设置与NFS共享连接。
3. 现在打开文件资源管理器,应该可以看到 “映射网络驱动器 “选项。
点击这个选项,继续将Raspberry Pi的NFS共享连接到电脑。
4. 在这个页面,需要输入你的Raspberry Pi的IP地址,然后是挂载到NFS共享的文件夹(1.
例如,我的Raspberry Pi的IP地址是 “192.168.0.159”,我设置的文件夹在”\mnt\nfsshare”。我应该输入的 “文件夹 “是”\192.168.0.159\mnt\nfsshare”。
输入后,点击 “完成 “按钮(2.),最终完成连接。
5. 现在应该可以在Windows设备上的 “网络位置 “或 “网络 “下看到共享的Raspberry Pi NFS文件夹。
在 Mac OS X 上连接到 Pi 的 NFS 共享。
1. 现在在MAC OS X上连接到Raspberry Pi的NFS Share,必须先打开Finder应用程序。
2. 在打开 “Finder “应用程序的情况下,继续点击屏幕上方工具栏中的 “Go”(1。),然后点击 “Connect to Server…” (2.)选项。
3. 接下来,你需要输入你要连接的地址(1.
需要输入的地址是 “nfs:\\”协议的组合,然后是Raspberry Pi的IP地址。最后,它以你要访问的目录结束。
例如,IP是 “192.168.0.159”,我在Pi上共享的文件夹是”\mnt\nfsshare”,我要输入的地址是 “nfs:\192.168.0.159\mnt\nfsshare”
完成后,点击 “连接 “按钮(2.)。
4. 如果连接成功,会看到一个新的窗口,显示在Raspberry Pi上使用NFS协议共享的文件夹内部。
现在你应该已经设置好了你的Raspberry Pi NFS服务器,并可以在网络上访问。希望您能够使用Windows PC或Mac OS X电脑轻松连接到它。
如果你有任何反馈和技巧,请不要犹豫,在下面留言。
欢迎转载,请留下出处链接:Labno3 » 树莓派如何共享文件,Raspberry Pi安装NFS服务器