在Debian Wheezy上设置NFS服务器和客户端

在Debian Wheezy上设置NFS服务器和客户端

版本1.0
作者:Till Brehm <t.brehm [at] youcl [dot] com>

本指南介绍如何在Debian Wheezy上设置NFS服务器和NFS客户端。 NFS代表网络文件系统 ; 通过NFS,客户端可以访问(读取,写入)NFS服务器上的远程共享,就像它在本地硬盘上一样。 在本教程中,我将显示两个不同的NFS导出,导出一个客户端目录,用于将文件存储为用户nobody / nogroup,而不保留文件系统权限,并根据需要导出保存文件的权限和所有权的/ var / www目录在主机服务器设置。

1初步说明

我在这里使用两个Debian Wheezy系统:

  • NFS服务器: server.example.com ,IP地址: 192.168.0.100
  • NFS客户端: client.example.com ,IP地址: 192.168.0.101

2安装NFS

服务器:

在NFS服务器上运行:

apt-get install nfs-kernel-server nfs-common

然后我们为NFS服务器创建系统启动链接并启动它:

客户:

在客户端,我们可以按如下方式安装NFS(这实际上和服务器上的一样):

apt-get install nfs-common

3在服务器上导出目录

服务器:

我想使目录/ home / client1/ var / www访问客户端以显示nfs服务器的两种不同的访问模式。 目录/ home / client1在标准模式下共享,因此写入此目录的所有文件都以用户nobody和组nogroup的形式存储。 对于目录/ var / www,我使用no_root_squash选项来指示nfs服务器保留文件的权限和所有权。 例如,当您希望导出使用ISPConfig 3管理的Web服务器/ var / www目录时,这是必需的

首先,我将创建/ home / client1目录

mkdir /home/client1
chown nobody:nogroup /home/client1
chmod 755 /home/client1

/ var / www目录最有可能在您的服务器上。 如果没有,则创建它:

mkdir /var/www
chown root:root /var/www
chmod 755 /var/www

现在我们必须修改/ etc / exports我们“export”我们的NFS共享。 我们指定/ home / client1/ var / www作为NFS共享,并告诉NFS访问/ home / client1作为用户nobody(要了解更多关于/ etc / exports ,其格式和可用选项,请查看

man 5 exports

vi /etc/exports
/home/client1           192.168.0.101(rw,sync,no_subtree_check)
/var/www        192.168.0.101(rw,sync,fsid=0,crossmnt,no_subtree_check,no_root_squash)

no_root_squash选项使得/ var / www将以root身份访问。)

要在/ etc / exports中应用更改,我们重新启动内核nfs服务器

/etc/init.d/nfs-kernel-server restart

4在客户机上挂载NFS共享

客户:

首先,我们创建要挂载NFS共享的目录,例如:

mkdir -p /mnt/nfs/home/client1
mkdir -p /var/www

如果您的服务器上已经存在目录/ var / www,那么停止apache,重命名目录并创建一个新的空目录作为挂载点

/etc/init.d/apache2 stop
mv /var/www /var/www_bak
mkdir -p /var/www

之后,我们可以挂载如下:

mount 192.168.0.100:/home/client1 /mnt/nfs/home/client1
mount 192.168.0.100:/var/www /var/www

您现在应该看到这两个NFS共享的输出

df -h
[root@client ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_server2-LogVol00
                      9.7G  1.7G  7.5G  18% /
tmpfs                 499M     0  499M   0% /dev/shm
/dev/sda1             504M   39M  440M   9% /boot
192.168.0.100:/home/client1   9.7G  1.7G  7.5G  19% /mnt/nfs/home/client1
192.168.0.100:/var/www
                      9.7G  1.7G  7.5G  19% /var/www
[root@client ~]#

mount
[root@client ~]# mount
/dev/mapper/vg_server2-LogVol00 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
192.168.0.100:/home/client1 on /mnt/nfs/home/client1 type nfs (rw,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)
192.168.0.100:/var/www on /var/www type nfs (rw,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)
[root@client ~]#

5测试

在客户端上,您现在可以尝试在NFS共享上创建测试文件:

客户:

touch /mnt/nfs/home/client1/test.txt
touch /var/www/test.txt

现在去服务器,检查是否可以看到这两个测试文件:

服务器:

ls -l /home/client1/
[root@server ~]# ls -l /home/client1
total 0
-rw-r--r-- 1 nobody nogroup 0 Feb 02 16:58 test.txt
[root@server ~]#
ls -l /var/nfs
[root@server ~]# ls -l /var/www
total 0
-rw-r--r-- 1 root root 0 Feb 02 16:58 test.txt
[root@server ~]#

(请注意测试文件的不同所有权: / home / client1 NFS共享被访问为nobody / nogroup和 由nobody / nogroup拥有; / var / www共享以root身份访问,因此/var/www/test.txt用户和组root拥有。)

6在启动时挂载NFS共享

您可以修改/ etc / fstab ,而不是在客户机上手动安装NFS共享,以便在客户端启动时自动挂载NFS共享。

客户:

打开/ etc / fstab并附加以下行:

vi /etc/fstab
[...]
192.168.0.100:/home/client1  /mnt/nfs/home/client1   nfs      rw,sync,hard,intr  0     0
192.168.0.100:/var/www  /var/www   nfs      rw,sync,hard,intr  0     0

您可以使用不同的安装选项代替rw,sync,hard,intr 。 要了解有关可用选项的更多信息,请查看

man nfs

要测试您的/ etc / fstab是否正常工作,请卸载共享并运行mount -a

umount /mnt/nfs/home/client1
umount /var/www
mount -a

您现在应该看到这两个NFS共享的输出

df -h
[root@client ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_server2-LogVol00
                      9.7G  1.7G  7.5G  18% /
tmpfs                 499M     0  499M   0% /dev/shm
/dev/sda1             504M   39M  440M   9% /boot
192.168.0.100:/home/client1   9.7G  1.7G  7.5G  19% /mnt/nfs/home/client1
192.168.0.100:/var/www
                      9.7G  1.7G  7.5G  19% /var/www
[root@client ~]#

mount
[root@client ~]# mount
/dev/mapper/vg_server2-LogVol00 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
192.168.0.100:/home/client1 on /mnt/nfs/home/client1 type nfs (rw,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)
192.168.0.100:/var/www on /var/www type nfs (rw,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)
[root@client ~]#

7学分

本教程基于Falko Timme的Centos NFS服务器教程。

8链接

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