linux系统服务学习(七)NFS服务、DHCP服务

文章目录

  • 一、NFS服务概述
    • 1、任务背景
    • 2、环境准备
    • 3、NFS概述
    • 4、NFS组成
    • 5、与NFS相关的软件包
    • 6、安装NFS软件
    • 7、NFS的配置文件
  • 二、NFS实验
    • 1、搭建NFS服务器
    • 2、编写NFS主配置文件
    • 3、启动相关的NFS服务
    • 4、搭建Web服务器
    • 5、在Web服务器中挂载NFS
    • 6、上传aws.mp4视频到NFS服务器的/share
    • 7、在html网页中调用aws.mp4文件
    • 6、上传aws.mp4视频到NFS服务器的/share
    • 7、在html网页中调用aws.mp4文件
  • 三、搭建FTP服务器和客户端-完整代码
  • 四、DHCP服务
    • 一、dhcp服务概述
      • 1.DHCP概念
      • 2、dhcp服务的工作原理:四线会话
      • 3、常用设备
    • 二、 实验
      • 1、配置IP地址,禁用防火墙 selinux 安装阿里云的源
      • 2、安装dhcp包


一、NFS服务概述

1、任务背景

① 搭建NFS服务器(用于静态资源的存储如图片、视频、附件)

② 使用mount指定对NFS服务器进行挂载,挂载到Web服务器中

2、环境准备

编号 主机名称FQDN IP地址 作用
1 web.hd.cn 192.168.1.11 Web服务器
2 nfs.hd.cn 192.168.1.12 NFS服务器

第一步:设置计算机的在主机名称

Web# hostnamectl set-hostname web.hd.cn
NFS# hostnamectl set-hostname nfs.hd.cn

第二步:设置IP地址

# vim /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=none
IPADDR=192.168.1.11  # /192.168.1.12 #  /192.168.1.13
NETMASK=255.255.255.0
GATEWAY=192.168.1.2
DNS1=114.114.114.114

UUID必须是唯一的,所以要么删除,要么更改UUID的值(更改后3位)

第三步:关闭防火墙与SELinux

关闭防火墙
# systemctl stop firewalld
# systemctl disable firewalld

关闭SELinux
# setenforce 0
# vim /etc/selinux/config
SELINUX=disabled

第四步:配置YUM源

# yum clean all
# yum mackecache

3、NFS概述

4、NFS组成

rpcbind : 负责NFS的数据传输,远程过程调用 tcp/udp协议 端口111

nfs-utils :控制共享哪些文件,权限管理

RPC(Remote Procedure Call Protocol):
远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,不需要了解底层网络技术的协议。

5、与NFS相关的软件包

nfs-utils-1.2.3-26.el6.x86_64 		nfs服务的一个脚本控制工具(服务端与客户端)
nfs4-acl-tools-0.3.3-6.el6.x86_64	acl 工具包
nfs-utils-lib-1.1.5-4.el6.x86_64  	nfs 库文件

6、安装NFS软件

# yum install rpcbind nfs-utils -y

# rpm -q rpcbind
# rpm -aq|grep ^nfs

# rpcinfo -p localhost  查看

7、NFS的配置文件

# vim /etc/exports   (vim /etc/nfs.conf)
共享目录   共享选项
/share    *(ro,sync)
/public	  *(ro,sync)

共享主机:
*   :代表所有主机
192.168.0.0/24:代表共享给某个网段192.168.0.1 ~ 192.168.0.254
192.168.0.0/24(rw) 192.168.1.0/24(ro) :代表共享给不同网段
192.168.0.254:共享给某个IP
*.hd.cn:代表共享给某个域下的所有主机

