第三周作业

1、自建yum仓库,分别为网络源和本地源

准备工作:挂载本地光盘

rpm -q autofs || yum -y install autofs
systemctl enable --now autofs
cd /misc/cd

查看:df -h,看到sr0,说明就挂载上去了

这样,本地光盘就挂载完毕,我们可以编写文档,修改yum的来源

cd /etc/repos.d
mkdir bak
mv *.repo bak/

编写新的yum源文件

vim base.repo
[base]
name=CentOS
#file:///misc/cd是本地光盘路径
baseurl=file:///misc/cd
        https://mirror.tuna.tsinghua.edu.cn/centos/$releasever/os/$basearch
        https://mirrors.huaweicloud.com/centos/$releasever/os/$basearch
        https://mirrors.cloud.tencent.com/centos/$releasever/os/$basearch
        https://mirrors.aliyun.com/centos/$releasever/os/$basearch          
gpgcheck=0

[extras]
name=extras
baseurl=https://mirror.tuna.tsinghua.edu.cn/centos/$releasever/extras/$basearch
        https://mirrors.huaweicloud.com/centos/$releasever/extras/$basearch
        https://mirrors.cloud.tencent.com/centos/$releasever/extras/$basearch
        https://mirrors.aliyun.com/centos/$releasever/extras/$basearch
#不校验key
gpgcheck=0  
enabled=1

[epel]
name=epel
baseurl=https://mirrors.cloud.tencent.com/epel/$releasever/$basearch
        https://mirrors.huaweicloud.com/epel/$releasever/$basearch
#校验key
gpgcheck=1  
gpgkey=https://mirrors.huaweicloud.com/epel/RPM-GPG-KEY-EPEL-7

保存退出,本地源和网络源已经配置完毕

2、编译安装http2.4,实现可以正常访问,并将编译步骤和结果提交。

初始化服务器

systemctl stop firewalld
systemctl disable firewalld

vim /etc/selinux/config

SELINUX=disabled

拉取对应的数据包

yum -y install gcc make autoconf apr-devel apr-util-devel pcredevel openssl-devel redhat-rpm-config

下载并且解压缩

#下载
wget https://dlcdn.apache.org/httpd/httpd-2.4.53.tar.gz
#解压到/usr/local/src文件夹底下
tar xvf httpd-2.4.53.tar.gz -C /usr/local/src

