Linux学习历程(3)

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

  • 挂载光盘配置本地源
[root@centos8 ~]#rpm -q autofs || yum -y install autofs
[root@centos8 ~]#systemctl enable --now autofs

如图,为本地挂载CDROM的yum源以及网络源


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

  • 先关掉防火墙和SELinux
[root@centos8 ~]# systemctl disable --now firewalld
[root@centos8 ~]# selinux vim /etc/selinux/config SELINUX=disable
  • 提前安装httpd需要的依赖包
[root@centos8 ~]# dnf install gcc make autoconf apr-devel apr-util-devel pcre-devel openssl-devel redhat-rpm-config

  • 下载httpd源码包
[root@centos8 ~]# wget https://dlcdn.apache.org//httpd/httpd-2.4.53.tar.bz2

  • 解压httpd源码包到/usr/local/src
[root@centos8 ~]# tar xvf httpd-2.4.53.tar.bz2 -C /usr/local/src
  • 进入到解压生成的文件夹内配置
[root@centos8 ~]# cd /usr/local/src/httpd-2.4.53/
[root@centos8 httpd-2.4.53]#./configure --prefix=/apps/httpd --sysconfdir=/etc/httpd --enable-ssl

  • 接着进行编译并安装
[root@centos8 httpd-2.4.53]# make -j 1 && make install #其中1为查询当前cpu核数(lscpu查看)

  • 配置环境
[root@centos8 ~]# echo 'PATH=/apps/httpd/bin/:$PATH' > /etc/profile.d/httpd.sh
[root@centos8 ~]# . /etc/profile.d/httpd.sh

  • 运行
[root@centos8 ~]# apachectl start
  • 可以进入网站

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

[root@centos8 ~]#ifconfig #查看网卡名称
[root@centos8 ~]#ifconfig ens160|sed -n '2p'|tr -s ' '|cut -d ' ' -f3


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

[root@centos8 ~]#cat /etc/fstab | sed 's/^# *//'
[root@centos8 ~]#cat /etc/fstab | sed 's/^#[[:space:]]*//'


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

#目录名
[root@centos8 ~]#echo /etc/fstab | sed -nr 's/(^\/.*)(\/.*)/\1/p'
#基名
[root@centos8 ~]#echo /etc/fstab | sed -nr 's/(^\/.*)(\/.*)/\2/p'


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

apt install #安装软件包
apt remove #删除软件包
apt purge #删除软件包和配置文件
apt update #刷新存储库索引
apt upgrade #升级所有可升级的软件包
apt autoremove #自动删除不需要的包
apt full-upgrade #在升级软件包时自动处理依赖关系
apt search #搜索应用程序
apt show #显示安装细节
apt list #列出已经安装的包
apt edit-sources #修改更新源地址
apt depends #查看软件依赖哪些包
apt redepends #查看软件被哪些包依赖

7、简述osi七层模型和TCP/IP五层模型
七层模型:
应用层 ----> 为应用程序提供服务
表示层 ----> 数据格式转化、数据加密
会话层 ----> 建立、管理和维护会话
传输层 ----> 建立、管理和维护端到端的连接
网络层 ----> IP选址及路由选择
数据链路层 ---->提供介质访问和链路管理
物理层 ----> 物理层

