什么是网络文件系统(NFS)
网络文件系统(NFS)是一种文件系统协议,允许类Unix系统的用户通过网络访问文件,就像使用本地存储一样。这对于跨Internet上的多个腾讯云CVM服务器或其他计算机共享文件很有用。例如,您可以通过NFS共享用户或系统配置文件的主目录。
但是,请注意NFS(版本3及更早版本)的一个限制是服务器和客户端必须限制为本地或受信任的专用网络,因为数据从一台计算机未加密传输到另一台计算机。NFS版本4解决了这个缺点,它依赖于Kerberos进行身份验证和加密。然而,设置用于NFS的Kerberos相当复杂,并且需要密钥分发中心,这超出了本教程的范围。
本教程将指导您完成两个腾讯云CVM服务器的设置; 一个是NFS服务器,另一个是客户端。在此示例中,两个腾讯云CVM服务器都位于同一数据中心,并将使用其专用IP地址进行通信,因此您的数据永远不会离开腾讯云CVM服务器的网络。警告:其他NFS设置可能会通过公共Internet发送流量。
注意 本教程是为非root用户编写的。需要提升权限的命令带有
sudo
前缀。
选择一个腾讯云CVM服务器作为您的NFS服务器。并按照以下说明进行配置。
sudo apt update
nfs-kernel-server
:sudo apt install nfs-kernel-server
portmap
:sudo apt-get install portmap
hosts.deny
文件中来阻止访问NFS使用的服务。 rpcbind mountd nfsd statd lockd rquotad : ALL
hosts.allow
文件中,替换example_IP
为客户端腾讯云CVM服务器的私有IPv4地址。 rpcbind mountd nfsd statd lockd rquotad : 127.0.0.1 : allow
rpcbind mountd nfsd statd lockd rquotad : example_IP : allow
rpcbind mountd nfsd statd lockd rquotad : ALL : deny
sudo mkdir /var/nfsroot
sudo chown nobody:nogroup /var/nfsroot/
/etc/exports
文件中,替换example_IP
为客户端腾讯云CVM服务器的私有IPv4地址。确保/ 17和左括号之间没有空格,并且文件末尾有一个空行。 /var/nfsroot example_IP/17(rw,root_squash,subtree_check)
sudo exportfs -ra
sudo systemctl restart nfs-kernel-server
完成!现在,您在其中一个腾讯云CVM服务器上已经有了一个基本NFS服务器,并配置为将/ var / nfsroot
目录提供给第二个腾讯云CVM服务器。
第二个腾讯云CVM服务器将是您的NFS客户端。请按照以下说明进行配置。
sudo apt update
nfs-common
:sudo apt install nfs-common
sudo mkdir /mnt/remotenfs
fstab
文件中,替换example_IP
为服务器腾讯云CVM服务器的私有IPv4地址。1 example_IP:/var/nfsroot /mnt/remotenfs nfs rw,async,hard,intr,noexec 0 0
sudo mount /mnt/remotenfs
你已经完成了!现在,从客户端腾讯云CVM服务器,您可以访问腾讯云CVM服务器 NFS服务器上托管的远程文件系统。您可以通过将更多客户端添加到服务器的/etc/exports
文件来添加更多客户端,然后为每个客户端重复客户端设置。
NFS提供各种挂载选项。在本教程中,我们使用了读写访问,异步文件传输和可中断硬等待的标准行为,但您可以使用以下选项在NFS共享上配置其他行为。
这些选项可以在fstab
中指定,也可以使用带有-o
开关的mount
命令手动指定,后跟逗号分隔的挂载选项列表。
intr
,否则用户无法终止该过程。timeo
选项),之后将抛出错误。可以在/etc/exports
条目中指定这些选项:
在客户端的/ mnt / remotenfs
中创建一个名为testfile.txt
的测试文件::
sudo echo "Hello World" > /mnt/remotenfs/testfile.txt
如果一切按预期进行,则/mnt/remotenfs/testfile.txt
由nobody:nogroup
拥有。 你可以使用以下命令查看
ls -l /mnt/remotenfs/testfile.txt
同样,如果您这样做,则应在服务器中显示相同的权限
ls -l /var/nfsroot/testfile.txt
现在让我们用服务器上的/ etc / exports
中的no_root_squash替换root_squash,并更新导出共享表,如上面NFS Server Setup 中的替换example_IP
为客户端腾讯云CVM服务器的私有IPv4地址步骤中所述。 最后,我们将通过在同一目录(/ mnt / remotenfs
)中创建另一个测试文件(testfile2.txt
)来重复上述操作:
sudo echo "Hi everyone" > /mnt/remotenfs/testfile2.txt
如果您在客户端或服务器上检查testfile2.txt
的所有权,您将看到它现在由root:root
拥有。 这些简单的例子说明了root_squash和no_root_squash的用法和含义。 为了您的安全,请不要忘记删除后者并尽快在/ etc / exports
中重新添加前者。
想要了解更多关于NFS的内容请前往腾讯云+社区学习。
参考文献:《How to Mount NFS Shares on Debian 9》
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。