CentOS Stream 9 安装与系统设置:构建稳定服务器的全方位指南
在当今数字化浪潮中,服务器的稳定运行如同企业发展的坚实基石。然而,许多人在服务器部署过程中,常常因稳定性问题而陷入困境,耗费大量时间和精力却仍无法达到理想效果。你是否也在为服务器的稳定部署而焦头烂额?别担心,今天我们将为你带来一份超详细的 CentOS Stream 9 安装教程,让你在 20 分钟内轻松完成安装,开启高效、稳定的服务器之旅!
二、开始安装
(一)安装入口选择
当你启动安装程序后,会面临两个选项:直接选择“Install CentOS Steram 9”进行安装,另一个选项是先测试光盘。这里我们建议直接安装,因为测试光盘的过程通常较为缓慢,会耗费大量时间,除非你对光盘的完整性有特殊疑虑,否则一般无需使用该选项。
(二)语言和键盘设置
服务器一般选择“Englist(United States)”。虽然选择中文也并非不可行,但在某些服务器环境下,使用英文设置可能会更加稳定和规范,避免一些潜在的兼容性问题。
(三)分区设置
在 Linux 系统中,分区是一个至关重要的环节,它直接影响到系统的性能和稳定性。选择“LVM(逻辑卷管理)”还是“Standard Partition(标准分区)”,需要根据具体需求进行权衡。
1. LVM 与 Standard Partition 的核心区别
灵活性 | 支持动态调整分区大小(无需重启),可根据业务需求随时对分区进行扩展或缩减,无需重新格式化磁盘,极大地提高了磁盘空间的利用率。 | 分区大小固定,一旦创建后,调整分区大小需要进行格式化或使用第三方工具,操作复杂且可能会导致数据丢失。 |
多磁盘管理 | 可将多个物理磁盘合并为单一卷组(VG),实现跨磁盘的统一管理和资源分配,方便用户对磁盘空间进行灵活调度。 | 每个磁盘独立管理,无法跨磁盘合并,磁盘空间的利用受到一定限制。 |
快照功能 | 支持创建快照(备份或测试),用户可以在不影响原始数据的情况下,对系统进行备份或测试,为数据安全提供了有力保障。 | 不支持,需依赖外部工具(如 dd、rsync)进行备份或测试,操作相对繁琐。 |
扩展性 | 可在线扩展或缩减逻辑卷(LV),满足企业业务快速发展的需求,无需停机维护,提高了系统的可用性。 | 扩展需未分配空间且相邻,缩减需格式化,对磁盘空间的要求较高,且操作风险较大。 |
复杂度 | 管理命令较多(如 pvcreate, lvresize 等),需要用户具备一定的 Linux 系统管理知识和技能。 | 简单易用(fdisk/parted 直接操作),适合初学者或对系统管理要求不高的用户。 |
性能 | 轻微开销(通常可忽略),在进行分区调整等操作时,可能会对系统性能产生一定的影响,但这种影响通常可以忽略不计。 | 无额外开销,直接访问物理分区,性能相对较高。 |
2. 手动分区选择与设置
这里我们选择手动分区,并采用 LVM 方式。对于硬盘空间较小的用户,可以不单独分 /home 分区,但建议在硬盘空间允许的情况下,单独划分 /home 分区,这样可以方便文件传输和防止根分区占满。
下图是我的设置。我这硬盘小就不单独分 /home ,设置完后点 Done (完成)
3. 推荐 LVM 的情况
- 生产服务器:根分区(/)建议设置为 20G,数据卷(/data)等需要在线扩容的场景,LVM 可以满足企业业务快速发展的需求,无需停机维护,提高了系统的可用性。
- 虚拟化平台:虚拟机磁盘管理(如 KVM 的 qcow2 文件存放于 LVM 卷),LVM 可以实现跨磁盘的统一管理和资源分配,方便用户对虚拟机磁盘空间进行灵活调度。
- 桌面环境:方便调整 /home 分区大小,15G 左右即可满足大多数用户的需求。
(四)软件选择
服务器一般会选择“Minimal Install”,同时我们可以根据实际需求添加一些软件包,以提高服务器的功能和性能。
1. Red Hat Enterprise Linux (RHEL) 软件包组的工具总结
Standard | systemd, bash, coreutils, NetworkManager, firewalld, selinux-policy | 默认安装,适用于通用服务器或桌面环境,提供系统基本功能和服务。 |
Legacy UNIX Compatibility | compat-libstdc++, uuCP, ncompress, rsh | 兼容旧版 UNIX 系统(如 Solaris/AIX 迁移),方便用户在不同系统之间进行数据迁移和应用移植。 |
Console Internet Tools | wget, curl, lynx, nc, mailx | 命令行环境下的网络访问和管理工具,方便用户在服务器上进行网络操作和数据传输。 |
Container Management | podman, skopeo, buildah, container-selinux | 容器化应用的构建、管理和运行,支持 Docker 容器技术,方便用户在服务器上部署和管理容器化应用。 |
Development Tools | gcc, g++, make, git, gdb | C/C++/Rust 等语言的开发环境,提供编译器、调试器等工具,方便用户在服务器上进行软件开发和调试。 |
.NET Development | .NET SDK, .NET Runtime, NuGet, libgdiplus | 开发和运行跨平台的 .NET Core 应用程序,支持多种编程语言,方便用户在服务器上开发和部署.NET 应用。 |
Graphical Administration Tools | cockpit, system-config-*, gnome-system-monitor, virt-manager | 通过图形界面管理系统(如防火墙、虚拟机、资源监控),方便用户在服务器上进行系统管理和监控。 |
Headless Management | openssh-server, cockpit-web, ipmitool, sosreport | 无显示器服务器的远程管理(SSH、硬件监控、诊断),方便用户在远程对服务器进行管理和维护。 |
Network Servers | httpd, bind, dhcp-server, krb5-server, nfs-utils | 部署网络服务(Web/DNS/DHCP/Kerberos/NFS),方便用户在服务器上搭建各种网络服务。 |
RPM Development Tools | rpm-build, rpmdevtools, spec-cleaner, mock | 构建和定制 RPM 软件包,方便用户在服务器上进行软件包的构建和管理。 |
Scientific Support | blas, lapack, openmpi, R, numpy | 科学计算、数学库和高性能计算(HPC),提供各种科学计算工具和库,方便用户在服务器上进行科学计算和数据分析。 |
Security Tools | audit, aide, openscap, gnupg, openssl | 系统安全审计、文件完整性检查、加密和合规性验证,保障服务器的安全和稳定运行。 |
2. 选择建议
- 通用服务器:Standard + Network Servers(按需),提供系统基本功能和网络服务,满足大多数服务器的需求。
- 开发环境:Development Tools + Container Management,提供软件开发和容器化应用的开发环境,方便用户在服务器上进行软件开发和部署。
- 安全合规:Security Tools + Headless Management,提供系统安全审计和远程管理功能,保障服务器的安全和稳定运行。
- 科学计算:Scientific Support + Development Tools,提供科学计算工具和库,方便用户在服务器上进行科学计算和数据分析。
(五)网络设置
网络设置建议在安装过程中进行,这样可以避免在安装完成后再进行命令行修改,节省时间和精力。
(六)密码设置
这里是测试环境,密码设置可以简单一些。设置完成后,点击“Begin Installation”开始安装,安装过程大概需要 10 分钟左右,具体时间取决于主机性能。
看到下面的提示,就完成安装了。
三、系统设置
(一)、更新与漏洞修复
-
操作:
yum update -y && yum install epel-release -y
yum install yum-plugin-security -y
yum update –security -y -
目的
- 更新系统软件包,修复已知漏洞;安装 EPEL 仓库扩展软件源;通过 yum-plugin-security 仅安装安全更新,降低兼容性风险。
(二)、防火墙配置
-
操作:
systemctl enable firewalld && systemctl start firewalld
firewall-cmd –permanent –add-service=ssh
# firewall-cmd –permanent –add-port=80/tcp #如果有web服务加开80或443
firewall-cmd –reload
# 检查设置
firewall-cmd –list-all # 查看已开放端口和服务
nmap -p 22,80 127.0.0.1 # 外部扫描验证端口状态[root@localhost ~]# nmap -p 22,80 127.0.0.1
Starting Nmap 7.92 ( https://nmap.org ) at 2025-02-22 15:29 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00011s latency).PORT STATE SERVICE
22/tcp open ssh
80/tcp closed httpNmap done: 1 IP address (1 host up) scanned in 0.10 seconds
[root@localhost ~]# netstat -ntulp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 853/sshd: /usr/sbin
tcp6 0 0 :::22 :::* LISTEN 853/sshd: /usr/sbin
udp 0 0 127.0.0.1:323 0.0.0.0:* 768/chronyd
udp6 0 0 ::1:323 :::* 768/chronyd -
目的
- 启用防火墙并设置开机启动;仅开放必要的服务(如 SSH)和端口(如 80),减少攻击面。
SSH安全加固
-
操作:
[root@localhost ~]# semanage port -l | grep ssh
ssh_port_t tcp 22
[root@localhost ~]# semanage port -a -t ssh_port_t -p tcp 2222
#这里不要去删除 22 端口,默认策略中定义无法删除。
[root@localhost ~]# semanage port -l | grep ssh
ssh_port_t tcp 2222, 22sed -i 's/#Port 22/Port 2222/' /etc/ssh/sshd_config
sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
sed -i 's/#MaxAuthTries 6/MaxAuthTries 3/' /etc/ssh/sshd_config
echo "AllowUsers your_username" >> /etc/ssh/sshd_config
systemctl restart sshd -
目的:
- 修改默认SSH端口(22→2222),避开自动化攻击。
- 禁止root直接登录,强制使用普通用户+sudo。
- 限制每个连接的最大认证尝试次数。
-
测试方法:
ssh -p 2222 your_username@localhost # 验证新端口和用户登录
ssh root@localhost # 应显示"Permission denied"
(三)、性能调优:为系统注入强劲动力
内核参数就像是系统的 “神经中枢”,精准的优化能够极大地提升系统的性能。
- net.core.somaxconn=65535:这个参数的设置就像是拓宽了 TCP 连接的 “高速公路”,大大提高了 TCP 连接队列的长度。在高并发的网络环境中,更多的连接请求可以被排队处理,避免了连接被拒绝的情况,从而让系统能够更加从容地应对大量的网络请求。
- vm.swappiness=10:内存管理犹如一场资源分配的 “博弈”,将 vm.swappiness 设置为 10,就像是为物理内存颁发了 “优先通行证”,减少了交换分区的使用频率。这样一来,系统会优先使用物理内存,减少了数据在内存与磁盘之间频繁交换所带来的性能损耗,让系统的运行更加流畅。
- fs.file-max=2097152:在系统中,文件句柄就像是打开文件的 “钥匙”,fs.file-max 参数的增加就像是打造了更多的 “钥匙”,使得系统能够同时处理更多的文件操作,满足复杂应用场景下对文件处理的高要求。
操作步骤: 此步骤将对系统关键的内核参数配置文件进行修改,操作过程中需谨慎确认参数值,避免因错误配置导致系统故障。
cat >> /etc/sysctl.conf << EOF
# 网络优化
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_syncookies = 1
# 内存管理
vm.swappiness = 10
vm.dirty_ratio = 20
vm.dirty_background_ratio = 10
# 文件系统
fs.file-max = 2097152
fs.inotify.max_user_watches = 524288
EOF
cat /etc/sysctl.conf
sysctl -p
-
测试方法:
sysctl net.core.somaxconn # 验证参数是否生效
cat /proc/sys/vm/swappiness
(四)、使用 Tuned 优化配置 —— 智能优化的利器
Tuned 就像是一位经验丰富的 “系统管家”,它能够根据不同的系统需求和使用场景,自动调整内核参数,为系统性能优化提供智能化的解决方案。
目的:启用吞吐量优化模板,让 Tuned 根据系统的实际情况,自动对内核参数进行精准调整,就像是为系统量身定制了一套性能优化方案。
-
操作步骤: 此步骤将安装并配置 Tuned 服务,操作过程中需确保网络连接正常,避免因网络问题导致安装失败。
yum install tuned -y
tuned-adm profile throughput-performance
systemctl enable tuned && systemctl start tuned -
测试方法:
tuned-adm active # 显示当前激活的配置模板
(五)、资源限制优化:突破系统资源的瓶颈
调整用户资源限制 —— 释放资源的枷锁
在系统中,用户资源限制就像是一道道 “枷锁”,限制了进程和用户的活动范围。通过合理调整这些限制,我们可以为系统释放更多的资源,让系统能够更加自由地发挥其性能潜力。
-
nofile=65535:这个参数的调整就像是为进程打开了一扇通往文件世界的 “大门”,大大提高了进程可打开文件数的上限。在处理大量文件操作的应用场景中,进程不再会因为文件句柄不足而受到限制,能够更加高效地完成任务。
-
nproc=65535:用户最大进程数的提高就像是为用户赋予了更多的 “分身”,使得用户能够同时运行更多的进程,满足复杂应用场景下对多任务处理的需求。
-
操作:编辑 /etc/security/limits.conf:
cat >> /etc/security/limits.conf << EOF
* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535
EOF
# 好像要重启才用生效 -
测试方法:
ulimit -n # 查看当前用户文件句柄数
ulimit -u # 查看当前用户进程数
(六)、网络优化:构建高速稳定的网络通道
-
启用 TCP BBR 拥塞控制 —— 网络拥堵的 “疏通剂”
在高延迟、高带宽的网络环境中,网络拥堵就像是交通堵塞,严重影响了数据的传输效率。TCP BBR 拥塞控制算法就像是一位经验丰富的 “交通警察”,它能够智能地调整网络传输的节奏,提升网络的吞吐量
echo "net.core.default_qdisc = fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control = bbr" >> /etc/sysctl.conf
sysctl -p -
测试方法:
sysctl net.ipv4.tcp_congestion_control # 输出应为"bbr"
网卡多队列优化 —— 多核心的 “协同舞者”
-
网卡多队列就像是多个 “舞者”,它们能够根据 CPU 核心数进行灵活调整,实现网络数据的高效处理
ethtool -L eth0 combined 8 # 根据CPU核心数调整
(七)、日志与监控:守护系统的 “眼睛” 和 “耳朵”
日志就像是系统运行的 “足迹”,记录着系统的一举一动。合理的日志轮转优化就像是一位 “魔法师”,能够让日志管理变得更加高效、有序。
rotate 4 修改为 rotate 7
#compress 把这个前的#号去了,也可不直接各下面两项一起加到文件最后
compress
daily
delaycompress
重启一下日志服务并看一下服务状态。
systemctl restart logrotate
systemctl status logrotate
监控组件就像是系统的 “守护者”,它们能够实时监测系统的各项指标,让我们对系统的健康状况了如指掌。
# 安装 epel 源
wget https://mirrors.aliyun.com/epel/epel-next-release-latest-9.noarch.rpm
wget https://mirrors.aliyun.com/epel/epel-release-latest-9.noarch.rpm
yum -y install epel-next-release-latest-9.noarch.rpm
yum -y install epel-release-latest-9.noarch.rpm
yum clean all && yum makecache
# 安装常用工具
yum install htop iotop iftop nmon sysstat -y
sed -i 's/^HISTORY=.*/HISTORY=7/' /etc/sysconfig/sysstat
systemctl enable sysstat && systemctl start sysstat
通用测试方法
负载测试:
stress-ng –cpu 4 –io 2 –vm 1 –vm-bytes 1G –timeout 60s
观察htop或vmstat 1中的CPU、内存、I/O变化。
通过本文的详细介绍,相信你已经对 CentOS Stream 9 的安装和系统设置有了全面的了解。CentOS Stream 9 作为一款优秀的操作系统,为企业和开发者提供了一个稳定、高效的平台。在安装过程中,我们需要根据实际需求进行合理的分区和软件选择,确保系统的性能和稳定性。在系统设置阶段,我们要及时更新系统软件包,修复已知漏洞,同时配置好防火墙和 SSH 安全加固,保障系统的安全运行。通过对内核参数、资源限制、网络、日志与监控等方面的精心优化,我们为系统注入了强大的动力,突破了资源的瓶颈,构建了高速稳定的网络通道,守护了系统的健康。希望本文能够帮助你顺利完成 CentOS Stream 9 的安装和配置,开启你的服务器之旅!
评论前必须登录!
注册