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通,说明正确。