linux中使用nfs共享文件

本文介绍如何在CentOS 7上搭建NFS服务,包括安装必要的软件包、配置共享目录、设置防火墙规则以及客户端如何挂载共享目录。

NFS需要使用远程过程调用 (RPC),也就是说,我们并不是只要启动NFS, 还需要启动RPC这个服务

#服务器端
CentOS 7.4
ip:172.16.0.1
共享/tmp目录
共享/data目录给172.16.0.2

安装nfs

# yum install rpcbind
# yum install nfs-utils
# service rpcbind start
# service nfs start

设置rpcbind和nfs服务开机启动

# chkconfig nfs on
# chkconfig rpcbind on
也可以设置rpcbind和nfs服务只在系统运行级别3和5自动启动。
# chkconfig --level 35 rpcbind on
# chkconfig --level 35 nfs on

配置共享文件夹
在/etc/exports添加:
/data 172.16.0.2(rw) #对指定ip共享共享/data目录
也可以用共享给所有IP
/data *(rw,sync,no_root_squash) #共享/data目录

参数作用
ro只读模式
rw读写模式
root_squash当NFS客户端使用root用户访问时,映射为NFS服务端的匿名用户
no_root_squash当NFS客户端使用root用户访问时,映射为NFS服务端的root用户
sync同时讲数据写入到内存与硬盘中,保证不丢失数据
async优先将数据保存到内存,然后再写入硬盘,效率更高,但可能造成数据丢失

修改后不用重启nfs,执行以下命令生效:
# exportfs -a

添加读写权限
chmod -R 666 /data

防火墙中开放端口
RedHat在7中更改了系统软件,不再使用iptables作为系统的防火墙,而是使用了FirewallD,但是为了兼容过去的命令也可以使用iptables来设置防护规则。
需要开放rpc(111端口),nfs(2049端口),nfs挂载端口(892端口),其中111和892是tcp,udp都用。

# iptables -I INPUT -p tcp -m multiport --dports 111,892,2049 -j ACCEPT
# iptables -I INPUT -p udp -m multiport --dports 111,892 -j ACCEPT

上述配置系统重启后失效,要永久有效,需要修改/etc/sysconfig/iptables-config配置文件,详细请baidu
使用firewall,使用permanent参数,系统重启后依然有效

# firewall-cmd --zone=public --add-port=111/tcp --permanent
# firewall-cmd --zone=public --add-port=111/udp --permanent
# firewall-cmd --zone=public --add-port=892/tcp --permanent
# firewall-cmd --zone=public --add-port=892/ucp --permanent
# firewall-cmd --zone=public --add-port=2049/tcp --permanent
# systemctl restart firewalld.service  //重启防火墙
# firewall-cmd --zone=dmz --list-ports //查看开放的端口

重启nfs

# service rpcbind restart
# service nfs restart
# showmount -e    //查看自己共享的目录

#客户端
CentOS 7.4
ip:172.16.0.2

挂载172.16.0.1:/data到本地/data目录
# mount -t nfs 172.16.0.1:/data /data
开机自动挂载
在/etc/fstab中添加
172.16.0.1:/data /data nfs defaults 0 0
添加读写权限
chmod -R 666 /data
如果还是出现其他权限问题,比如Permission denied等,可以修改文件夹的所有者为nfsnobody
chown nfsnobody.nfsnobody -R /data

Linux系统中配置NFS(Network File System)文件共享涉及多个步骤,包括服务的安装、配置以及客户端的挂载操作。以下是一个详细的指南: ### 安装和启动NFS相关服务 1. 在服务器端,首先需要安装NFS所需的软件包。对于基于Red Hat的系统如CentOS或Fedora,可以使用`yum`或`dnf`进行安装: ```bash sudo yum install nfs-utils ``` 或者 ```bash sudo dnf install nfs-utils ``` 2. 启动并启用RPC绑定服务`rpcbind`,这是NFS正常工作所必需的: ```bash sudo systemctl start rpcbind sudo systemctl enable rpcbind ``` 3. 接着启动NFS服务,并设置开机自启: ```bash sudo systemctl start nfs sudo systemctl enable nfs ``` ### 配置NFS共享目录 1. 创建要共享的目录,例如: ```bash sudo mkdir -p /srv/nfs4/shared ``` 2. 编辑NFS配置文件`/etc/exports`来指定哪些目录将被共享及其权限设置。比如允许IP地址为`192.168.1.0/24`网段内的所有主机以读写方式访问共享目录[^3]: ``` /srv/nfs4/shared 192.168.1.0/24(rw,sync,no_subtree_check) ``` 3. 应用新的导出规则: ```bash sudo exportfs -a ``` ### 在客户端挂载NFS共享 1. 确保客户端上也安装了NFS工具: ```bash sudo yum install nfs-utils ``` 或者 ```bash sudo dnf install nfs-utils ``` 2. 创建一个本地挂载点: ```bash sudo mkdir -p /mnt/nfs_shared ``` 3. 使用`mount`命令挂载远程NFS共享到本地挂载点。假设服务器的IP是`192.168.1.96`: ```bash sudo mount 192.168.1.96:/srv/nfs4/shared /mnt/nfs_shared ``` 4. 若要使挂载在重启后仍然有效,需编辑客户端的`/etc/fstab`文件添加如下行: ``` 192.168.1.96:/srv/nfs4/shared /mnt/nfs_shared nfs defaults 0 0 ``` ### NFS版本选择与兼容性 - NFS有多个版本(通常为v3, v4),其中NFSv4提供了更好的安全性及性能。可以通过修改配置和服务参数来指定使用NFS版本。 - 如果你正在开发应用程序并且希望使用C#与NFS交互,则可能需要利用现有的库或者通过调用系统命令来实现功能,因为.NET框架本身并不直接支持NFS协议操作。 以上步骤提供了一个基本的NFS设置流程,实际部署时请根据具体需求调整安全策略和网络配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值