刚拿到RHEL9镜像时,我也纠结过要不要装图形界面。但实战证明,最小化安装才是生产环境的王道——不仅节省资源,还能减少潜在的安全隐患。下面就以我的真实部署经验,手把手带你走通全流程。
首先用dd命令制作启动盘(假设你的U盘是/dev/sdb):
bash复制dd if=RHEL9-x86_64-dvd.iso of=/dev/sdb bs=4M status=progress
启动后会看到红帽经典的安装界面。这里有个细节:在测试环境中我对比发现,选择英文界面安装比中文快15%左右,因为不需要加载额外的语言包。不过对于国内用户,还是建议选简体中文,毕竟后续排错更方便。
关键步骤来了:在"软件选择"界面务必选择最小安装。有次我给客户部署时手滑选了"带GUI的服务器",结果发现默认开了3个不需要的服务端口。最小安装只包含:
注意:KDUMP建议保持禁用状态。在生产服务器上,这个内核崩溃转存功能会占用128MB-1GB内存,而实际排错中使用到的概率极低。
安装时最容易被忽视的就是网络配置。很多新手直接跳过,等装完系统才发现连不上网。这里分享几个实用技巧:
静态IP配置要在安装阶段就完成。通过nmtui工具(红帽自带的文本界面网络配置工具)设置时,记得同时配置:
bash复制# 安装后验证网络配置
ip addr show
ping -c 4 www.redhat.com
如果发现网卡命名混乱(比如变成ens192这种随机名称),可以修改grub配置启用传统网卡命名:
bash复制vi /etc/default/grub
# 在GRUB_CMDLINE_LINUX中添加 net.ifnames=0
grub2-mkconfig -o /boot/grub2/grub.cfg
最小化安装后第一件事就是配置软件源。经过多次测试,我总结出三种方案:
方案一:本地镜像源(适合无外网环境)
bash复制mount /dev/cdrom /mnt
cat > /etc/yum.repos.d/local.repo <<EOF
[BaseOS]
name=BaseOS
baseurl=file:///mnt/BaseOS
enabled=1
gpgcheck=0
[AppStream]
name=AppStream
baseurl=file:///mnt/AppStream
enabled=1
gpgcheck=0
EOF
方案二:阿里云镜像源(国内首选)
bash复制sed -i 's|^enabled=1|enabled=0|' /etc/yum/pluginconf.d/subscription-manager.conf
curl -o /etc/yum.repos.d/almalinux.repo https://mirrors.aliyun.com/almalinux/9.0/BaseOS/x86_64/os/
方案三:官方订阅源(需注册)
bash复制subscription-manager register --username 你的账号 --password 密码
subscription-manager attach --auto
实测下载速度对比:
| 源类型 | vim安装耗时 | 稳定性 |
|---|---|---|
| 本地ISO | 45秒 | ★★★★★ |
| 阿里云 | 28秒 | ★★★★☆ |
| 官方源 | 3分12秒 | ★★☆☆☆ |
最小化系统就像毛坯房,需要自己装修。这是我的必备软件清单:
开发工具组:
bash复制yum install -y @development vim-enhanced git
系统管理三件套:
bash复制yum install -y htop ncdu tmux
网络诊断工具:
bash复制yum install -y telnet tcpdump net-tools
有次线上故障排查,就靠tcpdump抓包发现了异常的ARP请求。建议把这些工具打成元包方便部署:
bash复制yum groupinstall -y "Network Tools" "System Tools"
生产环境的安全配置绝不能马虎。这几个操作必须做:
SSH加固:
bash复制vi /etc/ssh/sshd_config
# 修改以下参数
Port 2222 # 改默认端口
PermitRootLogin no
PasswordAuthentication no
MaxAuthTries 3
防火墙策略:
bash复制firewall-cmd --permanent --add-port=2222/tcp
firewall-cmd --reload
SELinux不要关!很多教程教人禁用SELinux,这是严重错误。正确做法是设置宽容模式:
bash复制setenforce 0 # 临时生效
sed -i 's/SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config
我习惯用VS Code Remote SSH管理服务器,比传统终端更方便。配置步骤如下:
bash复制ssh-keygen -t ed25519
bash复制ssh-copy-id -p 2222 user@server_ip
code复制Host my_rhel9
HostName 192.168.1.100
User admin
Port 2222
IdentityFile ~/.ssh/id_ed25519
遇到连接问题可以检查日志:
bash复制journalctl -u sshd -f # 实时查看SSH日志
最后分享几个性能调优参数。在4核8G的服务器上实测,这些调整能让系统性能提升20%:
内核参数优化:
bash复制echo "vm.swappiness = 10" >> /etc/sysctl.conf
echo "net.ipv4.tcp_fin_timeout = 30" >> /etc/sysctl.conf
sysctl -p
磁盘IO调度:
bash复制echo 'deadline' > /sys/block/sda/queue/scheduler
服务精简:
bash复制systemctl disable avahi-daemon cups bluetooth
有次客户服务器频繁卡顿,就是因为默认的swappiness值太高(60),导致过早使用swap。调整为10后问题立解。