共享选项:
ro:只读
rw:读写
sync:实时同步,直接写入磁盘(安全性最高)
async:异步,先缓存数据在内存然后再同步磁盘(效率最高,但是有丢失文件风险)
anonuid:设置访问nfs服务的用户的uid,uid需要在/etc/passwd中存在
anongid:设置访问nfs服务的用户的gid
root_squash :默认选项 root用户创建的文件的属主和属组都变成nfsnobody,其他人nfs-server端是它自己,client端是nobody。(访问NFS服务器时,映射为匿名账号)
no_root_squash:root用户创建的文件属主和属组还是root,其他人server端是它自己uid,client端是nobody。(访问NFS服务器时,映射为root管理员账号)
all_squash: 不管是root还是其他普通用户创建的文件的属主和属组都是nfsnobody

说明:
anonuid和anongid参数和all_squash一起使用。
all_squash表示不管是root还是其他普通用户从客户端所创建的文件在服务器端的拥有者和所属组都是nfsnobody;服务端为了对文件做相应管理,可以设置anonuid和anongid进而指定文件的拥有者和所属组

二、NFS实验

1、搭建NFS服务器

第一步:安装软件

# yum install rpcbind nfs-utils -y

第二步:创建一个共享目录,如/share

# mkdir /share

2、编写NFS主配置文件

# vim /etc/exports
共享目录   共享选项
/share    192.168.1.0/24(rw,sync,no_root_squash)
rw 访问共享文件夹的权限
sync 表示写在缓冲区的数据会立刻同步到硬盘中,防止数据丢失
no_root_squash:root不用不需要转换身份

3、启动相关的NFS服务

# systemctl start rpcbind  111端口
# rpcinfo -p localhost  查看(netstat -naput | grep 111)
# systemctl start nfs
# systemctl enable nfs
# systemctl enable rpcbind
# ss -naltp |grep 111       111端口

4、搭建Web服务器

# yum install httpd -y
# systemctl start httpd

当Apache软件启动完毕后,会自动占用计算机的80端口。

80端口指向Web服务器的目录 => /var/www/html

所以项目源代码都可以直接存放于/var/www/html目录下

# echo "NFS实战演练" > /var/www/html/index.html

5、在Web服务器中挂载NFS

# mkdir /var/www/html/media


# mount -t nfs 192.168.1.12:/share /var/www/html/media # mount.nfs 192.168.1.12:/share /var/www/html/media

永久挂载
# echo "mount -t nfs 192.168.8.137:/data1 /var/www/html/media" >> /etc/rc.local
# chmod +x /etc/rc.d/rc.local
自动挂载
#vim /etc/fstab    网络上尽量不要用这个,本地可以
192.168.8.137:/data1 /var/www/html/medie	nfs4	defaults	0 0

# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   17G  5.1G   12G  30% /
devtmpfs                 894M     0  894M   0% /dev
tmpfs                    910M     0  910M   0% /dev/shm
tmpfs                    910M   11M  900M   2% /run
tmpfs                    910M     0  910M   0% /sys/fs/cgroup
/dev/sda1               1014M  179M  836M  18% /boot
tmpfs                    182M   28K  182M   1% /run/user/1000
/dev/sr0                 4.3G  4.3G     0 100% /run/media/itheima/CentOS 7 x86_64
tmpfs                    182M     0  182M   0% /run/user/0
10.1.1.12:/share          17G  5.1G   12G  30% /var/www/html/media

如果客户端没有安装nfs工具可能导致挂载失败:
yum -y install nfs-utils nfs-utils-lib nfs4-acl-tools

6、上传aws.mp4视频到NFS服务器的/share

第一步:使用MX上传aws.mp4到/share目录(NFS服务器)

第二步:在Web服务器中,ll /var/www/html/media目录

# ll /var/www/html/media
aws.mp4

7、在html网页中调用aws.mp4文件

# vim /var/www/html/index.html

什么是nfs?nework file system
网络文件系统nfs  ------------本地文件系统 ntfs  fat32  ext4  ,xfs  
nfs应用场景 network file system 


nfs服务器实验



操作步骤如下:

