当前位置:首页 > Linux > 正文内容

Linux的NFS配置

canca3年前 (2023-04-04)Linux906

快速代码

# nfs的Server配置文件和配置方法
echo '/newnfs 192.168.2.*(rw,sync,no_root_squash)' >> /etc/exports
# 根目录新建文件夹,权限777
mkdir /newnfs && chmod 777 /newnfs# 重新启动rpcbind和nfs-server服务
systemctl restart rpcbind && systemctl restart nfs-server
# nfs的Client
# 查看Sever信息
showmount -e 192.168.2.197# 挂载
mkdir /newnfs
mount -t nfs 192.168.2.197:/newnfs /newnfs

配置文件的格式

1共享目录的路径 2允许访问的NFS客户端ip(3共享权限参数)

1、第一项为目录的绝对路径

2、允许访问的ip,可以使用通配符,比如192.168.2.*代表192.168.2.0-255都可以访问

3、权限参数,有三对

参数
备注
文件读写权限相关
  • 读写rw

  • 只读ro

登录账号映射匿名
  • root_squash:当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户

  • no_root_squash:当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员

  • all_squash:无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户

同步数据的方式
  • sync:同时将数据写入到内存与硬盘中,保证不丢失数据

  • async:优先将数据保存到内存,然后再写入硬盘;这样效率更高,但如果断电或者内存出现其他情况可能会丢失数据

#比如

/root/newdir 192.168.2.149(rw,sync,root_squash)

 注意后面的扣号之间不需要空格,这也是个个坑。

新建共享文件夹

先建立个新的文件夹,并且给足权限,777。

[root@server_197 ~]# mkdir /newnfs
[root@server_197 ~]# ll / | grep newnfs
drwxr-xr-x. 2 root root 6 Aug 30 19:57 newnfs
[root@server_197 ~]# chmod -R 777 /newnfs/
[root@server_197 ~]# ll / | grep newnfs
drwxrwxrwx. 2 root root 6 Aug 30 19:57 newnfs

写入配置

[root@server_197 ~]# echo '/newnfs 192.168.2.*(rw,sync,no_root_squash)' >> /etc/exports
[root@server_197 ~]# cat /etc/exports
/newnfs 192.168.2.(rw,sync,no_root_squash)

固定端口(可选)

如果你在使用ipstables,或者是有有其他网段端口的限制,可能需要固定一下端口。


nfs使用到端口

  •   portmapper(rpc-bind提供)端口:111 udp/tcp

  •   nfs/nfs_acl(nfs提供)端口:2049 udp/tcp

  •   mountd 端口:32768-65535 udp/tcp

  •   nlockmgr 端口:32768-65535 udp/tcp 

系统 RPC服务在 nfs服务启动时默认会给 mountd 和 nlockmgr 动态选取一个随机端口来进行通讯。

在/etc/sysconfig/nfs后追加以下内容,用于固定mountd和nlockmgr端口为4001-4004。

RQUOTAD_PORT=4001
LOCKD_TCPPORT=4002
LOCKD_UDPPORT=4002
MOUNTD_PORT=4003
STATD_PORT=4004

可以在这里固定好端口,修改后需要都要重新启动一次服务。

启动服务和开机启动

使用systemctl来启动rpcbind和nfs-server服务,要注意先启动rpcbind再启动nfs-server

[root@server_197 ~]# systemctl restart rpcbind
[root@server_197 ~]# systemctl enable rpcbind
[root@server_197 ~]# systemctl restart nfs-server
[root@server_197 ~]# systemctl enable nfs-server
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.

用netstat看一下是不是有端口监听了,有就是启动成功了。

[root@server_197 ~]# netstat -tlpn | grep "2049\|111"
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN -
tcp6 0 0 :::111 :::* LISTEN 1/systemd
tcp6 0 0 :::2049 :::* LISTEN -

firewall和iptables

firewall放行对应的服务,nfs、rpc-bind、mountd。

如果可以建议只保留firewall就可以了。

systemctl stop iptables
systemctl disable iptables
[root@server_197 ~]# firewall-cmd --permanent --add-service=nfs
success
[root@server_197 ~]# firewall-cmd --permanent --add-service=rpc-bind
success
[root@server_197 ~]# firewall-cmd --permanent --add-service=mountd
success
[root@server_197 ~]# firewall-cmd --reload
success

iptables这个有点局限性,如果非要使用,先依据前面可选的先固定好mountd的端口。我一般情况都先关了iptables留firewall。不过还是这样写一下啦,万一用得上。


以之前设置的mountd固定端口,4001-4004,以及nfs:2049、rpc:111


iptables -A INPUT -p tcp -m tcp --dport 111 -j ACCEPT 
iptables -A INPUT -p udp -m udp --dport 111 -j ACCEPT 
iptables -A INPUT -p tcp -m tcp --dport 2049 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 2049 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 4001:4004 -j ACCEPT 
iptables -A INPUT -p udp -m udp --dport 4001:4004 -j ACCEPT
# iptables -I : 新加一条规则链
# iptables -A :增加一条规则链
# ptables -I 添加的规则放在现有规则的最前面,iptables -A 放在现有规则的最后。

