Linux的NFS的配置
快速代码
# nfs的Server配置文件和配置方法
echo '/newnfs 192.168.3.*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
文件传输系列
- openssh
- sftp:22/tcp
- sftp是基于ssh实现的,所以启动了sshd后自带sftp,不需要其他额外的配置就可以使用
- vsftp
- ftp:20,21/tpc
- ftp是最"传统"的文件传输协议了,不过报文不加密,抓包就直接可以看到在头部的账号密码,不安全
- samba
- smb:139/udp和445/tcp
- smb是微软创造的协议,目前基础在Windows系统和Linux系统之间传输文件使用
- webdav
- http:?/tcp
- webdav是我最喜欢的传输方式了,如果只需要下载文件,甚至不需要额外的下载软件客户端,只要在web上打开,同时也支持https
- nfs-utils
- nfs:2049/tcp和rpc:111/tcp
- 在多台Linux之间传输文件,nfs无非是最佳的选择,nfs可以将其他Linux主机的文件挂载在本Linux,就想管理本地文件一样的方便
NFS
- 今天来学习一下NFS
NFS概述
- NFS(Network File System)是一种基于TCP/IP传输的网络文件系统协议。通过使用NFS协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源
- NAS存储: NFS服务的实现依赖于RPC (Remote Process Call,远端过程调用)机制,以完成远程到本地的映射过程。
- NFS需要两个程序包
- nfs-utils:负责文件传输的主程序
- rpcbind:可以将RPC程序号码和通用地址互相转换,负责信息传输的
- 二者互有分工,要先启动rpcbind后才可启动nfs.
NFS安装
# 可以先查询一下本机是否有安装了nfs
# rpm系列Linux
rpm -aq | grep nfs # deb系列
dpkg -l | grep nfs # 查询rpcbind也是同理
# 没有就安装一下啦
# rpm,当然用dnf命令也可以安装的
yum install nfs-utils rpcbind # deb
apt install nfs-utils rpcbind
NFS_Server配置
[root@client_149 ~]# cat /etc/exports
[root@client_149 ~]#
配置文件的格式
1共享目录的路径 2允许访问的NFS客户端ip(3共享权限参数)
- 1、第一项为目录的绝对路径
- 2、允许访问的ip,可以使用通配符,比如192.168.2.*代表192.168.2.0-255都可以访问
- 3、权限参数,有三对
|
参数
|
备注
|
|
文件读写权限相关
|
|
|
登录账号映射匿名
|
|
|
同步数据的方式
|
|
/root/newdir 192.168.2.149(rw,sync,root_squash)
新建共享文件夹
[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
RQUOTAD_PORT=4001
LOCKD_TCPPORT=4002
LOCKD_UDPPORT=4002
MOUNTD_PORT=4003
STATD_PORT=4004
启动服务和开机启动
[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
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
自动挂载
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任意主机在共享、挂载的目录内新建个文件,再在另一主机上查看一下。

Linux的NFS的配置的更多相关文章
- linux nfs服务配置挂载以及oracle使用nfs存储挂载注意事项
服务端共享目录 /home/XXX/nfs_shared 172.16.22.0/24(rw,no_root_squash) service nfs restart 常用命令: 查看所有nfs共享目录 ...
- 嵌入式Linux之NFS配置
NFS(Network File System) 1.RPC和rpcbind RPC(Remote Procedure Call)即远程过程调用,是分布式应用的基础,即允许计算机远程调用网络上其他计算 ...
- Linux系统中NFS服务配置
文章目录: 一.NFS服务简介 二.NFS服务端配置 三.NFS客户端配置 四. ...
- Linux服务——二、配置NFS及autofs自动挂载服务
一.NFS服务配置步骤 NFS的作用:能够使两台虚拟机之间实现文件共享.数据同步 准备:主机名.网络.yum源 Server端: 1.安装nfs-util和rpcbind:(图形化自带) [root@ ...
- 20145213《信息安全系统设计基础》实验一 Linux开发环境的配置
北京电子科技学院(BESTI) 实 验 报 告 课程:信息安全系统设计基础 班级:1452 姓名: 黄亚奇 祁玮 学号:20145213 20145222 成绩: 指导教师:娄嘉鹏 实验日期:2016 ...
- Linux系统NFS网络文件系统
Linux系统NFS网络文件系统 NFS(network file system)网络文件系统,就是通过网络让不同的主机系统之间可以共享文件或目录,此种方法NFS客户端使用挂载的方式让共享文件或目录到 ...
- Linux搭建nfs服务器
使用linux进行嵌入式开发的时候,为了方便开发,通常是将开发板挂载到宿主机的文件系统上,然后将代码放到共享给开发板的目录中,再通过开发板运行. 首先查看是否安装了 nfs 软件包,yum list ...
- LINUX+Vmware+SVN的配置和安装
LINUX+Vmware+SVN的配置和安装 验证SVN安装了没有 svnserve --version 查看CentOS自带JDK是否已安装. ◆输入:yum list installed |gre ...
- 信息安全系统设计基础实验一:Linux开发环境的配置和使用
北京电子科技学院(BESTI) 实验报告 课程:信息安全系统设计基础 班级:1353 姓名:芦畅 傅冬菁 学号:20135308 20135311 成绩: 指导教师:娄家鹏 ...
随机推荐
- 软件项目管理 7.5.项目进度模型(SPSP)
[公众号@ "项目管理研究所" 将会第一时间更新文章并分享<行业分析报告>] 归档于软件项目管理初级学习路线 第七章 软件项目进度计划 你猜猜里面是什么-->&l ...
- 实测:云RDS MySQL性能是自建的1.6倍
1. 摘要 基于之前写的「云厂商 RDS MySQL 怎么选」的文章,为了进一步了解各云厂商在RDS MySQL数据库性能上的差异,本文将对自建MySQL.阿里云.腾讯云.华为云和AWS 的 RDS ...
- Python使用腾讯云-短信服务发送手机短信
目前[腾讯云短信]为客户提供[国内短信].[国内语音]和[海外短信]三大服务,腾讯云短信SDK支持以下操作: 国内短信 国内短信支持操作: • 指定模板单发短信 • 指定模板群发短信 • 拉取短信回执 ...
- 【计算机系统基础1】gdb、gcc简易使用指南
目录 1. 基本实验工具的使用 1.1GCC 在IA-32+LINUX平台 基本的GCC 命令 一些其他选项 1.2objdump 1.3gdb 启动gdb 调试工具 设置断点 启动程序运行 查看程序 ...
- 面试突击62:group by 有哪些注意事项?
注意:本文以下内容基于 MySQL 5.7 InnoDB 数据库引擎. 1.group by 后面不能加 where 在 MySQL 中,所有的 SQL 查询语法要遵循以下语法顺序: select f ...
- 洛谷 P1714 切蛋糕 单调队列
这个题比较显然,要用前缀和来做.但只用前缀和是过不去的,会TLE,所以需要进行优化. 对于每个前缀和数组 b 中的元素,都可以找到以 b[i] 结尾的子段最大值 p[i],显然,最终的 ans 就是 ...
- Chrome安装Vue.js devtool F12无效
要安装 vue-devtools-4.1.4_0 链接: https://pan.baidu.com/s/1aeUxKJEUDW0U_i6uuAZFvQ 提取码: 4btc vue-devtools- ...
- Windows 进程的创建和终止
创建一个进程 总述 如图,创建一个进程主要分为两部分,用户态部分和内核部分. 既然我们想看看一个进程是怎么被创建的,那我们就用 WinDbg 来看看从用户态到内核态都调用了什么: 第一步:我们先看看 ...
- Redis基础课程讲义
Redis基础 课程内容 Redis入门 Redis数据类型 Redis常用命令 在Java中操作Redis 1. 前言 1.1 什么是Redis Redis是一个基于内存的key-value结构数据 ...
- CF1706A Another String Minimization Problem 题解
题意 给定一个长度为 \(n\) 的序列 \(a\) 以及一个长度为 \(m\) 的字符串 \(s\),初始 \(s\) 均为 \(\text{B}\),第 \(i\) 次操作可以把 \(s_{a_i ...