[root@hd2 ~]# yum -y install net-tools  #安装ifconfig命令
[root@hd2 ~]#ifconfig ens33 192.168.1.12
2.安装nfs服务和rpcbind服务
[root@hd2 ~]# yum -y install nfs-utils rpcbind -y
[root@hd2 ~]# rpm -qa | egrep "nfs|rpcbind"
3. 先启动rpcbind服务 监听的端口号是:111
[root@hd2 ~]# systemctl start rpcbind 
root@hd2 ~]# systemctl status rpcbind|grep active
   Active: active (running) since 五 2021
[root@hd2 ~]# rpcinfo -p localhost
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
4.启动nfs服务
[root@hd2 ~]# systemctl start nfs
[root@hd2 ~]# systemctl status nfs

5.设置开机自启动
[root@hd2 ~]# systemctl enable nfs
[root@hd2 ~]# systemctl enable rpcbind
7.编辑nfs的主配置文件有两个
/etc/nfs.conf   /etc/exports
[root@hd2 data]#mkdir /data
[root@hd2 data]# vi /etc/exports
/data 192.168.1.0/24(rw,sync,no_root_squash)

rw表示客户端对/data目录的权限是可读可写
sync表示客户端对/data目录的写入要马上同步到磁盘,以防止数据的丢失
开始存储到内存,sync的意思是将内存的数据立刻存储到硬盘
no_root_squash: root不用不需要转换身份

什么叫异步?
写数据到缓存,直到缓存满了,才会向硬盘进行写入操作

8. 重启服务
[root@hd2 ~]# systemctl reload nfs

优雅的重启 跟重启的区别

命令上:/etc/init.d/nfs reload
重启:/etc/init.d/nfs restart
Reload 其实是不中断对外提供服务的基础上,重新加载配置文件
给客户的感觉 非常 优雅 nice 
Restart 缺点是中断了对外的提供的服务,重新加载配置文件
生产环境下,一般要reload

8.测试
在服务器上自我测试共享是否成功了
[root@hd2 ~]# showmount -e localhost
Export list for localhost:
/data 192.168.1.0/24
表示测试成功,服务端配置完毕

共享权限的问题
客户端访问nfs服务器使用的账号是 nfsnobody 这个账号对于/data目录由两种权限
A.系统权限 为 只读和执行
B.nfs权限  为 可读可写
综合以上两点,默认情况下,客户端访问/data是没有写权限的。
下面是关于权限的设置
[root@hd2 ~]# grep 65534 /etc/passwd
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin

这个账号是nfs程序的默认账号
[root@hd2 ~]# chown -R nfsnobody.nfsnobody /data
接下来, 在192.168.1.11上配置nfs客户端
1.配置ip地址和yum源 并安装rpcbind
[root@hd1 ~]# mount /dev/sr0 /media/cdrom
[root@hd1 ~]# yum -y install showmount
[root@hd1 ~]# showmount -e 192.168.1.12
Export list for 192.168.1.12:
/data 192.168.1.0/24
表示测试成功了
3. 下面是挂载
[root@hd1 ~]#mkdir /data1
[root@hd1 ~]# mount -t nfs 192.168.1.12:/data  /data1
[root@hd1 ~]# echo "mount -t nfs 192.168.1.12:/data /data1">>/etc/rc.local
[root@hd1 ~]# chmod +x /etc/rc.d/rc.local
测试在客户端上是否能够创建文件删除文件等
[root@hd1 ~]#cd /data1
[root@hd1 data1]# touch {1..10}
[root@hd1 data1]# ls
1  10  2  3  4  5  6  7  8  9

之后在nfs服务器上去查看一下有没有刚才创建的文件
如果有表示nfs没问题
[root@hd2 ~]# cd /data
[root@hd2 ~]#ls
1  10  2  3  4  5  6  7  8  9

实现自动挂载
[root@hd1 ~]#vim /etc/fstab
192.168.1.12:/data	/data1	nfs4	defaults	0 0
[root@hd1 ~]#mount -a
18% /boot
tmpfs                    182M   28K  182M   1% /run/user/1000
/dev/sr0                 4.3G  4.3G     0 100% /run/media/itheima/CentOS 7 x86_64
tmpfs                    182M     0  182M   0% /run/user/0
10.1.1.12:/share          17G  5.1G   12G  30% /var/www/html/media

