文章目錄
- 一、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.114UUID必須是唯一的,所以要么刪除,要么更改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
<video width="800" height="450" controls><source src="media/aws.mp4">
</video>
什么是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 activeActive: active (running) since 五 2021
[root@hd2 ~]# rpcinfo -p localhostprogram vers proto port service100000 4 tcp 111 portmapper100000 3 tcp 111 portmapper100000 2 tcp 111 portmapper100000 4 udp 111 portmapper100000 3 udp 111 portmapper100000 2 udp 111 portmapper
4.啟動nfs服務
[root@hd2 ~]# systemctl start nfs
[root@hd2 ~]# systemctl status nfs5.設置開機自啟動
[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 缺點是中斷了對外的提供的服務,重新加載配置文件
生產環境下,一般要reload8.測試
在服務器上自我測試共享是否成功了
[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
<video width="800" height="450" controls><source src="media/aws.mp4">
</video>
三、搭建FTP服務器和客戶端-完整代碼
nft服務器操作在192.168.8.137上配置nfs服務端
1.環境準備
關閉防火墻
# systemctl stop firewalld
# systemctl disable firewalld
關閉SELinux
# setenforce 0
# vim /etc/selinux/config
SELINUX=disabled2.配置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.123.安裝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 activeActive: active (running) since 五 2021
# rpcinfo -p localhostprogram vers proto port service100000 4 tcp 111 portmapper100000 3 tcp 111 portmapper100000 2 tcp 111 portmapper100000 4 udp 111 portmapper100000 3 udp 111 portmapper100000 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 缺點是中斷了對外的提供的服務,重新加載配置文件
生產環境下,一般要reload7.測試
在服務器上自我測試共享是否成功了
# 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服務的工作原理:四線會話
-
客戶端發送DHCPdiscovery
-
dhcp服務器回應DHCPoffer
-
客戶端發送DHCPrequest廣播包,告知選擇結果
-
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