]> NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
一.安装服务
服务端:(172.25.254.103)
yum install nfs-utils -y ##安装软件
systemctl start nfs ##开启服务
firewall-cmd --permanent --add-service=nfs ##火墙策略
firewall-cmd --reload
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --reload
firewall-cmd --permanent --add-service=mountd
firewall-cmd --reload
二.基础测试
客户端:(172.25.254.203)
1.测试服务
showmount -e 172.25.254.103 Export list for
>172.25.254.103:
2.服务端创建目录进行测试
mkdir /zl/nfs -p ##创建目录
vim /etc/exports
>/zl/nfs *(sync)
exportfs -rv
>exporting *:/zl/nfs
4.客户端挂载测试服务
mount 172.25.254.103:/zl/nfs /mnt
df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3185348 7288552 31% /
devtmpfs 493408 0 493408 0% /dev
tmpfs 508996 140 508856 1% /dev/shm
tmpfs 508996 13376 495620 3% /run
tmpfs 508996 0 508996 0% /sys/fs/cgroup
/dev/mapper/vg0-vo 483670 2339 451840 1% /home
172.25.254.103:/zl/nfs 10473984 3144832 7329152 31% /mnt
三.高级测试
在客户端:
yum install autofs -y ##安装自动挂载服务
systemctl start autofs ##开启服务
ls -ld /net
cd 172.25.254.103 ##直接进入服务端文件系统
cd zl
ls
rpm -qc autofs
>/etc/auto.master
/etc/auto.misc
/etc/auto.net
/etc/auto.smb
/etc/autofs_ldap_auth.conf
/etc/sysconfig/autofs
/usr/lib/systemd/system/autofs.service
vim /etc/sysconfig/autofs ##将默认取消挂载时间改为5秒
13 TIMEOUT=5
umount 172.25.254.103:/zl/nfs
systemctl restart autofs.service ##重启服务
cd 172.25.254.103
ls
cd nfs
ls
df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3180928 7292972 31% /
devtmpfs 493408 0 493408 0% /dev
tmpfs 508996 140 508856 1% /dev/shm
tmpfs 508996 13408 495588 3% /run
tmpfs 508996 0 508996 0% /sys/fs/cgroup
/dev/mapper/vg0-vo 483670 2339 451840 1% /home
172.25.254.103:/zl/nfs 10473984 3148160 7325824 31% /net/172.25.254.103/zl/nfs
测试:
等五秒
df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3180928 7292972 31% /
devtmpfs 493408 0 493408 0% /dev
tmpfs 508996 140 508856 1% /dev/shm
tmpfs 508996 13408 495588 3% /run
tmpfs 508996 0 508996 0% /sys/fs/cgroup
/dev/mapper/vg0-vo 483670 2339 451840 1% /home
vim /etc/auto.master
>9 /westos/linux/ /etc/auto.nfs ##修改默认文件目录
vim /etc/auto.nfs
>nfs -rw 172.25.254.103:/zl/nfs
systemctl restart autofs.service
cd /westos/linux/
ls
cd nfs
ls
df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3184756 7289144 31% /
devtmpfs 493408 0 493408 0% /dev
tmpfs 508996 140 508856 1% /dev/shm
tmpfs 508996 13412 495584 3% /run
tmpfs 508996 0 508996 0% /sys/fs/cgroup
/dev/mapper/vg0-vo 483670 2339 451840 1% /home
172.25.254.103:/zl/nfs 10473984 3148160 7325824 31% /westos/linux/nfs
修改文件测试:
touch file1
touch: cannot touch ‘file1’: Read-only file system
vim /etc/exports
/zl/nfs *(sync,rw) ##给权限
exportfs -rv
exporting *:/zl/nfs
测试:
touch file1
touch: cannot touch ‘file1’: Permission denied
cd /zl/nfs
ls -ld
drwxr-xr-x. 2 root root 17 Dec 8 21:52 .
chmod 777 /zl/nfs ##给予文件权限
ls -ld
drwxrwxrwx. 2 root root 17 Dec 8 21:52 .
ls -l
total 0
-rw-r--r-- 1 root root 0 Dec 8 21:52 file
-rw-r--r-- 1 nfsnobody nfsnobody 0 Dec 8 22:16 file1
vim /etc/exports
/zl/nfs *(sync,rw,anonuid=1001,anongid=1001)
exportfs -rv
exporting *:/zl/nfs
测试:
touch file2
ls -l
total 0
-rw-r--r-- 1 1001 1001 0 Dec 8 22:19 2
-rw-r--r-- 1 root root 0 Dec 8 21:52 file
-rw-r--r-- 1 nfsnobody nfsnobody 0 Dec 8 22:16 file1
-rw-r--r-- 1 1001 1001 0 Dec 8 22:19 file2
useradd LULUBAO ##增加服务用户
id LULUBAO
uid=1001(LULUBAO) gid=1001(LULUBAO) groups=1001(LULUBAO)
ls -l
total 0
-rw-r--r-- 1 LULUBAO LULUBAO 0 Dec 8 22:19 2
-rw-r--r-- 1 root root 0 Dec 8 21:52 file
-rw-r--r-- 1 nfsnobody nfsnobody 0 Dec 8 22:16 file1
-rw-r--r-- 1 LULUBAO LULUBAO 0 Dec 8 22:19 file2
vim /etc/exports
/zl/nfs *(sync,rw,no_root_squash)
exportfs -rv
/zl/nfs
df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3184780 7289120 31% /
devtmpfs 493408 0 493408 0% /dev
tmpfs 508996 140 508856 1% /dev/shm
tmpfs 508996 13388 495608 3% /run
tmpfs 508996 0 508996 0% /sys/fs/cgroup
/dev/mapper/vg0-vo 483670 2350 451829 1% /home
cd /westos/linux/
cd nfs
touch file3
ls -l
total 0
-rw-r--r-- 1 LULUBAO LULUBAO 0 Dec 8 22:19 2
-rw-r--r-- 1 root root 0 Dec 8 21:52 file
-rw-r--r-- 1 nfsnobody nfsnobody 0 Dec 8 22:16 file1
-rw-r--r-- 1 LULUBAO LULUBAO 0 Dec 8 22:19 file2
-rw-r--r-- 1 root root 0 Dec 8 22:22 file3
vim /etc/exports
/zl/nfs 172.25.254.203(sync,rw,no_root_squash) *(sync,ro)
exportfs -rv
exportfs: No options for /zl/nfs *(sync,ro): suggest *(sync,ro)(sync) to avoid warning
exporting 172.25.254.203:/zl/nfs
exporting *(sync,ro):/zl/nfs
man 5 exports
EXAMPLE
# sample /etc/exports file
/ master(rw) trusty(rw,no_root_squash)
/projects proj*.local.domain(rw)
/usr *.local.domain(ro) @trusted(rw)
/home/joe pc001(rw,all_squash,anonuid=150,anongid=100)
/pub *(ro,insecure,all_squash)
/srv/www -sync,rw server @trusted @external(ro)
/foo 2001:db8:9:e54::/64(rw) 192.0.2.0/24(rw)
/build buildhost[0-9].local.domain(rw)