在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链接
- Linux NFS: http : //nfs.sourceforge.net/
- Debian: http : //www.debian.org/