Linux的 /etc/sysctl.conf 笔记250404

Linux的 /etc/sysctl.conf 笔记250404



/etc/sysctl.conf 是 Linux 系统中用于 永久修改内核运行时参数 的核心配置文件。它通过 sysctl 工具实现参数的持久化存储,确保系统重启后配置依然生效。以下是其详细说明:


📂 备份/etc/sysctl.conf

tempPathUriA1=/etc/sysctl.conf ;    sudo cp -a ${tempPathUriA1} ${tempPathUriA1}.$(date +%0y%0m%0d_%0H%0M%0S_ns%0N).bak

📂 文件作用与位置

  • 路径/etc/sysctl.conf
  • 功能:定义需持久化的内核参数键值对(如网络、内存、文件系统等配置)。
  • 扩展配置:现代系统通常推荐将自定义配置放在 /etc/sysctl.d/*.conf 文件中,以模块化管理。

📜 配置文件语法

  1. 基本格式

    # 注释行(以 # 开头)
    参数名 =
    • 示例
      # 启用 IPv4 转发
      net.ipv4.ip_forward = 1
      # 禁用 IPv6 RA 接收(针对 eth0)
      net.ipv6.conf.eth0.accept_ra = 0
      
  2. 参数路径规则

    • 参数名对应 /proc/sys/ 的路径,将点(.)替换为斜杠(/)。
      # sysctl.conf 中的参数:
      net.ipv4.ip_forward = 1
      # 对应路径:
      /proc/sys/net/ipv4/ip_forward
      

🔄 配置加载顺序

系统启动时按以下顺序加载配置(后加载的配置覆盖前者的冲突项):

  1. /etc/sysctl.conf
  2. /etc/sysctl.d/*.conf(按文件名字母顺序加载)。

🛠️ 操作指南

1. 修改配置文件
# 编辑主配置文件
sudo nano /etc/sysctl.conf# 或创建自定义配置文件(推荐)
sudo nano /etc/sysctl.d/99-custom.conf
2. 手动加载配置
# 加载所有配置文件(包括 /etc/sysctl.d/)
sudo sysctl --system# 加载所有配置文件(包括 sysctl.d/)
sudo sysctl -p# 加载指定文件
sudo sysctl -p /etc/sysctl.d/99-custom.conf
3. 验证参数
# 检查参数是否生效
sysctl 参数名
# 示例:
sysctl net.ipv4.ip_forward

🌟 典型配置示例

1. 网络优化
# 启用 IPv4/IPv6 转发
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1# 增大 TCP 缓冲区
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
2. 安全加固
# 禁用 ICMP 重定向
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0# 阻止 SYN 洪水攻击
net.ipv4.tcp_syncookies = 1
3. IPv6 配置
# 禁用 eth0 的 RA 接收
net.ipv6.conf.eth0.accept_ra = 0# 启用临时隐私地址
net.ipv6.conf.all.use_tempaddr = 2
4. 网络优化
参数作用推荐值适用场景
net.ipv4.ip_forward启用 IPv4 数据包转发0主机设为 0,路由器设为 1
net.core.somaxconn最大连接队列长度(预防 SYN 洪水攻击)4096高并发服务器
net.ipv4.tcp_tw_reuse允许复用 TIME-WAIT 状态的端口1Web 服务器
net.ipv6.conf.all.accept_ra控制 IPv6 路由器广播接受(见前文)10根据网络安全策略调整
5. 内存与交换分区
参数作用推荐值说明
vm.swappiness控制交换分区使用倾向(0-100)10物理内存充足时降低此值
vm.overcommit_memory内存分配策略(0=保守,1=总是允许,2=拒绝超限)02数据库服务器建议设为 2
vm.dirty_ratio内存脏数据达到总内存的百分比时强制写盘20减少 I/O 突增
6. 安全加固
参数作用推荐值说明
kernel.exec-shield防御缓冲区溢出攻击(仅 x86)1需内核支持
net.ipv4.conf.all.accept_redirects禁止接受 ICMP 重定向(防中间人攻击)0所有接口生效
fs.protected_hardlinks禁止普通用户修改系统硬链接1提升文件系统安全
网络优化
  • 连接队列
    net.core.somaxconn = 65535          # 全连接队列最大值
    net.ipv4.tcp_max_syn_backlog = 65535 # 半连接队列长度
    
  • TIME-WAIT 回收
    net.ipv4.tcp_tw_reuse = 1           # 允许重用 TIME-WAIT 套接字
    net.ipv4.tcp_fin_timeout = 30       # FIN 超时时间(秒)
    
  • 端口与拥塞控制
    net.ipv4.ip_local_port_range = 1024 65535 # 端口范围
    net.ipv4.tcp_congestion_control = bbr     # 拥塞算法
    
内存管理
  • 交换分区
    vm.swappiness = 10               # 值越低越倾向物理内存(0-100)
    vm.vfs_cache_pressure = 50       # inode 缓存回收倾向
    
  • 脏页策略
    vm.dirty_background_ratio = 5    # 后台刷脏页阈值(百分比)
    vm.dirty_ratio = 10              # 同步刷脏页阈值(百分比)
    
文件系统
  • 文件句柄限制
    fs.file-max = 2097152            # 系统最大打开文件数
    fs.inotify.max_user_watches = 1048576 # inotify 监控数上限
    
内核与安全
  • 进程与崩溃
    kernel.pid_max = 4194304         # 最大 PID 数量
    kernel.panic = 10                # 崩溃后重启时间(秒)
    
  • 网络防护
    net.ipv4.conf.all.rp_filter = 1  # 反向路径过滤(防 IP 欺骗)
    net.ipv4.icmp_echo_ignore_all = 1 # 忽略所有 ICMP 请求(防探测)
    

⚠️ 注意事项

  1. 语法检查
    使用 sysctl -p 时,若配置文件有语法错误,加载会失败并提示具体行号。

  2. 接口级参数
    若需针对特定接口(如 eth0)配置,需明确指定接口名:

    net.ipv6.conf.eth0.accept_ra = 0
    
  3. 生产环境测试
    修改关键参数(如 vm.swappiness 或网络转发)前,建议在非生产环境验证。

  4. 备份与回滚

    # 备份原配置
    sudo cp /etc/sysctl.conf /etc/sysctl.conf.bak
    

通过 /etc/sysctl.conf 及其扩展配置目录,管理员可以高效管理系统内核行为,从网络性能调优到安全策略加固,均能实现灵活控制。











详解 /etc/sysctl.conf:Linux 内核参数持久化配置文件

/etc/sysctl.conf 是 Linux 系统中用于 永久修改内核参数 的核心配置文件。通过此文件,用户可以定义系统启动时自动加载的内核参数,覆盖 /proc/sys/ 目录下参数的默认值。
结合 sysctl 命令,它允许管理员优化网络性能、调整内存管理、增强系统安全等。以下是其作用、配置方法及典型示例的全面解析。


1. 文件功能

  • 持久化内核参数:系统启动时自动加载配置,避免手动修改 /proc/sys/ 的值重启失效。
  • 集中管理:统一管理网络、内存、文件系统等内核行为。
  • 优先级规则:若存在 /etc/sysctl.d/*.conf 文件,其内容会覆盖 /etc/sysctl.conf(按文件名排序)。

2. 文件语法

  • 键值对格式<参数名> = <值>,参数名需与 /proc/sys/ 路径对应。
    例如,/proc/sys/net/ipv4/ip_forward 对应 net.ipv4.ip_forward
  • 注释:以 # 开头的行会被忽略。
  • 示例
    # 启用 IPv4 转发
    net.ipv4.ip_forward = 1# 调整内存交换倾向
    vm.swappiness = 10
    

3. 配置文件加载

3.1 手动加载配置
# 加载所有配置文件(包括 /etc/sysctl.d/)
sudo sysctl --system# 或仅加载指定文件
sudo sysctl -p /etc/sysctl.conf
3.2 自动加载机制
  • 系统启动时,通过 systemd-sysctl.service 自动加载 /etc/sysctl.conf/etc/sysctl.d/*.conf

4. 推荐配置目录

  • 主文件/etc/sysctl.conf(传统方式)。
  • 自定义目录/etc/sysctl.d/(推荐存放自定义配置,例如 99-custom.conf)。
    优点:
    • 避免直接修改主文件,降低冲突风险。
    • 模块化管理不同用途的配置(如网络优化、安全加固)。

5. 常见内核参数示例

5.1 网络优化
参数作用推荐值适用场景
net.ipv4.ip_forward启用 IPv4 数据包转发0主机设为 0,路由器设为 1
net.core.somaxconn最大连接队列长度(预防 SYN 洪水攻击)4096高并发服务器
net.ipv4.tcp_tw_reuse允许复用 TIME-WAIT 状态的端口1Web 服务器
net.ipv6.conf.all.accept_ra控制 IPv6 路由器广播接受(见前文)10根据网络安全策略调整
5.2 内存与交换分区
参数作用推荐值说明
vm.swappiness控制交换分区使用倾向(0-100)10物理内存充足时降低此值
vm.overcommit_memory内存分配策略(0=保守,1=总是允许,2=拒绝超限)02数据库服务器建议设为 2
vm.dirty_ratio内存脏数据达到总内存的百分比时强制写盘20减少 I/O 突增
5.3 安全加固
参数作用推荐值说明
kernel.exec-shield防御缓冲区溢出攻击(仅 x86)1需内核支持
net.ipv4.conf.all.accept_redirects禁止接受 ICMP 重定向(防中间人攻击)0所有接口生效
fs.protected_hardlinks禁止普通用户修改系统硬链接1提升文件系统安全

6. 配置验证与调试

6.1 检查参数值
# 查看某个参数当前值(如 IPv4 转发)
sysctl net.ipv4.ip_forward# 对比配置文件与实际值
grep 'ip_forward' /etc/sysctl.conf /etc/sysctl.d/*
6.2 测试配置生效
# 临时修改参数(重启失效)
sysctl -w net.ipv4.ip_forward=1# 永久修改后重新加载
sudo sysctl -p /etc/sysctl.d/99-custom.conf

7. 注意事项

  1. 权限与备份
    • 修改配置文件需 root 权限。
    • 修改前备份原文件:cp /etc/sysctl.conf /etc/sysctl.conf.bak
  2. 内核版本兼容性
    • 不同内核版本支持的参数可能不同(如 ioam6_enabled 需内核 ≥ 5.10)。
  3. 语法错误
    • 错误的参数名或值会导致加载失败。使用 sysctl -p 测试配置。
  4. 冲突管理
    • /etc/sysctl.d//etc/sysctl.conf 存在同名参数,以 /etc/sysctl.d/ 为准。

8. 典型场景

场景 1:Web 服务器优化
# /etc/sysctl.d/99-web-optimize.conf
net.core.somaxconn = 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_max_syn_backlog = 8192
vm.swappiness = 5
场景 2:禁用 IPv6
# /etc/sysctl.d/99-disable-ipv6.conf
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
场景 3:数据库服务器内存管理
# /etc/sysctl.d/99-database.conf
vm.swappiness = 1
vm.overcommit_memory = 2
vm.dirty_ratio = 10
vm.dirty_background_ratio = 5

总结

  • /etc/sysctl.conf 是内核调优的基石:通过它可实现网络、内存、安全等全局配置的持久化。
  • 灵活性与安全性
    • 使用 /etc/sysctl.d/ 目录管理自定义配置,避免主文件臃肿。
    • 结合 sysctl -p 测试配置,确保无语法错误。
  • 持续学习:根据业务需求调整参数,参考内核文档和最佳实践(如 Kernel.org)。










/etc/sysctl.conf 是 Linux 系统中用于配置内核参数的关键文件,通过调整这些参数可以优化系统性能、网络行为及安全性。以下是详细解析和配置指南:

1. 文件作用

  • 功能:控制内核运行参数,影响系统性能、网络、内存管理、安全等。
  • 生效方式:修改后需执行 sysctl -p /etc/sysctl.conf 或重启系统。

2. 常见参数分类与示例

网络优化
  • 连接队列
    net.core.somaxconn = 65535          # 全连接队列最大值
    net.ipv4.tcp_max_syn_backlog = 65535 # 半连接队列长度
    
  • TIME-WAIT 回收
    net.ipv4.tcp_tw_reuse = 1           # 允许重用 TIME-WAIT 套接字
    net.ipv4.tcp_fin_timeout = 30       # FIN 超时时间(秒)
    
  • 端口与拥塞控制
    net.ipv4.ip_local_port_range = 1024 65535 # 端口范围
    net.ipv4.tcp_congestion_control = bbr     # 拥塞算法
    
内存管理
  • 交换分区
    vm.swappiness = 10               # 值越低越倾向物理内存(0-100)
    vm.vfs_cache_pressure = 50       # inode 缓存回收倾向
    
  • 脏页策略
    vm.dirty_background_ratio = 5    # 后台刷脏页阈值(百分比)
    vm.dirty_ratio = 10              # 同步刷脏页阈值(百分比)
    
文件系统
  • 文件句柄限制
    fs.file-max = 2097152            # 系统最大打开文件数
    fs.inotify.max_user_watches = 1048576 # inotify 监控数上限
    
内核与安全
  • 进程与崩溃
    kernel.pid_max = 4194304         # 最大 PID 数量
    kernel.panic = 10                # 崩溃后重启时间(秒)
    
  • 网络防护
    net.ipv4.conf.all.rp_filter = 1  # 反向路径过滤(防 IP 欺骗)
    net.ipv4.icmp_echo_ignore_all = 1 # 忽略所有 ICMP 请求(防探测)
    

3. 配置场景示例

高并发 Web 服务器
# 连接队列优化
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
# TIME-WAIT 快速回收
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
# 内存保留策略
vm.min_free_kbytes = 65536 # 根据物理内存调整(每 GB 配 64MB)
数据库服务器优化
# 脏页刷盘策略
vm.dirty_background_bytes = 268435456 # 256MB 后台刷盘阈值
vm.dirty_bytes = 1073741824           # 1GB 同步刷盘阈值
# 进程迁移优化
kernel.sched_migration_cost_ns = 5000000

4. 注意事项

  • 备份配置:修改前执行 cp /etc/sysctl.conf /etc/sysctl.conf.bak
  • 逐项测试:避免一次性修改多个参数,建议逐项验证。
  • 内核兼容性:不同内核版本参数可能差异,通过 man proc 查询。
  • 监控工具
    • 查看所有参数:sysctl -a
    • 实时监控脏页:watch -n1 'cat /proc/meminfo | grep -E "Dirty|Writeback"'

5. sysctl 命令用法

  • 查看所有参数sysctl -a
  • 查看特定参数sysctl kernel.hostname
  • 临时修改参数sysctl -w net.ipv4.ip_forward=1
  • 加载配置文件sysctl -p /etc/sysctl.conf

通过合理配置 /etc/sysctl.conf,您可以显著提升系统性能、安全性和网络效率,适用于从单机调优到集群部署的多种场景。










以下是关于 Linux 的 /etc/sysctl.conf 文件的详细解释,结合知识库中的信息整理而成:


1. 什么是 /etc/sysctl.conf

  • 作用
    /etc/sysctl.conf 是 Linux 系统中用于 永久配置内核参数 的核心配置文件。
    它允许管理员在不重启系统的情况下调整内核行为,配置内容在系统启动时自动加载。

  • 功能

    • 性能优化:调整内存管理、网络协议栈、文件系统等参数。
    • 安全增强:禁用危险功能(如 IP 转发、ICMP 重定向)、防止攻击(如 SYN Flood)。
    • 系统稳定性:控制进程资源限制、脏页回写策略等。

2. 配置文件结构

  • 位置

    • 主配置文件:/etc/sysctl.conf
    • 分散配置目录:/etc/sysctl.d/(推荐将自定义配置放在此目录下,避免覆盖官方更新)。
  • 文件格式

    • 每行一个参数,格式为:
      kernel_parameter = value
      
    • 注释以 # 开头。
    • 参数路径与 /proc/sys/ 目录结构一致(如 net.ipv4.ip_forward 对应 /proc/sys/net/ipv4/ip_forward)。

3. 常用内核参数示例

以下参数来自知识库中的配置样例,涵盖网络、内存、安全等关键领域:

(1) 网络相关参数
参数作用示例值
net.ipv4.ip_forward允许/禁止 IP 转发(路由功能)。0(禁用)
net.ipv4.tcp_syncookies启用 TCP SYN Cookies,防御 SYN Flood 攻击。1(启用)
net.ipv4.conf.all.accept_redirects禁用接受 ICMP 重定向(增强安全性)。0
net.ipv4.conf.all.rp_filter开启反向路径过滤(防止 IP Spoofing 和 DDoS)。1
net.core.somaxconn设置 TCP 连接队列最大长度(提升高并发性能)。512
(2) 内存与文件系统
参数作用示例值
vm.swappiness控制系统使用交换空间的倾向(值越低,越少使用交换分区)。10
vm.dirty_ratio设置脏页达到内存百分比时触发强制回写(避免磁盘 I/O 压力)。10
fs.file-max全局最大打开文件描述符数。1000000
(3) 安全与限制
参数作用示例值
kernel.core_uses_pid在核心转储文件名中添加 PID,避免覆盖。1
kernel.msgmnb消息队列最大长度(单位:字节)。65536
kernel.shmmax单个共享内存段最大大小(单位:字节)。68719476736

4. 修改与生效方法

(1) 临时修改(即时生效)

使用 sysctl 命令直接修改内核参数:

# 修改单个参数
sudo sysctl -w net.ipv4.ip_forward=1# 修改多个参数(从文件)
sudo sysctl -p /path/to/custom.conf
(2) 永久修改(重启生效)
  1. 编辑配置文件

    sudo vi /etc/sysctl.conf
    # 或在 /etc/sysctl.d/ 下创建自定义文件(如 99-custom.conf)
    
  2. 添加参数

    # 示例:禁用 IPv6 重定向
    net.ipv6.conf.all.accept_redirects = 0# 示例:提高 TCP 连接队列长度
    net.core.somaxconn = 1024
    
  3. 加载配置

    sudo sysctl -p  # 重新加载配置文件
    

5. 典型应用场景

场景 1:增强服务器安全性
# 禁用 IP 转发和重定向
net.ipv4.ip_forward = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0# 开启反向路径过滤
net.ipv4.conf.all.rp_filter = 1# 防御 SYN Flood
net.ipv4.tcp_syncookies = 1
场景 2:优化高并发服务器
# 提高文件描述符限制
fs.file-max = 200000# 增大 TCP 连接队列
net.core.somaxconn = 4096# 调整内存回写策略
vm.dirty_ratio = 15
vm.dirty_background_ratio = 5
场景 3:禁止 IPv6
# 禁用 IPv6(需结合其他配置)
net.ipv6.conf.all.disable_ipv6 = 1

6. 注意事项

  1. 配置生效顺序

    • /etc/sysctl.d/ 目录下的文件按字母顺序加载,最后加载 /etc/sysctl.conf
    • 同名参数以最后加载的配置为准。
  2. 权限与备份

    • 修改前备份原始文件:sudo cp /etc/sysctl.conf /etc/sysctl.conf.bak
    • 确保配置文件权限为 644sudo chmod 644 /etc/sysctl.conf
  3. 测试与验证

    • 修改后立即用 sysctl -p 加载,并检查日志(/var/log/syslog)是否有错误。
    • 验证参数是否生效:
      sysctl net.ipv4.ip_forward  # 查看单个参数
      sysctl -a | grep "net.ipv4"  # 查看所有 IPv4 相关参数
      
  4. 发行版差异

    • 不同 Linux 发行版(如 Ubuntu、CentOS)的默认配置可能不同,需参考官方文档。

7. 常见问题

Q1: 修改后参数不生效?
  • 原因:格式错误(如参数名拼写错误、缺少空格)、未执行 sysctl -p
  • 解决:检查语法,重新加载配置。
Q2: 如何查看所有内核参数?
sysctl -a  # 显示所有参数及当前值
Q3: 如何临时禁用 IP 转发?
sudo sysctl -w net.ipv4.ip_forward=0

8. 知识库关联

  • 性能优化:参考知识库[1][2][5]中关于 vm.swappinessnet.core.somaxconn 的调整方法。
  • 安全配置:知识库[3][6]提到的 rp_filteraccept_redirects 是关键安全参数。
  • 永久配置:知识库[7]说明 /etc/sysctl.d/ 的优先级高于 /etc/sysctl.conf

通过合理配置 /etc/sysctl.conf,可以显著提升系统性能、安全性和稳定性。建议在非生产环境测试配置,并详细记录修改内容。










在 Linux 系统中,/etc/sysctl.conf 是用于配置内核参数的核心文件。它允许管理员在系统启动时加载自定义的内核参数,实现对系统行为的精细控制。以下是关于该文件的详细说明:

1. 文件作用

  • 内核参数配置:存储需要在系统启动时永久生效的内核参数。
  • 动态调整:通过 sysctl 命令可直接读取或修改这些参数,无需重启系统。
  • 适用场景:网络优化、安全策略、性能调优、资源限制等。

2. 文件结构

  • 每行一个参数:格式为 变量名=值,例如:
    net.ipv4.ip_forward = 1
    kernel.panic = 10
    
  • 注释:以 # 开头的行表示注释,用于说明参数用途。
  • 特殊变量:支持 @% 等占位符(需配合 systemd-sysctl 使用)。

3. 常用配置示例

(1)网络相关
  • 开启 IPv4 转发(允许作为路由器):
    net.ipv4.ip_forward = 1
    
  • 禁用 ICMP 重定向
    net.ipv4.conf.all.accept_redirects = 0
    
  • 调整 TCP 最大连接数
    net.ipv4.tcp_max_tw_buckets = 6000
    
(2)安全相关
  • 禁止 core dump
    kernel.core_uses_pid = 1
    fs.suid_dumpable = 0
    
  • 启用内存保护(ASLR)
    kernel.randomize_va_space = 2
    
(3)性能优化
  • 调整文件句柄限制
    fs.file-max = 1000000
    
  • 优化 NFS 性能
    net.netfilter.nf_conntrack_max = 262144
    

4. 修改与生效

(1)临时修改

使用 sysctl 命令直接修改参数(重启后失效):

sysctl -w net.ipv4.ip_forward=1
(2)永久修改

编辑 /etc/sysctl.conf 文件,添加或修改参数后,执行以下命令使配置生效:

sysctl -p  # 加载 /etc/sysctl.conf 中的配置
(3)验证配置

查看所有生效的参数:

sysctl -a

查看特定参数:

sysctl net.ipv4.ip_forward

5. 优先级与扩展

  • 主配置文件/etc/sysctl.conf 是全局配置文件。
  • 目录覆盖/etc/sysctl.d/*.conf 中的文件会按字母顺序加载,覆盖主文件中的同名参数。
  • 优先级/run/sysctl.d/*.conf(运行时配置) > /etc/sysctl.d/*.conf > /etc/sysctl.conf

6. 注意事项

  1. 谨慎修改:错误的内核参数可能导致系统不稳定或服务异常。
  2. 备份文件:修改前建议备份原文件:
    cp /etc/sysctl.conf /etc/sysctl.conf.bak
    
  3. 生效范围:部分参数仅对新进程生效,需重启相关服务或系统。

7. 相关命令

  • sysctl:管理内核参数的工具。
  • sysctl -p:重新加载 sysctl.conf 配置。
  • systemctl restart systemd-sysctl:重新加载系统级的 sysctl 配置。

通过合理配置 /etc/sysctl.conf,可以显著提升系统的安全性、性能和兼容性。建议结合具体需求和官方文档进行参数调整。










/etc/sysctl.conf 是 Linux 系统中用于配置内核运行时参数的配置文件。它允许用户在系统启动时或通过 sysctl 命令动态地调整内核参数。这些参数通常存储在 /proc/sys/ 文件系统中,sysctl.conf 提供了一种方便的方式来持久化这些设置。

配置文件结构

/etc/sysctl.conf 文件中的每一行都包含一个参数及其值,格式为:

参数名 = 值

常见参数示例

以下是一些常见的内核参数及其示例配置:

1. IPv6 配置
# 禁用所有接口的 IPv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1# 启用所有接口的 IPv6 转发
net.ipv6.conf.all.forwarding = 1# 禁用所有接口的 RA 接受
net.ipv6.conf.all.accept_ra = 0
2. 网络配置
# 启用 TCP SYN Cookie 保护
net.ipv4.tcp_syncookies = 1# 设置本地端口范围
net.ipv4.ip_local_port_range = 1024 65535# 启用 IP 转发(用于路由器)
net.ipv4.ip_forward = 1# 设置连接跟踪超时时间
net.netfilter.nf_conntrack_tcp_timeout_established = 1800
3. 性能优化
# 调整文件句柄限制
fs.file-max = 100000# 调整 inode 数量
fs.inotify.max_user_instances = 512
fs.inotify.max_user_watches = 524288
4. 安全配置
# 禁用源路由
net.ipv4.conf.all.accept_source_route = 0# 启用 ICMP 重定向
net.ipv4.conf.all.accept_redirects = 0# 禁用 IPv6 的 ICMP 重定向
net.ipv6.conf.all.accept_redirects = 0

配置方法

1. 查看当前参数值
sysctl -a
2. 修改参数值
sysctl -w net.ipv6.conf.all.forwarding=1
3. 加载配置文件
sysctl -p
4. 编辑配置文件
sudo nano /etc/sysctl.conf

注意事项

  • 权限:修改 /etc/sysctl.conf 文件通常需要管理员权限。
  • 永久修改:通过 sysctl -w 修改的参数在系统重启后会恢复为默认值。要永久修改,需要将参数设置添加到 /etc/sysctl.conf 文件中。
  • 生效:修改 /etc/sysctl.conf 文件后,需要运行 sysctl -p 使配置生效。

示例

以下是一个完整的 /etc/sysctl.conf 示例:

# /etc/sysctl.conf# 禁用 IPv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1# 启用 IP 转发
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1# TCP 性能优化
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30# 文件句柄限制
fs.file-max = 100000# 安全配置
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0

通过合理配置 /etc/sysctl.conf 文件,可以优化系统性能、增强安全性或满足特定的网络需求。










/etc/sysctl.conf 是 Linux 系统中的一个重要配置文件,用于设置内核参数。这些参数可以在系统运行时动态调整,但为了使设置在系统重启后依然有效,需要将它们写入 /etc/sysctl.conf 文件中。

主要功能

  1. 内核参数调整

    • /etc/sysctl.conf 文件允许系统管理员配置各种内核参数,以优化系统性能、安全性或适应特定的网络环境。
    • 例如,可以调整网络堆栈参数、文件系统参数、内存管理参数等。
  2. 持久化设置

    • 通过将参数设置写入 /etc/sysctl.conf,可以确保这些设置在系统重启后依然有效。
    • 这些设置会在系统启动时由 sysctl 命令自动加载。

常见配置项

以下是一些常见的 /etc/sysctl.conf 配置项及其作用:

  • 网络相关

    • net.ipv4.ip_forward = 1:启用 IPv4 数据包转发。
    • net.ipv4.tcp_syncookies = 1:启用 TCP 同步cookies,以防止 SYN 洪水攻击。
    • net.ipv6.conf.all.accept_ra = 1:启用 IPv6 路由器广告的接受。
  • 安全性相关

    • fs.suid_dumpable = 0:禁止 SUID 程序进行核心转储,以提高系统安全性。
    • kernel.randomize_va_space = 2:启用地址空间布局随机化(ASLR),以增强安全性。
  • 性能相关

    • vm.swappiness = 10:调整内核使用交换空间的倾向,值越低表示越倾向于使用物理内存。
    • net.core.somaxconn = 1024:增加 TCP 连接请求的最大队列长度。

修改和加载配置

  • 修改配置

    • 使用文本编辑器打开 /etc/sysctl.conf 文件,并根据需要进行修改。
    • 例如,使用 vi 编辑器:
      sudo vi /etc/sysctl.conf
      
  • 加载配置

    • 修改完成后,可以使用 sysctl -p 命令重新加载配置文件,使更改立即生效。
      sudo sysctl -p
      

注意事项

  • 修改内核参数可能会影响系统的稳定性和性能,需谨慎操作。
  • 在进行重大更改之前,建议备份当前的 /etc/sysctl.conf 文件。

总之,/etc/sysctl.conf 文件是 Linux 系统中用于持久化设置内核参数的重要工具,可以帮助系统管理员优化系统性能和安全性。

希望这些信息对你有帮助。如果有更多问题,请随时提问。










以下是关于Linux系统中/etc/sysctl.conf文件的逐步解析:


1. 文件作用

/etc/sysctl.conf 是一个系统级配置文件,用于在Linux启动时或通过命令手动加载时永久修改内核参数。这些参数控制操作系统的核心行为,例如:

  • 网络协议栈优化(IPv4/IPv6)
  • 内存管理
  • 文件系统限制
  • 安全策略(如防止DDoS攻击)

2. 文件格式

  • 键值对格式:每行定义一个参数,格式为 参数名 = 值
    示例:
    net.ipv4.ip_forward = 1      # 启用IPv4路由转发
    fs.file-max = 65535         # 设置系统最大打开文件数
    
  • 注释:以 # 开头的行会被忽略。
  • 通配符支持:可使用 net.ipv4.conf.*.accept_redirects = 0 对所有网络接口生效。

3. 配置文件加载

  • 启动时自动加载:系统初始化时通过sysctl --system命令加载。
  • 手动加载:通过以下命令立即生效(无需重启):
    sysctl -p /etc/sysctl.conf   # 加载指定文件
    sysctl -p                    # 加载默认文件(/etc/sysctl.conf)
    

4. 配置优先级

Linux内核参数的配置优先级如下(从高到低):

  1. 运行时修改:通过 sysctl -w 参数名=值(临时生效,重启失效)。
  2. /etc/sysctl.d/*.conf:系统会按字母顺序加载此目录下的配置文件。
  3. /etc/sysctl.conf:传统主配置文件,优先级低于/etc/sysctl.d/中的文件。

5. 典型配置示例

(1) 网络优化
# 启用IPv4路由转发(用于路由器或VPN服务器)
net.ipv4.ip_forward = 1
# 禁用IPv6自动配置(结合用户之前提问的accept_ra参数)
net.ipv6.conf.all.accept_ra = 0
# 防御SYN洪水攻击
net.ipv4.tcp_syncookies = 1
(2) 内存与文件系统
# 调整虚拟内存管理(减少交换倾向)
vm.swappiness = 10
# 最大文件句柄数
fs.file-max = 2097152
(3) 安全加固
# 禁止ICMP重定向(防中间人攻击)
net.ipv4.conf.all.accept_redirects = 0
# 禁用核心转储(防敏感信息泄露)
kernel.core_pattern = /dev/null

6. 注意事项

  • 持久化生效:修改/etc/sysctl.conf后需运行sysctl -p使其生效。
  • 参数验证:通过 sysctl 参数名 检查当前值(如 sysctl net.ipv4.ip_forward)。
  • 语法检查:错误的参数名或值会导致加载失败,但不会影响已运行的配置。
  • 接口专用配置:某些参数可针对特定网络接口(如eth0)设置,例如:
    net.ipv6.conf.eth0.accept_ra = 2
    

7. 扩展知识

  • 动态查看参数:所有可调参数列表可通过 sysctl -a 查看。
  • 临时修改:调试时优先使用 sysctl -w,确认效果后再写入配置文件。
  • 系统默认值:默认参数定义在内核源码的 Documentation/sysctl/ 目录中。

通过合理配置/etc/sysctl.conf,可以实现网络性能调优、安全加固和资源管理等功能。建议结合实际场景逐步调整参数并验证效果。










Linux 的 /etc/sysctl.conf 详解

/etc/sysctl.conf 是 Linux 系统中用于永久配置内核参数的核心文件,通过修改该文件可以调整网络性能、内存管理、文件系统行为等系统级参数。以下从功能、配置方法、优化场景及注意事项等方面详细解析:


1. 核心功能与作用

永久配置内核参数
/etc/sysctl.conf 存储的配置在系统重启后依然生效,区别于 /proc/sys/ 目录下的临时修改。
覆盖范围
支持调整的参数包括:
网络协议栈(TCP/IP 参数、连接队列、端口范围等)。
内存管理(虚拟内存、交换分区策略等)。
文件系统(最大文件句柄数、缓存策略等)。
安全与性能优化(如 SYN Flood 防护、IPv6 禁用)。


2. 配置语法与操作

语法规则
每行以 参数名=值 的形式定义,例如:

net.ipv4.ip_forward=1       # 启用 IPv4 转发
vm.swappiness=10            # 减少使用交换分区倾向
fs.file-max=2000000         # 增大系统最大文件句柄数

操作步骤

  1. 编辑文件
    sudo vim /etc/sysctl.conf   # 使用 root 权限修改
    
  2. 加载配置
    sudo sysctl -p              # 立即生效,无需重启
    
  3. 验证参数
    sysctl 参数名               # 如 `sysctl net.ipv4.ip_forward`
    

3. 典型参数与优化场景
(1) 网络性能优化

TCP 连接队列

net.core.somaxconn=4096        # 增大 TCP 全连接队列长度
net.ipv4.tcp_max_syn_backlog=2048  # 调整半连接队列大小

端口范围与重用

net.ipv4.ip_local_port_range=1024 65535  # 扩展临时端口范围
net.ipv4.tcp_tw_reuse=1            # 允许重用 TIME-WAIT 端口
(2) 内存与缓存管理

虚拟内存策略

vm.overcommit_memory=1        # 允许内存超额分配(需谨慎)
vm.dirty_ratio=10             # 脏页刷新阈值(单位:百分比)
(3) 安全增强

禁用 IPv6

net.ipv6.conf.all.disable_ipv6=1   # 全局禁用 IPv6

防护攻击

net.ipv4.tcp_syncookies=1     # 启用 SYN Cookie 防御 SYN Flood
(4) 文件系统调优

文件句柄限制

fs.file-max=2000000           # 提高系统最大文件句柄数
fs.nr_open=2000000            # 单个进程最大文件句柄数










/etc/sysctl.conf 简介与使用指南

/etc/sysctl.conf 是 Linux 系统中用于动态调整内核参数的配置文件。通过修改此文件,可以优化系统性能、增强安全性、调整网络行为等。这些参数在系统启动时生效,或通过命令手动加载。


1. 文件作用

  • 动态内核参数调整:无需重启内核即可修改运行时配置。
  • 持久化配置:修改后保存到文件中,重启后仍生效。
  • 覆盖默认值:可覆盖内核默认的参数设置。

2. 常用参数与配置示例

(1) 内存与交换空间
  • vm.swappiness:控制系统使用交换空间的倾向(值 0-100)。
    • 默认值:60
    • 示例:减少交换空间使用(优先保留内存):
      vm.swappiness = 10
      
  • vm.overcommit_memory:控制内存分配策略。
    • 0:内核会检查是否有足够可用内存(默认)。
    • 1:允许过度分配内存(适用于需要保证分配成功的场景)。
(2) 网络配置
  • net.ipv4.ip_forward:启用 IP 转发(用于路由器或 NAT)。
    net.ipv4.ip_forward = 1
    
  • net.ipv4.tcp_syncookies:启用 SYN 洪水攻击防护。
    net.ipv4.tcp_syncookies = 1
    
  • net.core.somaxconn:设置网络连接请求队列的最大长度(默认 128)。
    net.core.somaxconn = 1024
    
(3) 文件系统
  • fs.file-max:设置系统最大打开文件数。
    fs.file-max = 100000
    
  • fs.inotify.max_user_watches:设置用户可监控的文件数量(用于工具如 inotify)。
    fs.inotify.max_user_watches = 8192
    
(4) 安全相关
  • kernel.exec-shield:启用地址空间布局随机化(ASLR)。
    • 部分系统默认启用。
  • net.ipv4.conf.all.rp_filter:启用反向路径过滤(防止 IP 欺骗)。
    net.ipv4.conf.all.rp_filter = 1
    
(5) 其他
  • kernel.sysrq:启用 SysRq 键(紧急控制)。
    kernel.sysrq = 1
    
  • kernel.msgmnb:设置消息队列的最大字节数。

3. 配置步骤

(1) 编辑配置文件
sudo nano /etc/sysctl.conf
(2) 添加或修改参数
# 示例:启用 IP 转发
net.ipv4.ip_forward = 1# 示例:减少交换空间使用
vm.swappiness = 10
(3) 应用配置
sudo sysctl -p  # 重新加载配置文件

4. 临时修改(不持久化)

使用 sysctl 命令直接修改内核参数(重启后失效):

sudo sysctl -w net.ipv4.ip_forward=1

5. 注意事项

  1. 语法规范

    • 参数名和值之间用 = 分隔。
    • 注释以 # 开头。
    • 避免拼写错误(如 vm.swappiness 而非 vm.swapiness)。
  2. 参数范围

    • 确保参数值在有效范围内(如 vm.swappiness 为 0-100)。
  3. 风险配置

    • 某些参数(如 vm.overcommit_memory=1)可能影响系统稳定性,需谨慎调整。
  4. 分散配置文件

    • 部分系统使用 /etc/sysctl.d/ 目录下的 .conf 文件(如 99-sysctl.conf),优先级高于主文件。

6. 实用命令

  • 查看所有内核参数
    sysctl -a
    
  • 查看单个参数值
    sysctl net.ipv4.ip_forward
    

7. 典型场景示例

场景 1:优化网络性能
# 提高 TCP 连接队列长度
net.core.somaxconn = 4096# 启用 TCP 窗口缩放
net.ipv4.tcp_window_scaling = 1
场景 2:增强安全配置
# 禁用 IPv6(若不使用)
net.ipv6.conf.all.disable_ipv6 = 1# 启用反向路径过滤
net.ipv4.conf.all.rp_filter = 1# 禁用 ICMP 红外线(防止 DoS 攻击)
net.ipv4.icmp_echo_ignore_all = 1
场景 3:优化文件描述符限制
# 提高系统最大文件数
fs.file-max = 200000# 提高单进程打开文件数(需配合 ulimit)
fs.nr_open = 100000

8. 总结

  • 核心用途:动态调整内核参数,优化系统性能和安全性。
  • 配置原则:根据实际需求调整,避免盲目修改关键参数。
  • 验证方法:修改后通过 sysctl -p 加载并验证参数生效。

通过合理配置 /etc/sysctl.conf,可以显著提升系统在特定场景下的表现,例如高并发服务器、嵌入式设备或网络安全环境。建议结合文档和实际测试逐步调整。










在Linux系统中,/etc/sysctl.conf 文件是一个至关重要的配置文件,它用于设置系统范围内的内核参数,这些参数影响着系统的安全性、网络性能、内存管理以及文件系统行为等多个方面。以下是关于这个文件的一些具体信息:

  1. 安全性和网络性能调优

    • IP转发配置:通过设置 net.ipv4.ip_forward 可以开启或关闭 IP 转发功能。例如,设置为 1 表示开启,允许数据包在网络接口之间转发;设置为 0 则关闭,防止数据包转发,增加系统的安全性。
    • ICMP 相关设置:如 net.ipv4.icmp_echo_ignore_broadcasts 设置为 1 可避免 ICMP 回声请求的广播风暴,提高系统的安全性和稳定性。net.ipv4.icmp_ignore_bogus_error_responses 设置为 1 可开启对恶意 ICMP 错误消息的保护。
    • SYN Cookies 防护:将 net.ipv4.tcp_syncookies 设置为 1 可以启用 SYN Cookies 防护,当出现 SYN 等待队列溢出时,使用 cookies 来处理同步报文,防止 SYN 洪水攻击。
    • TCP 连接参数优化:调整 net.ipv4.tcp_max_syn_backlog 可以增加系统能够处理的最大 SYN 连接请求数,减少因 SYN 队列溢出而导致的无法建立新连接的情况。net.ipv4.tcp_keepalive_time 用于设置 TCP 保活时间,定期检测空闲的连接是否仍然可用,确保资源的有效利用。
  2. 内存管理和文件系统优化

    • 虚拟内存设置vm.dirty_background_ratiovm.dirty_ratio 分别设置了虚拟内存中脏数据在内存背景回写和直接回写的阈值比例,合理调整这些参数可以优化内存的使用效率,平衡系统的响应速度和内存资源的利用率。
    • 文件系统缓存策略vm.vfs_cache_pressure 参数可以影响文件系统缓存的行为,较小的值会增加缓存的大小,加快文件访问速度,但可能会占用更多的内存资源;较大的值则会减少缓存大小,释放更多的内存供应用程序使用。
  3. 系统调优

    • 调度程序参数kernel.sched_migration_cost_ns 可以调整进程迁移成本,影响系统调度器的决策,较低的值会使进程更愿意被迁移到负载较轻的 CPU 上执行,提高多核处理器的利用率;较高的值则会减少进程迁移的频率,降低调度开销。
    • 最大文件描述符数fs.file-max 设置了系统允许的最大文件描述符数,对于运行大量并发连接的网络服务或需要同时打开多个文件的应用程序来说,适当增加该值可以提高系统的性能和稳定性。

总之,Linux 的 /etc/sysctl.conf 文件为系统管理员提供了丰富的选项来优化和调整系统性能、安全性和资源利用,但修改这些参数需要谨慎进行,以确保系统的稳定运行。



















本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/74607.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

deepseek v3-0324 Markdown 编辑器 HTML

Markdown 编辑器 HTML 以下是一个美观的 Markdown 编辑器 HTML 页面&#xff0c;支持多种主题切换和实时预览功能&#xff1a; <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&q…

Linux make 检查依赖文件更新的原理

1. 文件的时间戳 make 主要依靠文件的时间戳来判断依赖文件是否有更新。每个文件在文件系统中都有一个时间戳&#xff0c;记录了文件的三种重要时间&#xff1a; ​​访问时间&#xff08;Accesstime&#xff09;​​&#xff1a;文件最后一次被访问的时间。​​修改时间&…

HDEBits中组合逻辑类的部分题目练习

文章目录 1. More logic gates2. Truth tables3. 256-to-1 4-bit multiplexer4. 3-bit binary adder5. Signed addition overflow6. 4-digit BCD adder7. Minimum SOP and POS8. Karnaugh map9. K-map implemented with a multiplexer总结 1. More logic gates 题目&#xff1…

Apache httpclient okhttp(2)

学习链接 Apache httpclient & okhttp&#xff08;1&#xff09; Apache httpclient & okhttp&#xff08;2&#xff09; okhttp github okhttp官方使用文档 okhttp官方示例代码 OkHttp使用介绍 OkHttp使用进阶 译自OkHttp Github官方教程 SpringBoot 整合okHttp…

【git项目管理】长话短说

目录 主要分为三种使用情况 安装git后第一次使用创建新仓库并管理克隆仓库并管理 初次使用git 首先确定电脑的用户名是纯英文&#xff0c;没有中文和奇怪的符号&#xff0c;如果不满足这个条件&#xff0c;参考这个 链接 修改用户名 git config --global user.name "…

算法刷题记录——LeetCode篇(3.2) [第211~212题](持续更新)

更新时间&#xff1a;2025-04-04 算法题解目录汇总&#xff1a;算法刷题记录——题解目录汇总技术博客总目录&#xff1a;计算机技术系列博客——目录页 优先整理热门100及面试150&#xff0c;不定期持续更新&#xff0c;欢迎关注&#xff01; 215. 数组中的第K个最大元素 给…

【linux学习】linux系统调用编程

目录 一、任务、进程和线程 1.1任务 1.2进程 1.3线程 1.4线程和进程的关系 1.5 在linux系统下进程操作 二、Linux虚拟内存管理与stm32的真实物理内存区别 2.1 Linux虚拟内存管理 2.2 STM32的真实物理内存映射 2.3区别 三、 Linux系统调用函数 fork()、wait()、exec(…

react redux的学习,多个reducer

redux系列文章目录 第一章 简单学习redux,单个reducer 前言 前面我们学习到的是单reducer的使用&#xff1b;要知道redux是个很强大的状态存储库&#xff0c;可以支持多个reducer的使用。 combineReducers ‌combineReducers‌是Redux中的一个辅助函数&#xff0c;主要用于…

Oracle数据库数据编程SQL<3.5 PL/SQL 存储过程(Procedure)>

存储过程(Stored Procedure)是 Oracle 数据库中一组预编译的 PL/SQL 语句集合,存储在数据库中并可通过名称调用执行。它们是企业级数据库应用开发的核心组件。 目录 一、存储过程基础 1. 存储过程特点 2. 创建基本语法 3. 存储过程优点 4. 简单示例 二、没有参数的存储…

手撕AVL树

引入&#xff1a;为何要有AVL树&#xff0c;二次搜索树有什么不足&#xff1f; 二叉搜索树有其自身的缺陷&#xff0c;假如往树中插入的元素有序或者接近有序&#xff0c;二叉搜索树就会退化成单支树&#xff0c;时间复杂度会退化成O(N)&#xff0c;因此产生了AVL树&#xff0c…

《 C语言中的变长数组:灵活而强大的特性》

&#x1f680;个人主页&#xff1a;BabyZZの秘密日记 &#x1f4d6;收入专栏&#xff1a;C语言 &#x1f30d;文章目入 一、变长数组的定义二、变长数组的优势三、变长数组的使用示例示例1&#xff1a;动态输入数组大小示例2&#xff1a;变长数组在函数中的应用 四、变长数组的…

【微服务】基础概念

1.什么是微服务 微服务其实就是一种架构风格&#xff0c;他提倡我们在开发的时候&#xff0c;一个应用应该是一组小型服务而组成的&#xff0c;每一个服务都运行在自己的进程中&#xff0c;每一个小服务都通过HTTP的方式进行互通。他更加强调服务的彻底拆分。他并不是仅局限于…

Linux make与makefile 项目自动化构建工具

本文章将对make与makefile进行一些基础的讲解。 假设我们要建造一座房子&#xff0c;建造过程涉及很多步骤&#xff0c;比如打地基、砌墙、安装门窗、粉刷墙壁等。每个步骤都有先后顺序&#xff0c;并且有些步骤可能依赖于其他步骤的完成。比如&#xff0c;你必须先打好地基才…

如何判断多个点组成的3维面不是平的,如果不是平的,如何拆分成多个平面

判断和拆分三维非平面为多个平面 要判断多个三维点组成的面是否为平面&#xff0c;以及如何将非平面拆分为多个平面&#xff0c;可以按照以下步骤进行&#xff1a; 判断是否为平面 平面方程法&#xff1a; 选择三个不共线的点计算平面方程&#xff1a;Ax By Cz D 0检查其…

多layout 布局适配

安卓多布局文件适配方案操作流程 以下为通过多套布局文件适配不同屏幕尺寸/密度的详细步骤&#xff0c;结合主流适配策略及最佳实践总结&#xff1a; 一、‌创建多套布局资源目录‌ ‌按屏幕尺寸划分‌ 在 res 目录下创建以下文件夹&#xff08;根据设备特性自动匹配&#xff…

Java 大视界 -- Java 大数据在智能农业无人机植保作业路径规划与药效评估中的应用(165)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…

美关税加征下,Odoo免费开源ERP如何助企业破局?

近期&#xff0c;美国特朗普政府推行的关税政策对全球供应链和进出口企业造成巨大冲击&#xff0c;尤其是依赖中美贸易的企业面临成本激增、利润压缩和合规风险。在此背景下&#xff0c;如何通过数字化转型优化管理效率、降低运营成本成为企业生存的关键。本文以免费开源ERP系统…

go游戏后端开发25:红中麻将规则介绍

一、游戏基础规则介绍 在开发红中麻将游戏之前&#xff0c;我们需要先了解其基础规则。红中麻将的牌面由 a、b、c、d 四种花色组成&#xff0c;其中 a、b、c 分别代表万、条、筒&#xff0c;每种花色都有 1 - 9 的九种牌&#xff0c;每种牌各有四张&#xff0c;总计 36 张 4 …

Unity:平滑输入(Input.GetAxis)

目录 1.为什么需要Input.GetAxis&#xff1f; 2. Input.GetAxis的基本功能 3. Input.GetAxis的工作原理 4. 常用参数和设置 5. 代码示例&#xff1a;用GetAxis控制角色移动 6. 与Input.GetAxisRaw的区别 7.如何优化GetAxis&#xff1f; 1.为什么需要Input.GetAxis&…

OpenCV:计算机视觉的强大开源库

文章目录 引言一、什么是OpenCV&#xff1f;1.OpenCV的核心特点 二、OpenCV的主要功能模块1. 核心功能&#xff08;Core Functionality&#xff09;2. 图像处理&#xff08;Image Processing&#xff09;3. 特征检测与描述&#xff08;Features2D&#xff09;4. 目标检测&#…