linux怎么挂载NFS?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux怎么挂载NFS?相关的知识,希望对你有一定的参考价值。

在linux客户端挂接(mount)NFS磁盘共享之前,必须先配置好NFS服务端。
  1、Solaris系统NFS服务端配置方法如下:
   (1)修改 /etc/dfs/dfstab, 增加共享目录
      share -F nfs -o rw /export/home/sunky
   (2)启动nfs服务
      # /etc/init.d/nfs.server start
   (3)NFS服务启动以后,也可以使用下面的命令增加新的共享
      # share /export/home/sunky1
      # share /export/home/sunky2
   注:/export/home/sunky和/export/home/sunky1是准备共享的目录

  2、linux系统NFS服务端配置方法如下:
   (1)修改 /etc/exports,增加共享目录
  /export/home/sunky 10.140.133.23(rw)
  /export/home/sunky1 *(rw)
  /export/home/sunky2 linux-client(rw)
   注:/export/home/目录下的sunky、sunky1、sunky2是准备共享的目录,10.140.133.23、*、 linux-client是被允许挂接此共享linux客户机的IP地址或主机名。如果要使用主机名linux-client必须在服务端主机 /etc/hosts文件里增加linux-client主机ip定义。格式如下:
   10.140.133.23 linux-client
   (2)启动与停止NFS服务
   /etc/rc.d/init.d/portmap start (在REDHAT中PORTMAP是默认启动的)
   /etc/rc.d/init.d/nfs start 启动NFS服务
   /etc/rc.d/init.d/nfs stop 停止NFS服务
   注:若修改/etc/export文件增加新的共享,应先停止NFS服务,再启动NFS服务方能使新增加的共享起作用。使用命令exportfs -rv也可以达到同样的效果。
  3、linux客户端挂接(mount)其他linux系统或UNIX系统的NFS共享
   # mkdir –p /mnt/nfs
   注:建立一个目录用来作挂接点(mount point)
   #mount -t nfs -o rw 10.140.133.9:/export/home/sunky /mnt/nfs
   注:这里我们假设10.140.133.9是NFS服务端的主机IP地址,当然这里也可以使用主机名,但必须在本机/etc/hosts文件里增加服务端ip定义。/export/home/sunky为服务端共享的目录。
  如此就可以在linux客户端通过/mnt/nfs来访问其它linux系统或UNIX系统以NFS方式共享出来的文件了。以上操作在 redhat as server 3、redflag server4.1、suse server 9以及Solaris 7、Solaris 8、Solaris 9 for x86&sparc环境下测试通过。
权限问题:
假设 server 端的使用者 jack, user id 为 1818, gid 为 1818, client 端也有一个使用者 jack,但是 uid 及 gid 是 1818。client 端的 jack 希望能完全读写 server 端的 /home/jack 这个目录。server 端的 /etc/exports 是
这样写的:
/home/jack *(rw,all_squash,anonuid=1818,anongid=1818)
这个的设定档的意思是,所有 client 端的使用者存取 server 端 /home/jack 这
目录时,都会 map 成 server 端的 jack (uid,gid=1818)。我 mount 的结果是
1. client 端的 root 可以完全存取该目录, 包括读、写、杀……等
2. client 端的 jack (uid,gid=1818) 我可以做:
rm -rf server_jack/*
cp something server_jack/
mkdir server_jack/a
参考技术A mount -t cifs ip:/共享目录 /本地目录

Linux NFS挂载

NFS的常用目录

/etc/exports                           NFS服务的主要配置文件

/usr/sbin/exportfs                     NFS服务的管理命令

/usr/sbin/showmount                 客户端的查看命令

/var/lib/nfs/etab                      记录NFS分享出来的目录的完整权限设定值

/var/lib/nfs/xtab                      记录曾经登录过的客户端信息

NFS主要有3类选项:


访问权限选项

服务端:

/home/backup/haitao 172.16.150.12(rw,sync,no_root_squash)

客户端:

mount -t nfs 172.16.150.100:/home/backup/$(hostname) $DEST



设置输出目录只读:ro

设置输出目录读写:rw

用户映射选项


all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);

no_all_squash:与all_squash取反(默认设置);

root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置);

no_root_squash:与rootsquash取反;

anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);

anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);

其它选项


secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);

insecure:允许客户端从大于1024的tcp/ip端口连接服务器;

sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;

async:将数据先保存在内存缓冲区中,必要时才写入磁盘;

wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置);

no_wdelay:若有写操作则立即执行,应与sync配合使用;

subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);

no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;




固定NFS启动端口便于iptables设置:

分配端口,编辑配置文件:

1

vi /etc/sysconfig/nfs

添加:

RQUOTAD_PORT=30001

LOCKD_TCPPORT=30002

LOCKD_UDPPORT=30002

MOUNTD_PORT=30003

STATD_PORT=30004


重启rpcbind和nfs:


/etc/init.d/rpcbind restart

/etc/init.d/nfs restart

现在看看启动的端口:

rpcinfo -p


iptables设置:

iptables -A INPUT -s 192.168.1.1 -p tcp --dport 111 -j ACCEPT

iptables -A INPUT -s 192.168.1.1 -p udp --dport 111 -j ACCEPT

iptables -A INPUT -s 192.168.1.1 -p tcp --dport 2049 -j ACCEPT

iptables -A INPUT -s 192.168.1.1 -p udp --dport 2049 -j ACCEPT

iptables -A INPUT -s 192.168.1.1 -p tcp --dport 30001:30004 -j ACCEPT

iptables -A INPUT -s 192.168.1.1 -p udp --dport 30001:30004 -j ACCEPT


以上是关于linux怎么挂载NFS?的主要内容,如果未能解决你的问题,请参考以下文章

linux下nfs客户机挂载服务器上的共享目录时,出现权限不够的错误,怎么解决?

搭建LINUX服务器客户端挂载NFS目录命令?

WIN10旗舰版怎么挂载NFS共享目录

WIN10旗舰版怎么挂载NFS共享目录?

Linux NFS挂载,实现异地文件备份

linux挂载aixnfs没有写权限