当我们使用wget下载的时候,可能会报ERROR: cannot verify xxx certificate, issued by ‘/C=US/O=Let’s Encrypt/CN=R3’:use `--no-check-certif的错误。
这是因为我们使用 wget命令下载不安全的https 域名下的内容时会出现的,拉取以下的ca-certificates包即可:

yum install -y ca-certificates
cd /usr/local/src/httpd-2.4.53/
##预编译
./configure --prefix=/apps/httpd --sysconfdir=/etc/httpd --enable-ssl
#编译
make -j 4 && make install
#查看结构树
tree /app/httpd
#启动
./apachectl start

--prefix:指定安装目录
--sysconfdir:指定配置文件路径(一般情况下都是放在一个路径下,这样好管理,偶尔会指定配置文件路径)
--enable-ssl:支持加密
make -j 4:使用四核编译,这样编译速度会快一些(默认单核编译)

测试下
在浏览器输入10.0.0.158

3、利用sed 取出ifconfig命令中本机的IPv4地址

ifconfig ens33 |sed -nr "2s/[^0-9]+([0-9.]+).*/\1/p"

4、删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符

sed -ri.bak 's@^#[ :space: ]+(.*$)@\1@g' /etc/fstab

5、处理/etc/fstab路径,使用sed命令取出其目录名和基名

echo /etc/fstab | sed -nr 's#(.*)/([^/]+)/?#\1#p'
echo /etc/fstab | sed -nr 's#(.*)/([^/]+)/?#\2#p'

6、列出ubuntu软件管理工具apt的一些用法(自由总结)

apt install 安装软件包
apt remove 移除软件包
apt purge 移除软件包及配置文件
apt update 刷新存储库索引
apt search 搜索应用程序
apt show 显示安装细节
apt list 列出包含条件的包(已安装,可升级等)
apt edit-sources 编辑source源⽂件

7、简述osi七层模型和TCP/IP五层模型

osi七层模型
  • 第7层 应用层
    应用层(Application Layer)提供为应用软件而设的接口,以设置与另一应用软件之间的通信。例如:
    HTTP、HTTPS、FTP、TELNET、SSH、SMTP、POP3、MySQL等
  • 第6层 表示层
    主条目:表示层(Presentation Layer)把数据转换为能与接收者的系统格式兼容并适合传输的格式
  • 第5层 会话层
    会话层(Session Layer)负责在数据传输中设置和维护电脑网络中两台电脑之间的通信连接。
  • 第4层 传输层
    传输层(Transport Layer)把传输表头(TH)加至数据以形成数据包。传输表头包含了所使用的协议
    等发送信息。例如:传输控制协议(TCP)等。
  • 第3层 网络层
    网络层(Network Layer)决定数据的路径选择和转寄,将网络表头(NH)加至数据包,以形成报文。
    网络表头包含了网络数据。例如:互联网协议(IP)等。
  • 第2层 数据链接层
    数据链路层(Data Link Layer)负责网络寻址、错误侦测和改错。当表头和表尾被加至数据包时,会形
    成信息框(Data Frame)。数据链表头(DLH)是包含了物理地址和错误侦测及改错的方法。数据链
    表尾(DLT)是一串指示数据包末端的字符串。例如以太网、无线局域网(Wi-Fi)和通用分组无线服务
    (GPRS)等。分为两个子层:逻辑链路控制(logical link control,LLC)子层和介质访问控制
    (Media access control,MAC)子层
  • 第1层 物理层
    物理层(Physical Layer)在局部局域网上传送数据帧(Data Frame),它负责管理电脑通信设备和网
    络媒体之间的互通。包括了针脚、电压、线缆规范、集线器、中继器、网卡、主机接口卡等
TCP/IP五层模型
  • 应用层
  • 传输层
  • 互联网层
  • 数据链路层
  • 物理层

8、总结描述TCP三次握手四次挥手

TCP三次握手(连接)
  • 首先 Client 端发送连接请求报文
  • Server 段接受连接后回复 ACK 报文,并为这次连接分配资源。
  • Client 端接收到 ACK 报文后也向 Server 段发生 ACK 报文,并分配资源,这样 TCP 连接就建立了。
TCP四次挥手(关闭连接)
  • 第一次挥手:Clien发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。
  • 第二次挥手:Server收到FIN后,发送一个ACK给Client,Server进入CLOSE_WAIT状态。
  • 第三次挥手: Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。
  • 第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,发送ACK给Server,Server进入CLOSED状态,完成四次握手。

9、描述TCP和UDP区别

  • TCP基于连接,而UDP基于无连接的;
  • 对系统资源的要求:TCP较多(TCP有20个字节信息包),UDP少(UDP信息包只有8个字节);
  • UDP程序结构较简单;
  • TCP是字节流模式,而UDP是数据报文模式 ;
  • TCP保证数据正确性,安全可靠,并且保证数据顺序,而UDP可能丢包,而且UDP不保证数据顺序。

10、网卡绑定bond0的实现

  • 添加一块网卡。选择一个虚拟机,右击设置,添加一块额外的网卡。
  • 添加完网卡后,我们可以使用ip addr命令查看,如下图:
[root@Centos7 ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:10:42:cb brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.161/24 brd 10.0.0.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe10:42cb/64 scope link
       valid_lft forever preferred_lft forever
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:10:42:d5 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.164/24 brd 10.0.0.255 scope global noprefixroute dynamic ens37
       valid_lft 1698sec preferred_lft 1698sec
    inet6 fe80::948e:f765:a411:47f4/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

  • 创建网卡mybond0,执行如下语句:
[root@Centos7 network-scripts]# nmcli connection add con-name mybond0 ifname bond0 type bond mode active-backup ipv4.method manual ipv4.addresses 10.10.10.100/24
Connection 'mybond0' (88a739e8-3266-4409-9d5d-980339a77f12) successfully added.
[root@Centos7 network-scripts]# nmcli connection
NAME                UUID                                  TYPE      DEVICE
ens33               92d14e5c-e730-4000-ae38-1470d01ea674  ethernet  ens33
ens37               4a5516a4-dfa4-24af-b1c4-e843e312e2fd  ethernet  ens37
mybond0             88a739e8-3266-4409-9d5d-980339a77f12  bond      bond0

  • 执行 cat ifcfg-mybond0 命令也可查看这个文件的信息
[root@Centos7 network-scripts]# cat ifcfg-mybond0
BONDING_OPTS=mode=active-backup
TYPE=Bond
BONDING_MASTER=yes
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
IPADDR=10.10.10.100
PREFIX=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=mybond0
UUID=88a739e8-3266-4409-9d5d-980339a77f12
DEVICE=bond0
ONBOOT=yes
[root@Centos7 network-scripts]#
  • 绑定网卡
    分别执行 nmcli con add type bond-slave ifname eth1 master bond0 和 nmcli con add type bond-slave ifname eth0 master bond0 命令,将eth1和eth0网卡绑定到bond0上(如下图)
[root@Centos7 network-scripts]# nmcli con add type bond-slave ifname ens37 master bond0
Connection 'bond-slave-ens37' (31b0d314-568c-4e67-a3ea-4ba6a6b29025) successfully added.
[root@Centos7 network-scripts]# nmcli con add type bond-slave ifname ens33 master bond0
Connection 'bond-slave-ens33' (f75d15ad-c7c0-46f5-a9a1-4eaafab8f2c0) successfully added.
[root@Centos7 network-scripts]#
  • 执行 nmcli connection up bond-slave-eth1 和 nmcli connection up bond-slave-eth0 命令令其生效,切换到centos8.3上也可看到已经能ping通10.10.10.100的地址了

注意:如果是在xshell上操作的,执行eth0的命令后xshell会断开连接,需登录到10.10.10.100的ip后才可进行后续操作。

  • 执行 cat /proc/net/bonding/bond0 命令,可见当前bond0的主-备关系中,eth1为主,eth0处于备用状态(如下图)。
[root@Centos7 ~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: ens33
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: ens33
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:10:42:cb
Slave queue ID: 0

Slave Interface: ens37
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:10:42:d5
Slave queue ID: 0
[root@Centos7 ~]#
  • 测试,再开一台虚拟机,轮流关闭网卡,测试是否能够ping通,若能够ping通,并且同时关闭ens33和ens37网卡,不能ping通,说明正确。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、自建yum仓库,分别为网络源和本地源 CentOS本地光盘源配置 cd /etc/yum.repos.d/mk...
    布格雷斯阅读 208评论 0 0
  • 1、redis服务配置文件详解 bind 0.0.0.0 #监听地址,可以用空格隔开后多个监听IP protect...
    安德鲁内曼阅读 93评论 0 0
  • 上传脚本 scp xxx wang@172.18.0.7:/data/script38口令 mageduifcon...
    大白菜运维阅读 279评论 0 0
  • 1丶描述 Linux 发行版的系统目录名称命名规则以及用途。 描述 Linux 发行版下系统目录名称命名规则如下:...
    Siuyu丶阅读 169评论 1 0
  • 1、描述Linux发行版的系统目录名称命名规则以及用途。linux各发行版都遵循LSB(Linux Standar...
    letsgoheat_c1dc阅读 462评论 2 0