重新启动一下防火墙啦 


NFS_Client配置

作为使用Client,相当于Sever分享了一块硬盘,我们可以直接挂载在Client本地。


mount挂载

先看一下Sever共享信息,也就是对应我们之前在Sever的/etc/exports的配置。


如果不在许可范围内会提示mount.nfs: access denied by server while mounting。


showmount -[e|a|v] <ip>

-e,查看共享信息(记住-e就可以了)

-a,查看本机挂载的文件资源的情况NFS资源的情况

-v,查看nfs版本

mount -t nfs 192.168.2.197:/newnfs /newnfs


将192.168.2.197:/newnfs挂载在本机的/newnfs,因为之前设置了权限这个文件夹是777

[root@client_149 ~]# showmount -e 192.168.2.197 #看一下先Sever共享信息
Export list for 192.168.2.197:
/newnfs 192.168.2.*
[root@client_149 ~]# mount -t nfs 192.168.2.197:/newnfs /newnfs

 也可以从根目录全部挂载,不过因为没有权限,还是只可以看到设置777权限的/newnfs

# 新建个文件夹用于挂载Server的根目录
[root@client_149 ~]# mkdir /nfs_197
# 挂载
[root@client_149 ~]# mount -t nfs 192.168.2.197:/ /nfs_197
# 查看一下挂载好的目录内容
[root@client_149 ~]# ll /nfs_197
total 0
drwxrwxrwx. 2 root root 20 Aug 31 01:30 newnfs

连接出错

# Client showmount -e出错
[root@slave_87 ~]# showmount -e 192.168.2.149
rpc mount export: RPC: Unable to receive; errno = No route to host
# 检测一下防火墙是否规则是否放行,firewalld和iptables依据具体情况,只保留一个就可以啦
# 如果使用firewalld
iptables -F
# 如果使用iptables
 systemctl stop firewalld
 systemctl disable firewalld


自动挂载

fstab挂载

重新启动后就要重新挂载啦,我们可以编辑一下/etc/fstab设置一下自动挂载。


在最后面追加

echo '192.168.2.197:/newnfs /newnfs nfs 0 0' >> /etc/fstab

如果不生效,将自动挂载也设置为开机启动

systemctl start remote-fs.target
systemctl enable remote-fs.target

开机执行

当然,也可以开机时候自动执行挂载的命令/etc/rc.local

# 把之前的mount命令追加到rc.local的末尾
[root@client_149 ~]# echo 'mount -t nfs 192.168.2.197:/newnfs /newnfs' >> /etc/rc.local
# 追加完成后看一下
[root@client_149 ~]# cat /etc/rc.local | grep -v "#"
touch /var/lock/subsys/local
mount -t nfs 192.168.2.197:/newnfs /newnfs

这里记得要这个/etc/rc.local可执行+x


测试

目前Server和Client都已经配置好,我们在Server、Client任意主机在共享、挂载的目录内新建个文件,再在另一主机上查看一下。


扫描二维码推送至手机访问。

版权声明:本文由Ant.Master's Blog发布,如需转载请注明出处。

本文链接:https://iant.work/post/837.html

标签: nfsLinux
分享给朋友:

“Linux的NFS配置” 的相关文章

在Linux下安装和使用MySQL

一、引言   想使用Linux已经很长时间了,由于没有硬性任务一直也没有系统学习,近日由于工作需要必须使用Linux下的 MySQL。本以为有Windows下使用SQL Server的经验,觉得在Linux下安装MySql应该是易如反掌的事,可在真正安装和使用MySQL时走了很多弯路,遇见很多问题,...

crontab命令

crontab命令

前一天学习了 at 命令是针对仅运行一次的任务,循环运行的例行性计划任务,linux系统则是由 cron (crond) 这个系统服务来控制的。Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的。另外, ...

rar命令

在ubuntu下面首先需要安装: sudo apt-get install rar 下面是命令参数及详解(转来的)用法:  rar <命令>-<开关 1> -<开关 N> <压缩文件> <文件...> <@列表文件....

centos 7 crontab定时器及开机自启

crontab 建议直接采用centos7 自带得cronteb包,定时器:就是定时去执行干某一件事在这里我以脚本为媒介1 当然是创建一个脚本,创建目录随意但是你一定要记得。。直接通过vi来创建一个test.sh脚本!vi /etc/test.sh编辑脚本内容:#!/bin/bash #...

centos7 手动修改dns

方法一:vim /etc/resolv.conf# Generated by NetworkManager nameserver 114.114.114.114 nameserver 119.29.29.29重启网卡:systemctl ...

linux 系统tar文件压缩打包命令

打包成tar.gz格式压缩包# tar -zcvf renwolesshel.tar.gz /renwolesshel解压tar.gz格式压缩包# tar zxvf renwolesshel.tar.gz打包成tar.bz2格式压...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。