如果客户端没有安装nfs工具可能导致挂载失败:
yum -y install nfs-utils nfs-utils-lib nfs4-acl-tools

6、上传aws.mp4视频到NFS服务器的/share

第一步:使用MX上传aws.mp4到/share目录(NFS服务器)

第二步:在Web服务器中,ll /var/www/html/media目录

# ll /var/www/html/media
aws.mp4

7、在html网页中调用aws.mp4文件

# vim /var/www/html/index.html

三、搭建FTP服务器和客户端-完整代码


nft服务器操作

在192.168.8.137上配置nfs服务端
1.环境准备
关闭防火墙
# systemctl stop firewalld
# systemctl disable firewalld
关闭SELinux
# setenforce 0
# vim /etc/selinux/config
SELINUX=disabled

2.配置YUM源
# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# yum clean all
# yum makecache
# yum -y install net-tools  #安装ifconfig命令
#ifconfig ens33 192.168.1.12

3.安装nfs服务和rpcbind服务
# yum -y install nfs-utils rpcbind -y
# rpm -qa | egrep "nfs|rpcbind"
# rpm -q rpcbind
# rpm -aq|grep ^nfs
# rpcinfo -p localhost  查看

4. 先启动rpcbind服务 监听的端口号是:111
# systemctl start rpcbind 
# systemctl status rpcbind|grep active
   Active: active (running) since 五 2021
# rpcinfo -p localhost
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    启动nfs服务
# systemctl start nfs
# systemctl enable nfs
# systemctl enable rpcbind
5.编辑nfs的主配置文件有两个
/etc/nfs.conf   /etc/exports
# mkdir /data
# vi /etc/exports   
/data 192.168.8.0/24(rw,sync,no_root_squash)
(这里写的是网段)
rw表示客户端对/data目录的权限是可读可写
sync表示客户端对/data目录的写入要马上同步到磁盘,以防止数据的丢失
开始存储到内存,sync的意思是将内存的数据立刻存储到硬盘
no_root_squash: root不用不需要转换身份
什么叫异步?
写数据到缓存,直到缓存满了,才会向硬盘进行写入操作

6. 重启服务
# systemctl reload nfs

优雅的重启 跟重启的区别

命令上:/etc/init.d/nfs reload
重启:/etc/init.d/nfs restart
Reload 其实是不中断对外提供服务的基础上,重新加载配置文件
给客户的感觉 非常 优雅 nice 
Restart 缺点是中断了对外的提供的服务,重新加载配置文件
生产环境下,一般要reload

7.测试
在服务器上自我测试共享是否成功了
# showmount -e localhost
Export list for localhost:
/data 192.168.1.0/24
表示测试成功,服务端配置完毕

共享权限的问题
客户端访问nfs服务器使用的账号是 nfsnobody 这个账号对于/data目录由两种权限
A.系统权限 为 只读和执行
B.nfs权限  为 可读可写
综合以上两点,默认情况下,客户端访问/data是没有写权限的。
下面是关于权限的设置
# grep 65534 /etc/passwd
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
这个账号是nfs程序的默认账号
# chown -R nfsnobody.nfsnobody /data

客户机操作
在192.168.8.138上配置nfs客户端
1.配置ip地址和yum源 并安装rpcbind
ip为192.168.8.138 
yum源配置为网络源
# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# yum clean all
# yum makecache
# yum install -y rpcbind
# mount /dev/sr0 /media/cdrom   #本地光盘做yum源,不需要
# yum -y install showmount
# showmount -e 192.168.8.137
Export list for 192.168.8.137:
/data 192.168.8.0/24
表示测试成功了
3. 下面是挂载
# mkdir /data1
# mount -t nfs 192.168.8.137:/data  /data1
# echo "mount -t nfs 192.168.8.137:/data /data1" >> /etc/rc.local
# chmod +x /etc/rc.d/rc.local
测试在客户端上是否能够创建文件删除文件等
#cd /data1
# touch {1..10}
# ls
1  10  2  3  4  5  6  7  8  9

