惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
Spread Privacy
Spread Privacy
T
The Exploit Database - CXSecurity.com
Simon Willison's Weblog
Simon Willison's Weblog
P
Privacy & Cybersecurity Law Blog
L
LINUX DO - 热门话题
T
Threat Research - Cisco Blogs
T
Tenable Blog
TaoSecurity Blog
TaoSecurity Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
AI
AI
P
Proofpoint News Feed
A
About on SuperTechFans
P
Privacy International News Feed
月光博客
月光博客
雷峰网
雷峰网
S
Secure Thoughts
博客园 - 叶小钗
博客园 - 聂微东
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Project Zero
Project Zero
The Cloudflare Blog
SecWiki News
SecWiki News
The Hacker News
The Hacker News
V
Vulnerabilities – Threatpost
罗磊的独立博客
A
Arctic Wolf
阮一峰的网络日志
阮一峰的网络日志
Know Your Adversary
Know Your Adversary
酷 壳 – CoolShell
酷 壳 – CoolShell
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
T
Troy Hunt's Blog
The Last Watchdog
The Last Watchdog
Schneier on Security
Schneier on Security
小众软件
小众软件
有赞技术团队
有赞技术团队
博客园 - 司徒正美
T
Tailwind CSS Blog
量子位
C
Cybersecurity and Infrastructure Security Agency CISA
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Hugging Face - Blog
Hugging Face - Blog
人人都是产品经理
人人都是产品经理
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
S
Security @ Cisco Blogs
大猫的无限游戏
大猫的无限游戏
S
SegmentFault 最新的问题
Apple Machine Learning Research
Apple Machine Learning Research
宝玉的分享
宝玉的分享
L
Lohrmann on Cybersecurity

博客园 - 立体风

Sigmoid 函数的数学起源与定义详解 路径在powershell 配置文件 Profile 和 环境变量 PATH 的区别 当AI构建自身 nana gui库的回调函数 Nana c++ gui库的对话框函数 -- 理解 nana 的运行机制 介绍 MSVC 的编译命令/ Zc CMake 变量 ${CMAKE_CURRENT_BINARY_DIR} 学习 nana c++ 库 (一) AutoHotkey v2 的源码学习路线 Visual Studio 中行号右边的黄色竖条 大O表示法推导 allocate 中为什么有两个L vs的cl.exe 编译器 c++20 基本配置 IT高频词 address Python Install Manager (PIM,官方安装管理器)简介 debian 中 contrib 软件仓库 debian 版本号及 apt 命令对软件的区分 极限运算的法则 TeX 的 ctex 宏包的基本用法 XeLaTeX 的基本用法 XeLaTeX 介绍 为什么梯度向量 ∇f 指向函数值增长最快的方向 三角函数的余弦定理的证明 向量点积的几何定义的证明 方向导数公式的证明 仿射函数的定义及用途 凸集的定义及证明 在 LaTeX 公式中处理英文单词 梯度下降法 (Gradient Descent)的数学原理。 梯度下降法简介 向量形式表达最小二乘法 线性回归模型的核心数学表达式 risidual 音标和本义 coefficients的音标及本义(线性模型)
sysctl的历史及常用命令
立体风 · 2026-02-23 · via 博客园 - 立体风

🧠 什么是 sysctl?

sysctl 是 Unix / Linux 系统中用于:

🔧 运行时查看和修改内核参数(kernel parameters)的工具

它允许你 不重启系统 就调整内核行为。


📜 一、创建历史

1️⃣ 起源:4.4BSD

sysctl 最早出现在:

👉 1993 年的 4.4BSD

在 BSD 系统中,sysctl 被设计为:

用户空间与内核参数之间的统一接口

它替代了早期的:

  • /dev/kmem 直接读写
  • 不安全的内核参数访问方式

2️⃣ 进入 Linux

在 Linux 中:

  • 2.x 内核时期开始实现 sysctl 机制
  • 后来通过 /proc/sys/ 文件系统暴露参数

Linux 的 sysctl 本质上是:

/proc/sys 文件系统的封装工具

例如:

sysctl net.ipv4.ip_forward

等价于:

cat /proc/sys/net/ipv4/ip_forward

🧩 二、工作原理

在 Linux 中:

内核参数存在于:

/proc/sys/

例如:

/proc/sys/net/ipv4/tcp_fastopen

当你执行:

sysctl -w net.ipv4.tcp_fastopen=3

实际上就是:

echo 3 > /proc/sys/net/ipv4/tcp_fastopen

🧰 三、常用命令


✅ 1️⃣ 查看某个参数

sysctl net.ipv4.ip_forward

输出:

net.ipv4.ip_forward = 0

✅ 2️⃣ 修改某个参数(临时)

sudo sysctl -w net.ipv4.ip_forward=1

⚠️ 重启后失效


✅ 3️⃣ 查看所有参数

sysctl -a

会输出所有内核参数(很多)


✅ 4️⃣ 从配置文件加载

sudo sysctl -p

默认读取:

/etc/sysctl.conf

✅ 5️⃣ 指定配置文件

sudo sysctl -p /etc/sysctl.d/custom.conf

📂 四、永久生效方法

现代 Linux 推荐方式:

把参数写入:

/etc/sysctl.d/99-custom.conf

例如:

net.ipv4.ip_forward = 1
net.ipv4.tcp_fastopen = 3

然后执行:

sudo sysctl --system

🌐 五、常见重要参数


网络相关

参数 作用
net.ipv4.ip_forward 是否开启路由转发
net.ipv4.tcp_fastopen TCP Fast Open
net.ipv4.tcp_tw_reuse TIME_WAIT 复用
net.core.somaxconn 最大监听队列
net.ipv4.tcp_syncookies SYN Flood 防护

内存相关

参数 作用
vm.swappiness 交换分区使用倾向
vm.overcommit_memory 内存分配策略
vm.dirty_ratio 脏页比例

文件系统

参数 作用
fs.file-max 最大文件句柄数

⚙ 六、示例:开启 IP 转发

临时:

sudo sysctl -w net.ipv4.ip_forward=1

永久:

echo "net.ipv4.ip_forward = 1" | sudo tee /etc/sysctl.d/99-ipforward.conf
sudo sysctl --system

🔐 七、安全相关示例

启用 SYN Flood 防护:

sudo sysctl -w net.ipv4.tcp_syncookies=1

关闭 ICMP 重定向:

sudo sysctl -w net.ipv4.conf.all.accept_redirects=0

🏗 八、Linux vs BSD 的差异

在 BSD 系统(如 FreeBSD)中:

sysctl kern.hostname

而 Linux 使用:

sysctl kernel.hostname

命名空间略有不同。


📌 九、sysctl 的现代发展

  • Linux 仍然广泛使用

  • 一些内核参数正在迁移到:

    • cgroups
    • systemd sysctl
    • BPF 控制机制

但 sysctl 仍然是最基础的内核调优工具。


🧠 十、一句话总结

sysctl = 运行时修改内核行为的“控制面板”