面试题合集
1. Linux 面试题
1. 如何实时查看所有的系统内存进程?如果想把内存占用前十的进程保存到文件里,应如何操作?
ps aux --sort=-%mem | head -10 > mem_top10.logps aux 用于列出所有用户的全部进程,a 表示终端的所有进程,x 包含无终端的后台进程,—sort=-%mem 按内存使用率降序,减号表示从高到底。head -10 指的是前10行,最后用重定向保存到文件即可。
2. 如果有一个大文件需要快速提取出包含 error 的最后100行,如何操作?
tail -n 10000 logs | grep "error" | tail -n 100`先取10000行缩小范围,使用 -n 取出最后的10000行,避免程序加载整个大文件运行,可以大幅提升效率。
3. 如何新建用户配置 sudoers 达到无需 sudo 即可能重启 Nginx 的权限?
myuser ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx使用 visudo 编辑 sudoer,本质上是需要是将:sudo systemctl restart nginx 中,去掉 sudo 也可以执行,所以只需要使用 user = ALL=(ALL) NOPASSWD 后添加指令即可。
4. 如果进程处于僵尸状态,且kill -9 杀不掉,要如何操作?
僵尸进程指的是没有被父进程回收的一些子进程,通常使用 kill -9 是杀不掉的。
ps aux | grep 找到父进程ID。杀掉父进程就可以了,如果是系统进程(例如 systemd 这种)只能重启系统回收。`5. 如何监控磁盘整体使用率?
watch -n 5 du -sh /var/log使用 watch ,每隔五秒刷新一次,这里的话就是使用 du 检查 logs 下的磁盘占用。
6. 域名解析炸了如何排查
/etc/resolv.conf 检查 DNS配置是否正确。
7*. 一些常用的包名
httpd:ApacheMySQL:mariadb-serverNginx:nginxPHP:phpFTP:vsftpd有一些名字它加了 d,d 全称就是 deamon 的缩写,意思是守护进程。在后台中持续运行。 守护进程:在后台长期运行,不需要用户直接交互的服务进程,例如 web服务,数据库这些就叫守护进程。
8. 如何实时查看 /logs/message 的最新内容?
tail -f /var/log/message9. 如何从本地上传文件至远程服务器?以及如何下载?
# 上传scp uploadfile root@192.168.1.1:/tmp
# 下载 增加 -r 参数scp -r root@192.168.1.1:/var/downloadfile ~/download10. 如何创建用户并设置密码
# 创建用户useradd newuser
# 设置密码(两种方式)passwd newuserecho "123456" | passwd --stdin newsuer11. 如何快速强制删除用户,且包含 home 目录
userdel -r user12. 如何将文件的所有者改成 user 用户?所属组改成 user 组?
chown user:user file13. chmod是什么?
用于修改所有者的权限,三个数字的权限符号分别表示:所有者、同组者、其他用户。 rwx 对应 421,对所有者加执行权限。
14. 如果要让 text.sh 脚本在任何目录下都能直接执行,不用写完整路径应如何做?
直接放到 /usr/local/bin 目录下,或者是加到 PATH 变量里。
15. kill 的常见参数如何?
kill -1 # 重新加载配置kill -15 # 正常终止进程kill -9 # 强制终止进程16. 如何查看CPU的占用率?
top # 打开CPU查看占用率p # 按一下 P 继续拿降序排序
ps aux --sort=-%cpu17. 如何后台运行一个脚本?如何关闭这种后台脚本?
nohup run.shps aux | grep run.shkill run.sh18*. 如何查看当前系统放行的所有端口?netstat 的用法详解
# 查看系统当前的放行端口netstat -tulnp# 查看 8080 端口的方法netstat -tulnp | grep :8080参数解析
-t # TCP-u # UDP-l # 只列出处于 LISTEN 监听状态 的端口-n # 不解析域名、不解析端口别名,直接显示 IP + 数字端口-p # 显示占用该端口的进程 PID 和程序名19. 如何配置定时任务?
crontab 配置定时脚本。 例如:如果需要写一个 shell,定时做日志备份。 技术栈:find + tar + crontab 那么就用 find 找到符合状态的日志,使用 tar 进行打包。而定时执行 Shell 的方法就是使用 crontab。
* * * * * command│ │ │ │ ││ │ │ │ └── 星期几(0-7,0和7都表示周日)│ │ │ └──── 月份(1-12)│ │ └────── 日(1-31)│ └──────── 小时(0-23)└────────── 分钟(0-59)20. tail 是什么,它常用的使用场景有哪些?语法如何?
tail 是一个非常实用的命令行工具,主要用于查看文件末尾的内容。在日常运维和开发中,它尤其适合处理日志文件。常用参数如下:
# 显示文件末尾指定的行数(默认是10行)。tail -n 50 access.log
# 实时跟踪文件新增内容。通常在排查问题时保持这个命令运行,观察新日志。tail -f /var/log/syslog
# 功能与 -f 类似,但如果文件被重命名或轮转(比如日志切割),-F 仍然能继续跟踪新的同名文件。tail -F messages
# 如果同时查看多个文件,可以隐藏文件名头,让输出更干净。tail -q file1.txt file2.txt
# 无论查看几个文件,都强制显示文件名头。tail -v access.log error.log
# 显示文件末尾指定的字节数,通常用得较少。tail -c 1000 data.log21. iptables怎么设置只放行某个ip的访问?
记住思路就好,首先要把所有的流量访问全部drop,其次建立一个优先级比它高的规则放行指定 tcp ip 的访问。
# 1. 清空现有规则(谨慎操作,建议在测试环境或通过带外管理执行)iptables -F
# 2. 设置默认策略:拒绝所有入站流量iptables -P INPUT DROP
# 3. 放行回环接口(127.0.0.1),避免本地服务出问题iptables -A INPUT -i lo -j ACCEPT
# 4. 放行已建立连接的相关流量(重要!否则已建立的连接会被中断)iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 5. 放行指定 IP 的访问(以 22 端口为例)iptables -A INPUT -p tcp --dport 22 -s 192.168.1.100 -j ACCEPT
# 6. (可选)放行 ICMP,允许 pingiptables -A INPUT -p icmp -j ACCEPT22. 如何查看文件的绝对路径?
realpath filename# 简单又直接23. 如何查看文件的所有者?
ls -l# 当然,如果你需要查看指定文件的话,加一个 grep 就好了ls -l | grep log.log24. 如何查看系统运行了多久?
uptime# 简单直接uptime 三个 load average 含义三个数值依次代表:最近 1 分钟、5 分钟、15 分钟的系统平均负载
25. 监控 CPU 的 top 指令详解
1. Linux 平均负载(load average)是什么?三个数值高低分别代表什么情况?
load average 反映的是系统在特定时间段内的平均活跃进程数,包括正在运行和等待CPU的进程。对于多核系统,需要将数值除以核心数来理解。例如,4核系统负载为4.0,相当于每个核心跑满。通常会对比1分钟、5分钟和15分钟三个数值,来判断负载趋势。如果负载持续高于核心数,会用 top 或 ps 定位具体进程,判断是CPU瓶颈还是IO瓶颈,再针对性处理。
2. top 的使用规则
按下快捷键 数字 1,就能展开看到每一颗 CPU 核心的单独使用率,再按一次 1 又会合并回总 CPU 视图。
3. 快捷键总结
P:按 CPU 使用率排序 M:按内存使用率排序 K:输入 PID 杀死指定进程 Q:退出 top
4. %us、%sy、%id、%wa 分别代表什么含义?
%us(用户空间 CPU 占用率):好比 厨师实际在做菜的时间。这是应用程序(Python、Nginx、MySQL)真正在执行计算指令的时间。数值高通常意味着你的应用逻辑本身很复杂,是计算密集型任务,CPU 正在卖力工作,这是硬件瓶颈的信号。
%sy(内核空间 CPU 占用率):好比 厨师在整理厨具、看菜单、调度任务的时间。这是操作系统内核在管理硬件资源、处理系统调用的时间。数值高可能意味着程序在进行大量的文件读写、网络通信或进程切换。如果这个值持续偏高,通常说明系统架构存在优化空间。
%id(空闲 CPU):好比 厨师在等菜、闲着发呆的时间。空闲时间越多越好,说明服务器有余力。
%wa(IO 等待 CPU 占用率):好比 厨师在等配菜员切菜的时间。CPU 已经发出了读写磁盘的指令,但迟迟等不到数据返回,此时 CPU 本身是空闲的,但处于等待状态。高 %wa 通常意味着磁盘速度太慢,或者内存不足导致频繁的硬盘交换。
记忆方法:us(正在占用)、system(内核调度)、id(空闲时段)、wating(IO等待)
5. 进程状态 R、S、D、Z、T 分别代表什么?
Running:正在运行或等待CPU调度的进程。进程要么正在CPU上执行,要么在运行队列中等待。 Sleeping:可中断睡眠。进程在等待某个事件完成(如用户输入、网络请求、文件读取),可以被信号中断唤醒。这是大多数进程的常见状态。 D - Uninterruptible Sleep:不可中断睡眠。进程在等待硬件响应(如磁盘I/O),无法被信号中断。这种状态常见于磁盘读写操作,如果大量出现D状态进程,通常意味着I/O存在瓶颈。 Zombie:僵尸进程:进程已经终止,但父进程尚未调用wait()来获取其退出状态。僵尸进程不消耗资源,但会占用进程表条目。如果数量过多,需要检查父进程是否正常回收。 T - Stopped:停止或跟踪状态。进程被暂停(如收到SIGSTOP或SIGTSTP信号),或正在被调试器追踪(如gdb)。
26. 什么是软链接,什么是硬链接?区别如何?
硬链接本质上是同一个文件的不同名字,删除原文件不影响链接,但不能跨分区也不能指向目录。软链接是一个独立的文件,指向目标路径,可以跨分区也可以指向目录,但原文件被删了就会失效。一般用软链接来做快捷方式或版本切换,硬链接通常用于备份或引用同一份数据。
软链接: 程序多版本切换(比如 python3、python 软链接切换版本) 目录路径简化、挂载路径迁移兼容 方便部署配置、日志路径统一管理
硬链接: 简单本地文件备份,删一个入口数据仍保留 防止误删重要文件,多入口保护
27. 简述软 RAID 和硬 RAID 的区别,各自优缺点?
简单说,软RAID靠CPU和操作系统算,硬RAID靠专用的RAID卡算。
⚙️ 软RAID (Software RAID):是通过操作系统(如Windows、Linux)和CPU来管理磁盘阵列的。 优点: 成本低:无需购买独立的RAID卡,使用主板上的SATA接口即可。 灵活性高:与操作系统结合紧密,管理和配置相对简单。可以比较方便地将磁盘阵列迁移到另一台兼容的系统上。 无厂商绑定:不依赖特定品牌的硬件,减少了被特定厂商锁定的风险。
缺点: 消耗CPU资源:RAID的计算任务会占用服务器的CPU和内存,在高负载下可能影响其他业务性能。 依赖操作系统:如果操作系统崩溃或配置错误,RAID的管理和数据恢复会变得复杂。 系统盘限制:在一些操作系统中,软RAID可能无法保护系统启动盘。 适用场景:适合预算有限、CPU算力充裕的环境,如个人电脑、实验室、中小型企业(SMB)服务器,以及对灵活性要求较高的场景。
🖥️ 硬RAID (Hardware RAID):通过独立的RAID控制器(RAID卡)来管理磁盘,这个控制器拥有自己的处理器、内存和缓存。 优点: 性能好:RAID计算由专用处理器完成,不占用主机CPU资源,性能表现更稳定。高端RAID卡的缓存能进一步提升性能。 更可靠:独立于操作系统运行,兼容性更好。部分RAID卡带有电池或电容,能在断电时保护缓存中的数据。 支持热插拔:更换故障硬盘更方便。
缺点: 成本高:需要额外购买独立的RAID卡,增加了硬件成本。 配置复杂:设置和管理通常需要专业技能。 存在厂商锁定:如果RAID卡损坏,可能需要更换同型号的卡才能恢复数据。 适用场景:适合对性能和数据安全要求严苛的生产环境,如大型企业服务器、数据库服务器等。
✨ 总结 软RAID:是一个性价比高、灵活的软件方案。硬RAID:是一个性能强劲、可靠的硬件方案。
28. RAID0、RAID1、RAID5、RAID10 各自原理、磁盘数量要求、优缺点、适用场景?
RAID 0(条带化):数据被分成块,交替写入多块磁盘,并行读写。 磁盘数量:至少 2 块(可更多)。 优点:读写性能最高,容量利用率 100%。 缺点:没有任何冗余,一块磁盘损坏,所有数据全部丢失。 场景:数据丢失无所谓、追求极致速度的场景(如视频编辑缓存、游戏盘)。
RAID 1(镜像):数据同时写入两块磁盘,互为镜像。写一次同时写两份,读可以从两块盘同时读。 磁盘数量:至少 2 块(通常只能 2 块)。 优点:数据冗余最高,一块盘坏不影响数据,读性能有所提升。 缺点:容量利用率只有 50%(2块盘只能用到1块的容量),写入性能稍有下降。 场景:对数据安全性要求极高、数据量不大的场景(如数据库日志盘、系统盘)。
RAID 5(条带化+奇偶校验):数据条带化分布,同时插入一份奇偶校验数据。校验数据分布在所有磁盘上,可以容忍一块磁盘损坏。 磁盘数量:至少 3 块(可更多)。 优点:兼顾性能、容量和安全,容量利用率 (n-1)/n,坏一块盘时数据仍可用。 缺点:写入性能较差(每次写需要计算校验数据并写入),重建恢复过程比较耗时。 场景:企业通用存储,适合大多数生产环境(文件服务器、应用服务器)。
RAID 10(RAID 1 + RAID 0):先做 RAID 1(镜像),再将多个 RAID 1 组合成 RAID 0(条带化)。它集合了 RAID 0 的速度和 RAID 1 的冗余。 磁盘数量:至少 4 块(且必须为偶数)。 优点:读性能极高,写性能优秀,容错能力好(每一组镜像中可坏一块)。 缺点:成本高,容量利用率只有 50%(4块盘实际可用容量为2块)。 场景:对性能和安全性要求都很高的核心数据库、高并发应用服务器。
29. LVM是什么?
LVM 逻辑卷管理器(Logical Volume Manager),是 Linux 下对磁盘资源进行弹性管理的机制,在物理磁盘分区之上抽象一层逻辑层,不再受原有分区大小限制。以下为优点: 可以在线扩容卷空间,不用重装系统、不用迁移数据; 支持后期缩减逻辑卷(谨慎操作); 多块硬盘整合为一个大存储池,灵活分配空间; 业务数据增长时按需扩容,适配业务长期扩容需求。
30. 什么是缓冲区(buffer)和缓存(cache)?free 命令里怎么区分?
Buffer 是磁盘写入时的暂存区,用于合并写操作;Cache 是文件的读缓存,用于加速重复读取。在 free 命令中,它们合在一起显示为 buff/cache,但 available 才是真正可用的内存,因为系统在需要时会自动释放一部分缓存。如果需要查看具体值,可以看 /proc/meminfo。
Buffer(缓冲区): 存储内容:存储的是元数据,主要是文件系统的数据块、目录信息等。 作用:减少磁盘的随机读写。例如,当你写入数据时,数据先进入Buffer,积累到一定量再一次性写入磁盘。 通俗理解:像是”快递单”上的信息,帮助系统快速找到和整理磁盘上的文件。
Cache(缓存): 存储内容:存储的是实际数据,是文件的正文内容。
作用:减少磁盘的重复读取。当你多次打开同一个文件时,缓存可以避免反复从硬盘读取。 通俗理解:像是用过的”实物快递”,最近使用过的文件内容被暂存起来,方便下次直接取用。
31. Linux 系统开机启动流程
BIOS/UEFI 自检 -> 加载引导程序 -> 加载内核 -> 执行第一个init进程 -> 启动依赖服务 -> 显示登陆界面
32. sed 和 awk 有什么区别
sed 主要用于文本内容的替换和编辑,适合批量修改配置文件;awk 主要用于字段提取和分析,适合处理结构化的日志或数据文件。比如,常用 sed -i 批量替换配置文件中的参数,用 awk 提取 Nginx 日志中的特定字段做统计。
33. 孤儿进程是什么?
孤儿进程是指父进程已经退出,但子进程仍在运行的进程。系统会自动将其父进程设为init(PID 1),由init负责回收其资源,因此孤儿进程本身不会造成资源泄漏。与僵尸进程不同,孤儿进程是活的,不需要特殊处理
34. 如何调整优先级?
使用 nice 指令调整指定 PID 的优先级。
35. 抓包的指令是什么
tcpdump 来抓取来自任何网络包。
3. Git、Jenkins、K8s、Docker 面试题
4. Python 面试题
5. Django、Flask 面试题
6. Windows AD面试题
7. REST API 面试题
8. TCP/IP 常见网络协议面试题
1. 简述 TCP 和 UDP 的区别,各自适用场景?
文件传输多用 TCP,视频直播、语音通话多用 UDP
TCP 面向连接 通信前三次握手建立连接,传输结束四次挥手断开; 可靠传输:有确认应答、重传机制、流量控制、拥塞控制,数据不丢包、不乱序。 缺点:开销大,速度稍慢。 适用场景: 文件传输、SSH 远程登录、网页 HTTP/HTTPS、数据库连接、FTP、邮件,要求数据完整准确不能出错的业务。
UDP 无连接 收发直接发包,不用建立连接,没有重传、校验纠错机制; 不可靠,可能丢包、乱序;优点:头部小、延迟极低、收发效率高。 适用场景: 直播、语音视频通话、游戏实时数据包、DNS 查询,能容忍少量丢包、优先低延迟的场景。
2. TCP 的三次握手与四次挥手的报文单词是什么?
SYN:建立连接同步 ACK:确认收到报文 FIN:请求断开连接 RST:异常强制断连
3. TIME_WAIT 是做什么的?
TIME_WAIT 是主动关闭方在发送最后一个 ACK 后进入的状态,持续 2MSL,默认通常是 60 秒。它的作用是确保最后的 ACK 能被对方收到,以及让网络中残留的旧数据包在超时后失效,避免干扰后续的新连接。
4. HTTP 和 HTTPS 的区别如何?它们是如何工作的?
HTTP 是一种基于 TCP 的应用层协议,客户端发送请求,服务器返回响应。每个请求报文包含请求方法、路径和头部信息,响应报文包含状态码和头部信息。数据在传输前会经过 TCP 分片、IP 封装、链路层成帧,最终在网络中传输。HTTPS 在 HTTP 和 TCP 之间加入了 TLS/SSL 加密层。
一次完整的 HTTP 请求流程如下: 域名解析:客户端通过 DNS 将域名解析为服务器的 IP 地址。 建立 TCP 连接:客户端与服务器进行三次握手,建立 TCP 连接(默认端口 80 或 443)。 发送 HTTP 请求:客户端发送 HTTP 请求报文,包含: 请求行:方法(GET/POST)、路径、协议版本。 请求头:Host、User-Agent、Accept、Cookie 等。 请求体(可选):POST、PUT 等请求的数据内容。 服务器处理请求:服务器接收到请求后,解析报文,定位资源,执行业务逻辑(如查询数据库、调用后端服务)。
返回 HTTP 响应:服务器发送响应报文,包含: 状态行:协议版本、状态码(200、404、500 等)、状态描述。 响应头:Content-Type、Content-Length、Set-Cookie 等。 响应体(可选):请求的资源内容(如 HTML、JSON、图片)。 关闭或复用连接:如果是非持久连接(HTTP/1.0),服务器主动关闭 TCP 连接;如果是持久连接(HTTP/1.1 默认),连接保持打开,以便后续请求复用。
5. GET 请求与 POST 请求有什么不同?
GET:设计用于查询、获取数据,理论上不应修改服务器数据,是安全、幂等请求(多次请求结果一致) POST:设计用于提交数据、新增 / 修改资源,提交表单、上传数据,非幂等,多次提交可能产生多条数据
6. Nginx 反向代理和正向代理的区别,反向代理有什么作用?
1. 正向代理
代理客户端,隐藏真实访问用户;服务端只看到代理 IP,无法获知原始客户端是谁。 典型场景:VPN、翻墙代理、局域网统一上网代理。 访问链路:客户端 → 正向代理服务器 → 目标网站
2. 反向代理
代理后端服务器集群,隐藏后端真实业务节点;客户端只访问代理地址,感知不到后端多台机器。 典型场景:Nginx 反向代理、负载均衡、统一入口、SSL 终结。 访问链路:客户端 → 反向代理 (Nginx) → 后端应用服务器
9. 交换机配置常用指令、与常见面试题
EX. 运维开发等相关问题
1. 一般如何写批量 SSH 脚本的,作用如何?
批量SSH脚本主要解决多台服务器重复操作效率低、人工巡检容易出错的问题。
使用Python+paramiko库实现,把所有服务器IP、账号存在配置文件里,脚本循环建立远程连接,批量执行磁盘巡检、日志查看、数据库备份等指令。
同时做了异常捕获和执行日志归档,检测到磁盘爆满、服务报错会输出告警。之前项目里几十台服务器,原本手动巡检要1个多小时,脚本执行只需要几分钟,后续还对接Jenkins配置定时任务,实现全自动日常巡检。
# Paramiko Eg.import paramiko
def execute_ssh(host, user, key_path, command): client = paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) client.connect(hostname=host, username=user, key_filename=key_path) stdin, stdout, stderr = client.exec_command(command) output = stdout.read().decode() client.close() return output2. 一般来说,常用的运维 Python 库都有哪些?
系统监控与资源管理:
psutil:堪称运维的”瑞士军刀”,跨平台,能轻松获取 CPU、内存、磁盘、网络等系统信息。相当于在 Python 里集成了 ps、top、netstat 等命令。
subprocess:Python 自带的标准库,用于执行系统命令并获取输出,是编写自动化脚本的基础。
shutil 和 os / pathlib:同样是标准库,shutil 用于高级文件操作(复制、移动、删除),os 和 pathlib 负责目录和路径管理。
🤖 远程连接与自动化
paramiko:SSH 连接的底层实现,可以让你在 Python 中直接建立 SSH 连接。所有远程操作的基础,比如批量登录服务器执行命令或传输文件。
fabric:在 paramiko 之上进行了更高层的封装,能让你用更简洁的代码执行远程命令和部署任务。
pexpect:用于自动化那些需要交互的命令行程序(如 ssh, ftp, telnet),可以模拟输入密码等交互过程。
📊 配置、日志与数据处理
logging:Python 自带的日志模块,用于记录脚本运行状态,是运维脚本的标配。
PyYAML:处理 YAML 格式的配置文件,在解析 Kubernetes、Ansible 等工具的配置时非常常用。
pandas:数据分析库,当需要从大量监控数据或日志中提取、清洗、分析信息并生成报表时,这个库非常高效。
re:正则表达式库,用于从非结构化的文本(如日志)中提取特定信息。
🌐 网络与 API 交互
requests:处理 HTTP 请求的标准库,用来调用各种 REST API。无论是调用云厂商 API 还是发送告警,都离不开它。
socket:进行底层网络操作,比如编写简单的端口扫描或状态检测脚本。
dnspython:一个 DNS 工具包,可用于实现 DNS 解析等功能。
IPy:辅助进行 IP 地址规划和管理。
🐳 容器与编排
docker (或 docker-py):官方 Docker SDK,用于在 Python 中管理容器、镜像等。
kubernetes:官方 Kubernetes 客户端,用于管理 Pod、Service 等 K8s 资源。
🚀 任务调度与并发
schedule:一个轻量级的定时任务调度库,可以在 Python 脚本内部实现类似 crontab 的功能。
threading / multiprocessing:Python 自带的多线程和多进程库,用于提升批量任务的处理效率。
🛠️ DevOps 专用与自动化框架
Ansible:一个完整的自动化工具,通过 SSH 执行任务。你甚至可以用 ansible-runner 在 Python 中直接调用它的 Playbook。
EX+:最近的一些运维可能会用到的知识
1. CVE-2026-31431 “Copy Fail”漏洞防御
禁用 authencesn、authenc、esp4 和 esp6 这几个内核模块,确实是针对 CVE-2026-31431(Copy Fail)漏洞的一种有效临时缓解方案。这些模块,尤其是 authencesn,与漏洞利用密切相关。
📝 漏洞修复操作步骤(临时缓解方案)
第一步:创建配置文件,禁用模块
首先,需要创建一个配置文件,让系统在启动时就不再加载这些有漏洞的模块。 使用 root 权限创建一个新的配置文件,例如 /etc/modprobe.d/disable-cve-2026-31431.conf:
sudo vi /etc/modprobe.d/disable-cve-2026-31431.conf`在文件中写入以下内容,以禁用 authencesn、authenc、esp4 和 esp6 这四个模块:
install authencesn /bin/falseinstall authenc /bin/falseinstall esp4 /bin/falseinstall esp6 /bin/false命令解释:install 模块名 /bin/false 是告诉系统,当有程序试图加载这个模块时,执行 /bin/false 命令(该命令会立即返回失败),从而阻止模块加载。
第二步:卸载当前已加载的模块
配置文件创建后,需要立即卸载当前已经加载到内核中的这些模块。
sudo rmmod authencesn authenc esp4 esp6 2>/dev/null || true命令解释:rmmod 用于从运行中的内核卸载模块。2>/dev/null || true 的作用是忽略可能出现的”模块不存在”等错误信息,确保命令在任何情况下都能顺利执行。
第三步:验证修复是否生效
最后,检查一下模块是否已被成功禁用和卸载。
lsmod | grep -E "authencesn|authenc|esp4|esp6"如果命令没有任何输出,说明相关模块已经成功卸载,并且由于配置文件的设置,系统重启后也不会再加载它们。
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!













