在Debian Lenny上设置NFS服务器和客户机
版本1.0
作者:Falko Timme
本指南介绍了如何在Debian Lenny上设置NFS服务器和NFS客户端。 NFS代表网络文件系统 ; 通过NFS,客户端可以访问(读取,写入)NFS服务器上的远程共享,就像它在本地硬盘上一样。
我不会保证这将为您工作!
1初步说明
我在这里使用两个Debian系统:
- 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 portmap
客户:
在客户端,我们可以安装NFS,如下所示:
apt-get install nfs-common portmap
3在服务器上导出目录
服务器:
我想让目录/ home
和/ var / nfs
可以访问客户端; 因此我们必须在服务器上“导出”它们。
当客户端访问NFS共享时,通常会发生用户nobody
。 通常, / home
目录不是由任何人
拥有(我不建议将其所有权更改为nobody
!),并且因为我们想在/ home
上进行读写 ,所以告诉NFS应该以root身份进行访问如果我们的/ home
分享是只读的,这是不必要的)。 / var / nfs
目录不存在,所以我们可以创建它,并将其所有权更改为nobody
和nogroup:
mkdir /var/nfs
chown nobody:nogroup /var/nfs
现在我们必须修改/ etc / exports
我们“export”我们的NFS共享。 我们将/ home
和/ var / nfs
指定为NFS共享,并告诉NFS以root身份访问/ home
(要了解有关/ etc / exports
,其格式和可用选项的更多信息,请查看
man 5 exports
)
vi /etc/exports
# /etc/exports: the access control list for filesystems which may be exported # to NFS clients. See exports(5). # # Example for NFSv2 and NFSv3: # /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check) # # Example for NFSv4: # /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check) # /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check) # /home 192.168.0.101(rw,sync,no_root_squash,no_subtree_check) /var/nfs 192.168.0.101(rw,sync,no_subtree_check) |
( no_root_squash
选项使得/ home
将以root身份访问。)
每当我们修改/ etc / exports,我们必须运行
exportfs -a
之后使变更生效。
4在客户端上挂载NFS共享
客户:
首先,我们创建要挂载NFS共享的目录,例如:
mkdir -p /mnt/nfs/home
mkdir -p /mnt/nfs/var/nfs
之后,我们可以挂载如下:
mount 192.168.0.100:/home /mnt/nfs/home
mount 192.168.0.100:/var/nfs /mnt/nfs/var/nfs
您现在应该看到这两个NFS共享的输出
df -h
client:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg0-root 19G 676M 17G 4% /
tmpfs 253M 0 253M 0% /lib/init/rw
udev 10M 80K 10M 1% /dev
tmpfs 253M 0 253M 0% /dev/shm
/dev/sda1 471M 20M 427M 5% /boot
192.168.0.100:/home 29G 684M 27G 3% /mnt/nfs/home
192.168.0.100:/var/nfs
29G 684M 27G 3% /mnt/nfs/var/nfs
client:~#
和
mount
client:~# mount
/dev/mapper/vg0-root on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
192.168.0.100:/home on /mnt/nfs/home type nfs (rw,addr=192.168.0.100)
192.168.0.100:/var/nfs on /mnt/nfs/var/nfs type nfs (rw,addr=192.168.0.100)
client:~#
5测试
在客户端上,您现在可以尝试在NFS共享上创建测试文件:
客户:
touch /mnt/nfs/home/test.txt
touch /mnt/nfs/var/nfs/test.txt
现在去服务器,检查是否可以看到这两个测试文件:
服务器:
ls -l /home/
server:~# ls -l /home/
total 4
drwxr-xr-x 2 administrator administrator 4096 2009-02-16 13:18 administrator
-rw-r--r-- 1 root root 0 2009-03-12 17:08 test.txt
server:~#
ls -l /var/nfs
server:~# ls -l /var/nfs
total 0
-rw-r--r-- 1 nobody nogroup 0 2009-03-12 17:08 test.txt
server:~#
(请注意测试文件的不同所有权: / home
NFS共享以root身份访问,因此/home/test.txt
由root拥有; / var / nfs
共享作为nobody
访问,因此/ var / nfs / test.txt
由nobody
拥有。)
6在启动时挂载NFS共享
您可以修改/ etc / fstab
,而不是在客户机上手动安装NFS共享,以便在客户端启动时自动挂载NFS共享。
客户:
打开/ etc / fstab
并附加以下行:
vi /etc/fstab
[...] 192.168.0.100:/home /mnt/nfs/home nfs rw,sync,hard,intr 0 0 192.168.0.100:/var/nfs /mnt/nfs/var/nfs nfs rw,sync,hard,intr 0 0 |
您可以使用不同的安装选项代替rw,sync,hard,intr
。 要了解有关可用选项的更多信息,请查看
man nfs
要测试您的/ etc / fstab
是否正常工作,请重新启动客户端:
reboot
重新启动后,您应该在其输出中找到两个NFS共享
df -h
client:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg0-root 19G 676M 17G 4% /
tmpfs 253M 0 253M 0% /lib/init/rw
udev 10M 80K 10M 1% /dev
tmpfs 253M 0 253M 0% /dev/shm
/dev/sda1 471M 20M 427M 5% /boot
192.168.0.100:/home 29G 684M 27G 3% /mnt/nfs/home
192.168.0.100:/var/nfs
29G 684M 27G 3% /mnt/nfs/var/nfs
client:~#
和
mount
client:~# mount
/dev/mapper/vg0-root on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
192.168.0.100:/home on /mnt/nfs/home type nfs (rw,sync,hard,intr,addr=192.168.0.100)
192.168.0.100:/var/nfs on /mnt/nfs/var/nfs type nfs (rw,sync,hard,intr,addr=192.168.0.100)
client:~#
7链接
- Linux NFS: http : //nfs.sourceforge.net
- Debian: http : //www.debian.org