五层模型:
应用层 --\
表示层 ----> 应用层
会话层 --/
传输层 ----> 传输层
网络层 ----> 网络层
数据链路层 ---->数据链路层
物理层 ----> 物理层


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

  • 第一次握手:
    客户向服务器发送连接请求段:SYN 报文段:(SYN=1,seq=n)
    SYN=1:建立连接请求控制段。
    seq=n:表示传输的报文段的第 1 个数据字节的序列号是 n,并以此序列号代表
    整个报文段的序号(补充:sequence number,序号的意思。)
    客户端进入 SYN_SENT(同步发送)。

  • 第二次握手:
    服务器收到 TCP 连接请求段后,如果同意,则发回确认报文段:
    (SYN=1,ACK=1,seq=m, ack_seq=n+1)。
    SYN=1:同意建立新连接的确认段。
    ack_seq=n+1:表示已经收到了序列号为 n 的报文段,准备接收序列号为 n+1
    的报文段。
    seq=m:服务器告诉客户确认报文段的第 1 个数据字节的序列号是 m。
    服务器由 LISTEN 进入 SYN_RCVD(同步收到)。

  • 第三次握手:只有第三次握手可携带数据。
    客户对服务器的 同意连接报文段 进行确认(ACK=1,seq=n+1,ack_seq=m+1)。
    seq=n+1:客户传输的报文段的第一个数据字节的序列号是 n+1。
    ack_seq=m+1:客户期望接收服务器序列号为 m+1 的报文段。当客户发送 ACK 时,客户端进入 ESTAB-LISHED 状态;当服务收到 ACK 后,也进入 ESTAB-LISHED 状态;

  • 第一次挥手:
    客户向服务器发送释放连接报文段:(FIN=1,seq=j)。
    首部的 FIN=1:TCP 报文段的发送端数据发送完毕,请求释放连接。
    序号 seq=j:表示传输的第一个数据字节的序号是 j 客户端状态ESTABLISHED 进入 FIN_WAIT_1(终止等待 1 状态)。

  • 第二次挥手:
    服务器向客户发送确认段:(ACK=1,seq=k,ack_seq=j+1) 。
    ACK=1:标识确认字号段有效。
    确认序号 ack_seq=j+1:表示服务器期望接收客户数据包序号为 j+1 的包。
    序号 seq=k:表示服务器传输的第一个数据字节的序号是 k。
    服务器状态由 ESTABLISHED 进入 CLOSE_WAIT(关闭等待) 客户端收到 ACK 段后,由 FIN_WAIT_1 进入 FIN_WAIT_2。

  • 第三次挥手:
    服务器向客户发送释放连接报文段:(FIN=1,ACK=1,seq=o,ack_seq=j+1)。
    FIN=1:请求释放连接。
    ACK=1:标识确认字号段有效。
    确认序号 ack_seq=j+1:表示服务器期望接收客户数据包序号为 j+1 的包。
    序号 seq=o:表示自己传输的第一个数据字节的序号是 o。
    服务器状态由 CLOSE_WAIT 进入 LAST_ACK(最后确认状态)。

  • 第四次挥手:
    客户向服务器发送确认段:(ACK=1,seq=j+1,ack_seq=o+1) 。
    ACK=1:标识确认字号段有效。
    确认序号 ack_seq=o+1:表示客户期望接收服务器数据包序号为 o+1 的包。
    序号 seq=j+1:表示客户传输的第一个数据字节的序号是 j+1 客户端状态由FIN_WAIT_2 进入 TIME_WAIT,等待 2MSL 时间,进入 CLOSED状态,释放连接。
    服务器在收到最后一次 ACK 段后,由 LAST_ACK 进入 CLOSED,释放连接。


9、描述TCP和UDP区别

  • TCP 提供面向连接、可靠、有序、字节流传输服务; UDP 提供无连接、不可靠的数据报尽力传输服务。
  • UDP 具有较好的实时性,工作效率比 TCP 高,适用于对高速传输和实时性 较高的通信或广播通信。
  • UDP 没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低。
  • 每一条 TCP 连接只能是点到点的; UDP 支持一对一、一对多、多对一和多对多的交互通信。
  • TCP 首部开销 20 字节;UDP 的首部开销小,只有 8 个字节。
  • TCP 对系统资源要求较多; UDP 对系统资源要求较少。
  • TCP 的逻辑通信信道是全双工的可靠信道。 UDP 则是不可靠信道。

10、网卡绑定bond0的实现

  • 模拟设备两个网卡
  • 添加bonding接口
[root@centos8 ~]#nmcli connection add type bond con-name testbond0 ifname bond0 mode active-backup ipv4.method manual ipv4.address 192.168.198.135/24

  • 添加从属接口
[root@centos8 ~]#nmcli connection add type bond-slave ifname ens224 master bond0 #将eth0添加到bond0
[root@centos8 ~]#nmcli connection add type bond-slave ifname ens160 master bond0 #将eth1添加到bond0

  • 启动从属接口
[root@centos8 ~]#nmcli connection up bond-slave-ens224
[root@centos8 ~]#nmcli connection up bond-slave-ens160

  • 启动bond0接口
[root@centos8 ~]#nmcli connection up testbond0

  • bonding后的接口
posted @   12avde  阅读(29)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
点击右上角即可分享
微信分享提示