一、网络基础
1. OSI 七层 vs TCP/IP 四层模型对比
(1)分层结构对照
OSI 七层(自上而下)
- 应用层:为应用程序提供网络服务(HTTP、FTP、DNS)
- 表示层:数据加密、解密、编码、格式转换、压缩
- 会话层:建立 / 维护 / 断开应用会话,同步会话
- 传输层:端到端流量控制、差错校验、端口区分(TCP/UDP)
- 网络层:寻址、路由、跨网段转发(IP、ICMP)
- 数据链路层:帧封装、MAC 寻址、差错检测(以太网、ARP)
- 物理层:比特流传输、硬件电气标准(网线、网卡、集线器)
TCP/IP 四层(行业实际标准)
- 应用层:合并 OSI 应用 + 表示 + 会话层,直接面向应用(HTTP、SSH、DNS)
- 传输层:和 OSI 传输层功能一致(TCP、UDP)
- 网际层(互联网层):等价 OSI 网络层(IP、ICMP、ARP)
- 网络接口层(主机 - 网络层):合并 OSI 数据链路 + 物理层,负责帧与比特流收发
(2)两种模型定位
- OSI 七层模型:纯理论标准,国际标准化组织 ISO 制定。用于教学、理论分析、设备分层设计参考;分层细致逻辑严谨,但协议实现复杂,现实无完整设备严格遵循七层。
- TCP/IP 四层模型:实践标准,基于互联网原生协议栈。所有操作系统、路由器、交换机、互联网全部基于该模型;分层精简贴合实际协议,是生产环境唯一落地标准。
2. 数据封装与解封装
(1)发送端封装(从上到下逐层加头部,数据链路层加尾部 FCS 校验)
- 应用层:应用数据(原始数据,如网页文本)
- 传输层:添加 TCP/UDP 头部(源端口、目的端口、序列号等)→ 段 (Segment)
- 网络层:添加 IP 头部(源 IP、目的 IP、TTL、协议号)→ 包 (Packet)
- 数据链路层:添加 MAC 头部(源 MAC、目的 MAC)+ 尾部 FCS 校验 → 帧 (Frame)
- 物理层:帧转换为二进制比特流,通过网线传输
(2)接收端解封装(自下而上逐层剥离头部,校验丢弃错误数据)
- 物理层:接收比特流,重组完整帧,上交数据链路层
- 数据链路层:校验 FCS,出错直接丢弃;剥离 MAC 头部
- 网络层:校验 IP 头部,剥离 IP 头部
- 传输层:校验 TCP/UDP 头部,剥离传输头
- 应用层:交付原始数据给对应应用程序
(3)链路层、网络层判断处理方式
- 数据链路层
读取帧头部以太类型字段:
- 0x0800:上层是 IPv4 数据包,上交网络层 IP 模块;
- 0x0806:ARP 报文,交由 ARP 协议处理;
- 0x86DD:IPv6 报文,交给 IPv6 协议栈。
- 网络层(IP 头部)
读取 IP 头部协议号:
- 6:TCP 协议,上交 TCP 传输模块;
- 17:UDP 协议,上交 UDP 传输模块;
- 1:ICMP 协议,交由 ICMP 处理。
3. 通信模式 & 双工机制
(一)单播 / 广播 / 组播
- 单播 Unicast 定义:一对一通信,目标地址唯一一台主机。 特点:点对点传输;仅目标主机接收;占用带宽小;日常网页、SSH、文件传输均为单播。
- 广播 Broadcast 广播/播送 定义:一对所有,目标 MAC/IP 为广播地址,本网段全部主机接收。 特点:同一广播域所有设备都会处理报文;极易产生广播风暴;典型:DHCP 请求、ARP 广播。
- 组播 Multicast 定义:一对一组,仅加入对应组播组的主机接收数据。 特点:跨网段可路由;不打扰无关主机;多用于视频直播、监控流、PTP 时钟同步。
(二)单工 / 半双工 / 全双工
- 单工 单向传输,一端只能发、一端只能收,不能反向通信。例:广播收音机、电视信号。
- 半双工 两端均可收发,但同一时刻只能单向传输,收发互斥,存在冲突。例:老式对讲机、集线器 Hub。
- 全双工 收发通道独立,两端可同时收发数据,无冲突,带宽翻倍。例:交换机、现代网卡。
异同总结
相同点:三者都支持双向数据交互(单工除外);
差异:传输并行能力不同:单工单向;半双工分时单向;全双工双向并行。
4. mii-tool vs ethtool 网卡工具 4. mii-tool 与 et 的对比
(1)速率与使用限制差异
- mii-tool
- 老旧工具,仅支持百兆、千兆基础协商;不支持万兆、25G、40G、100G 高速网卡;
- 仅操作 MII 总线以太网设备;不支持查看网卡高级参数(中断、队列、Offload、光模块信息);
- 新版 Linux 逐步弃用,Rocky/CentOS8 + 默认不预装。
- ethtool
- 现代标准网卡工具,支持 10M/100M/1G/10G/25G/40G/100G 电口、光口;
- 可查看硬件参数、中断、RSS 队列、offload、光模块、统计丢包;
- 支持修改速率、双工、自动协商,所有主流发行版默认自带。
(2)查看 ens160 物理链路状态
ethtool ens160
(3)强制 1000Mbps、全双工、关闭自动协商
ethtool -s ens160 speed 1000 duplex full autoneg off
5. Hub、交换机、路由器分层与转发逻辑
(1)OSI 分层
- 集线器 Hub:物理层设备,只转发比特流,无 MAC/IP 识别;
- 交换机 Switch:数据链路层设备,基于 MAC 地址转发帧;
- 路由器 Router:网络层设备,基于 IP 地址跨网段路由数据包。
(2)交换机未知目的 MAC 处理流程
收到帧后查询本地 MAC 地址表:
- 表中无目的 MAC 条目 → 泛洪(广播转发);
- 除接收帧的入端口外,向交换机所有其他端口转发该数据帧。
(3)冲突域 & 广播域隔离对比
- 冲突域:同一线路同时发数据产生冲突的范围
- Hub:所有端口同属一个冲突域;
- 交换机:每个端口独立一个冲突域(隔离冲突域);
- 路由器:每个接口独立冲突域。
- 广播域:广播帧能够到达的设备范围
- Hub、交换机不能隔离广播域,广播帧会传遍所有端口;
- 路由器每个接口独立广播域,默认不转发广播报文,隔离广播域。
6. VMware 三种虚拟机网络模式
虚拟网卡对应关系
- VMnet0:桥接模式(默认绑定物理网卡)
- VMnet1:仅主机 Host-Only VMnet1:仅主机模式/仅限主机使用
- VMnet8:NAT 模式
三种模式特点
- 桥接模式(VMnet0) 虚拟机和宿主机同网段,分配局域网真实 IP;局域网内其他物理机可直接访问虚拟机;虚拟机等同于局域网一台独立物理电脑。
- NAT 模式(VMnet8,默认) NAT 模式(VMnet8) 独立虚拟子网,宿主机充当 NAT 网关;虚拟机可访问外网 / 局域网物理机,但外部物理机默认无法主动访问虚拟机;最常用,无需占用局域网 IP。
- 仅主机 Host-Only(VMnet1) 仅主机模式 Host-Only(VMnet1) 仅虚拟机与宿主机互通,无法访问外部局域网 / 互联网;隔离环境,用于内网测试、离线开发。
7. 网卡命名规则与配置文件路径
(1)恢复传统 eth0 命名(Rocky9总结步骤如下)
订制网卡的信息 重置网卡的名称
一、红帽下rocky的系统网卡的配置
1.rocky的网卡配置文件
--/etc/NetworkManager/system-connections/
2.将配置文件下的网卡信息名和文件名修改成 eth0
--sed -i "s/ens160/eth0/g" ens160-nmconnection
3.手动配置网卡的ip地址(示例)
--address1=10.0.0.164/24,10.0.0.2
--dns=10.0.0.2;
--method=manual
4.配置启动项grub
--vim /etc/default/grub ##进入配置文件
--net.ifnames=0 biosdevname=0 ##添加到Linux结尾的行中
5配置rules.d文件
--vim /etc/udev/rules.d/70-persistent-net.rules
1--SUBSYSTEM=="net",ACTION=="add"
2--ATTR{address}=="mac地址"
3--ATTR{type}=="1",NAME="eth0"
##1 2 3 属于一个网卡的配置
6生效配置文件
--grub2-mkconfig -o /etc/grub2.cfg
7.重新启动 --reboot
(2)网卡配置文件路径差异
- CentOS7(传统 NetworkManager 兼容 ifcfg)
CentOS7(兼容传统 NetworkManager 及 ifcfg 配置文件) 路径:/etc/sysconfig/network-scripts/ifcfg-ens160 - Rocky9 / CentOS Stream9(弃用 network-scripts,统一 nmcli)
- 原 network-scripts 目录仅做兼容,不再推荐;
- 标准配置存储路径:
/etc/NetworkManager/system-connections/配置文件后缀为.nmconnection,权限严格限制。
8. 10.240.0.0/13 子网划分计算
已知网段:10.240.0.0/13,需划分 16 个子网
- 计算子网位:需要 16 个子网,2⁴=16,需借 4 位主机位做子网位
- 新前缀长度:13 + 4 = /17
- 子网掩码点分十进制:/17 → 255.255.128.0
- 每个子网总主机位:32-17=15 位,可用主机 = 2¹⁵ - 2 = 32766(减网络地址、广播地址)
- 父网段总地址块大小:2^(32-13)=524288;每个子网块大小 524288 ÷ 16 = 32768
1)子网掩码
255.255.128.02)每个子网可用主机数
32766 台
3)最小网段 ID、最大网段 ID
父网:10.240.0.0/13,地址范围 10.240.0.0 ~ 10.247.255.255
块大小 32768(第三字节步长 128)
- 最小子网 Network ID:
10.240.0.0/17 - 最大子网 Network ID:
10.247.128.0/17
9. 超网聚合(路由聚合)
(1)超网定义 & 和子网划分区别
- 超网(路由聚合 / 汇总):将多个连续同掩码小网段,合并为一条大的汇总路由,减少路由表条目,降低路由器开销。通过缩短前缀长度实现。
- 子网划分:借网络位延长前缀(/16 → /24),拆分大网为多个小子网;
- 超网聚合:归还子网位缩短前缀(多个 / 24 合并为 / 21),合并多个子网为一个大网;二者操作完全相反。
(2)220.78.168.0/24 ~ 220.78.175.0/24 8 个网段聚合计算
- 第三段地址:168、169、170、171、172、173、174、175,共 8 个 C 类 / 24 网段
- 2³=8,需要 3 位作为块标识,汇总前缀 = 24 - 3 = /21
- 块大小:2^(24-21)=8,刚好容纳 8 个 / 24
- 取最小网段 220.78.168.0 作为汇总网络 ID
- 最终聚合超网:220.78.168.0/21
二、Linux 系统启动流程 8 大题完整解答
1. Linux 五大启动阶段(通电到登录界面)
- BIOS/UEFI 上电自检 POST 通电后固件初始化硬件 CPU、内存、硬盘、外设;检测硬件故障;读取启动顺序,找到可引导磁盘。
- Bootloader 引导加载器(GRUB2) 读取磁盘分区引导扇区;展示内核选择菜单;加载内核 vmlinuz 与临时根 initramfs 到内存。
- 内核解压与初始化 内核解压运行;驱动 initramfs 内硬件驱动,识别真实硬盘、文件系统;挂载临时根文件系统。
- 切换真实根,启动 systemd/init 进程 内核执行切换根操作,卸载临时 initramfs;启动 PID=1 的 systemd(CentOS7+),系统初始化入口。
- 系统服务启动 + 登录界面 systemd 并行启动所有 target、系统服务、网络、挂载;启动显示管理器(gdm/lightdm)或终端 getty,弹出登录界面。
2. BIOS vs UEFI 四维度对比 2. BIOS 与 UEFI 的对比
表格
| 对比维度 | 传统 BIOS | 现代 UEFI |
|---|---|---|
| 磁盘分区支持 | 仅 MBR 分区表,单盘最大 2TB,最多 4 主分区 | 支持 GPT 分区表,单盘 9.4ZB,128 主分区,突破容量限制 |
| 启动速度 | 串行初始化硬件,自检慢;磁盘寻址低效 | 并行硬件初始化;内置驱动;预加载,启动速度大幅提升 |
| 启动逻辑 | 16 位实模式;依赖磁盘引导扇区 512 字节限制;无分区文件系统识别 | 32/64 位保护模式;内置文件系统驱动,可直接读取分区内 GRUB 配置;独立 ESP 系统分区存放引导文件 |
| 安全性 | 无安全校验,恶意引导程序可篡改系统 | 支持 Secure Boot 安全启动;校验内核、引导程序数字签名,阻止未签名恶意代码加载 |
3. Bootloader 作用与常见类型
核心作用
- 硬件初始化简易环境;
- 提供多内核选择菜单;
- 从磁盘读取内核 vmlinuz 与 initramfs 镜像加载至内存;
- 传递内核启动参数,移交 CPU 执行内核。
常见 Linux Bootloader(除 GRUB2)
常见的 Linux 引导加载程序(GRUB2 除外)
- GRUB Legacy(GRUB1,CentOS6 及更早使用)
GRUB Legacy(GRUB1,CentOS6 及更早版本所使用) - LILO(老旧发行版引导器,现已淘汰)
- Syslinux / ISOLINUX(U 盘、光盘启动盘专用)
- U-Boot(嵌入式 ARM 开发板专用引导加载器)
4. vmlinuz、initramfs 作用与切换根流程
(1)两个镜像作用
- vmlinuz:压缩后的 Linux 内核主体,包含进程调度、内存管理、基础系统逻辑;缺少磁盘、RAID、LVM、文件系统驱动。
- initramfs:小型临时根文件系统,内置磁盘控制器、LVM、加密卷、文件系统驱动;内核启动初期无硬件驱动,依靠它识别本地磁盘。
(2)initramfs 完整工作流程 (2)initramfs 完整无缺
- GRUB2 将 vmlinuz 与 initramfs 载入内存,内核解压运行;
- 内核挂载内存中的 initramfs 作为临时根;
- 运行 init 脚本,加载硬盘 RAID、LVM、ext4/xfs 等驱动;
- 扫描磁盘,识别存放真实系统的根分区;
- 激活逻辑卷、解密加密磁盘,挂载真实磁盘根文件系统;
- 执行
switch_root系统调用:清空临时 initramfs,将系统根切换到物理硬盘; - 启动真实系统 PID1 进程(systemd),临时内存文件系统销毁。
5. SysV 运行级别 ↔ systemd Target 映射
(1)运行级别对应关系
表格
| SysV Runlevel SysV 运行级别 | 含义 | 对应 systemd target 对应于 systemd 的目标/配置项 |
|---|---|---|
| 0 | 关机 | poweroff.target |
| 1 | 单用户救援模式 | rescue.target |
| 2 | 无网络多用户 | multi-user.target(无网络服务) |
| 3 | 字符多用户(服务器默认) | multi-user.target |
| 4 | 保留未使用 | multi-user.target |
| 5 | 图形桌面模式 | graphical.target graphic.target |
| 6 | 重启 | reboot.target |
(2)systemd 两大核心 target
multi-user.target:字符界面多用户,服务器默认核心目标;graphical.target:图形桌面界面,工作站使用。
(3)查看 / 修改默认启动目标
# 查看默认启动target
systemctl get-default
# 修改为字符模式
systemctl set-default multi-user.target
# 修改为图形模式
systemctl set-default graphical.target
6. systemd-analyze 启动耗时分析命令
查看整体启动总耗时
systemd-analyze
按耗时排序列出所有服务(最耗时在前)
systemd-analyze blame
输出启动关键时序链路(链式启动依赖)
systemd-analyze critical-chain 生成可视化 HTML 启动图表
systemd-analyze plot > boot-time.html 将生成的 boot-time.html 用浏览器打开,直观查看各服务启动时间轴。
7. SysV chkconfig 注释行 # chkconfig: 2345 90 60 详解
- 2345:运行级别,表示该服务在 2、3、4、5 级别开机自启动;0/1/6 不自动启动。
- 90:启动优先级(S 编号),开机启动脚本软链接为
S90服务名;数字越小越早启动。 - 60:关闭优先级(K 编号),关机 / 切换级别停止脚本软链接为
K60服务名;数字越小越先关闭。
和 rc.d 软链接关系
执行
chkconfig --add 服务名时,系统自动在对应级别 rc 目录创建软链接:/etc/rc.d/rc2.d/rc3.d/rc4.d/rc5.d创建S90xxx开机启动链接;/etc/rc.d/rc0.d/rc1.d/rc6.d创建K60xxx关机停止链接。
8. 内核 /initramfs 丢失救援修复
1)重建 initramfs 命令
CentOS6(SysV、dracut 旧版)
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)Rocky 9/10、CentOS7+(统一 dracut 工具)
Rocky 9/10、CentOS7+(使用统一的 dracut 工具)
dracut -f /boot/initramfs-$(uname -r).img $(uname -r)
2)光盘救援模式修复步骤
- 插入系统安装光盘 / ISO 镜像,从光盘引导;
- 启动菜单选择
Troubleshooting→Rescue a Rocky/CentOS system进入救援模式; - 程序自动扫描本地系统分区,提示挂载本地系统至
/mnt/sysimage,选择 Continue; - 切换至真实系统根环境:
chroot /mnt/sysimage; - 修复方案二选一:
- 丢失 vmlinuz:从光盘 Packages 内核包提取内核文件复制到 /boot;
- 丢失 initramfs:执行 dracut/mkinitrd 重新生成镜像;
- 修复 GRUB 引导:
grub2-mkconfig -o /boot/grub2/grub.cfg; - 退出 chroot:
exit;卸载磁盘,重启服务器,拔出光盘从本地硬盘引导。

1076

被折叠的 条评论
为什么被折叠?