之后在nfs服务器上去查看一下有没有刚才创建的文件
如果有表示nfs没问题
[root@hd2 ~]# cd /data
[root@hd2 ~]#ls
1  10  2  3  4  5  6  7  8  9

实现自动挂载 --这个不建议使用,适合本地实验,网络中使用会有各种报错
[root@hd1 ~]#vim /etc/fstab
192.168.1.12:/data	/data1	nfs4	defaults	0 0
[root@hd1 ~]#mount -a



四、DHCP服务

一、dhcp服务概述

1.DHCP概念

动态主机配置协议 用来配置网络参数的一个服务(ip地址、子网掩码、网关,dns服务器)

#家里的无线路由器默认就给每一台手机自动分发ip地址参数

2、dhcp服务的工作原理:四线会话

  1. 客户端发送DHCPdiscovery

  2. dhcp服务器回应DHCPoffer

  3. 客户端发送DHCPrequest广播包,告知选择结果

  4. dhcp服务器发送DHCPack包,包含完整的网络参数

3、常用设备

三层交换机、路由器、防火墙、windows服务器、linux服务器、vmware 都可以实现此服务

二、 实验

配置DHCP服务器 192.168.8.138

1、配置IP地址,禁用防火墙 selinux 安装阿里云的源

关闭防火墙
# systemctl stop firewalld
# systemctl disable firewalld
关闭SELinux
# setenforce 0
# vim /etc/selinux/config
SELINUX=disabled
配置YUM源
# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# yum clean all
# yum makecache
# yum -y install net-tools  #安装ifconfig命令
#ifconfig ens33 192.168.1.12

2、安装dhcp包

1、安装dhcp服务器的包
# yum -y install dhcp
#查看 
[root@hd2 ~]# rpm -qa |grep dhcp
dhcp-common-4.2.5-83.el7.centos.1.x86_64
dhcp-libs-4.2.5-83.el7.centos.1.x86_64
dhcp-4.2.5-83.el7.centos.1.x86_64
[root@hd2 ~]# rpm -ql dhcp 
/etc/dhcp/dhcpd.conf  #主配置文件
#样例文件 
/usr/share/doc/dhcp*/dhcpd.conf.example
# cd /etc/dhcp/
# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example dhcpd.conf
cp:是否覆盖"dhcpd.conf"? y
#修改主配置文件,提供至少一个dhcp地址池
# vi dhcpd.conf  #修改47行到54行内容如下:
   47 subnet 192.168.8.0 netmask 255.255.255.0 {
     48   range 192.168.8.150 192.168.8.160;
     49   option domain-name-servers 114.114.114.114;
     50   option routers 192.168.8.2;
     51   option broadcast-address 192.168.8.255;
     52   default-lease-time 600;
     53   max-lease-time 7200;
     54 }
#启动dhcpd服务
[root@hd2 dhcp]# systemctl start dhcpd
#查看服务监听的端口号
[root@hd2 dhcp]# netstat -nplu|grep 67
udp        0      0 0.0.0.0:67              0.0.0.0:*                           19258/dhcpd   
#关闭vmware vnet8 的 dhcp服务,使用本地DHCP服务
#配置本地宿主机的vmnet8网卡,自动获取ip地址
#确定之后,打开命令提示符,ipconfig/all查看是否获取了ip地址和网关

配置客户端192.168.8.138
1、修改自动获取ip
# vim /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=dhcp
2、重启网卡
# systemctl restart network
3、查看ip
# ifconfig 
4、查看路由
# route -u
5、查看DNS配置
# cat /etc/resolv.conf

你可能感兴趣的:(运维工程师,linux,学习,运维)