1. 为什么选择CentOS 7最小化安装
很多刚接触Linux服务器的朋友可能会疑惑:为什么我们要选择最小化安装?直接装个带图形界面的完整版不是更方便吗?这里我结合自己多年运维经验说说真实感受。
最小化安装的CentOS 7就像一张白纸,只包含最基础的系统组件和核心功能。我经手过的生产环境服务器,90%以上都采用这种安装方式。主要优势有三点:首先是安全性高,没有多余的服务就意味着减少了被攻击的风险面;其次是资源占用少,1GB内存就能流畅运行,特别适合云服务器环境;最后是干净整洁,不会有一堆用不到的软件占用磁盘空间。
记得我第一次在阿里云上部署应用时,用了带GUI的完整安装,结果系统刚启动就吃了1.5GB内存,应用还没部署资源就快见底了。后来改用最小化安装,同样的配置能轻松跑三四个docker容器。这个教训让我深刻理解了"Less is more"在服务器领域的真谛。
2. 安装前的准备工作
2.1 硬件资源规划
虽然说是最小化安装,但合理的资源配置还是很重要。根据我的实测经验:
- CPU:1核勉强够用,2核更流畅。如果是开发测试环境,建议分配2个vCPU
- 内存:512MB可以启动,但1GB是底线。我建议至少分配2GB,这样后续装些基础服务不会太吃力
- 磁盘:20GB起步,系统本身占用约5GB。如果要做Docker存储,建议50GB以上
这里有个小技巧:在VMware中创建虚拟机时,记得勾选"立即分配所有磁盘空间",这样性能会更好。我在公司内网做过测试,预分配的虚拟机比动态分配的IO性能高出30%左右。
2.2 获取安装镜像
官方镜像下载推荐使用国内镜像站,速度会快很多。阿里云和清华大学的镜像站都很稳定:
# 阿里云镜像 http://mirrors.aliyun.com/centos/7/isos/x86_64/ # 清华镜像 https://mirrors.tuna.tsinghua.edu.cn/centos/7/isos/x86_64/下载时注意选择Minimal ISO版本,文件大小约1GB左右。我习惯用sha256sum校验下载完整性:
sha256sum CentOS-7-x86_64-Minimal-2009.iso3. 详细安装步骤
3.1 启动安装向导
用制作好的启动盘引导后,你会看到安装选项界面。这里有个细节要注意:
- 选择"Test this media & install CentOS 7"(第一项)
- 按Tab键可以编辑启动参数,加入
net.ifnames=0 biosdevname=0可以让网卡名保持eth0格式
安装语言建议选英文,避免后续出现编码问题。时区一定要选"Asia/Shanghai",系统默认的UTC时间会让日志时间对不上。
3.2 磁盘分区方案
最小化安装虽然简单,但分区规划直接影响后期运维效率。我的推荐方案:
/boot:1GB,ext4格式swap:内存≤4GB时,设为内存2倍;内存>4GB时,与内存等大/:剩余所有空间,xfs格式(CentOS 7默认)
实际操作时点击"Installation Destination",选择自定义分区。有个坑要注意:如果磁盘大于2TB,记得选择GPT分区表,我遇到过MBR分区表导致无法识别全部空间的案例。
3.3 软件包选择
关键步骤来了!在"Software Selection"中:
- 选择"Minimal Install"基础环境
- 右侧勾选"Compatibility Libraries"和"Development Tools"
- 取消所有其他选项
这样安装的系统只有约650个包,非常精简。我曾经对比过,完整安装会有1500+个包,其中大部分永远用不上。
4. 首次启动后的必要配置
4.1 网络配置实战
安装完成后第一件事就是配网络。最小化安装默认不启用网络,需要手动配置:
# 查看网卡名称(通常是ens33或eth0) ip addr # 编辑网卡配置 vi /etc/sysconfig/network-scripts/ifcfg-ens33关键配置项修改为:
BOOTPROTO=static ONBOOT=yes IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=114.114.114.114 DNS2=8.8.8.8重启网络服务时有个小技巧:
systemctl restart network # 如果失败,试试 nmcli c reload4.2 更换国内软件源
默认的国外源速度慢,换成阿里云源能大幅提升安装速度:
# 备份原repo文件 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak # 下载阿里云源 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo # 生成缓存 yum clean all yum makecache这里有个经验之谈:执行yum update前,最好先装好基础工具:
yum install -y wget vim net-tools epel-release5. 系统优化与加固
5.1 SSH安全配置
默认的SSH配置存在安全隐患,建议立即修改:
vi /etc/ssh/sshd_config关键修改项:
- 修改端口:
Port 22222(不要用22) - 禁用root登录:
PermitRootLogin no - 启用密钥认证:
PasswordAuthentication no
改完后别急着重启,先开个新窗口测试连接!我有次改完直接重启,结果把自己锁在外面,只能去机房接显示器。
5.2 防火墙配置
CentOS 7的firewalld比iptables友好很多:
# 查看默认区域 firewall-cmd --get-default-zone # 放行SSH端口 firewall-cmd --permanent --add-port=22222/tcp # 重载配置 firewall-cmd --reload建议把常用端口一次性配好,比如后续可能用到的80、443等。我习惯把配置写成脚本,换机器时直接执行。
5.3 内核参数优化
对于高并发场景,需要调整内核参数。创建/etc/sysctl.d/99-custom.conf文件:
net.ipv4.tcp_max_syn_backlog = 8192 net.core.somaxconn = 8192 net.ipv4.tcp_tw_reuse = 1 net.ipv4.ip_local_port_range = 1024 65535执行sysctl -p生效。这些参数对Web服务器性能提升明显,在我负责的电商项目中,调整后QPS提升了15%。
6. 常用工具安装
最小化安装缺少很多实用工具,建议补充:
# 诊断工具 yum install -y htop iotop iftop nload # 开发工具 yum groupinstall -y "Development Tools" # 压缩工具 yum install -y zip unzip p7zip # 新版vim yum install -y vim-enhanced特别推荐tmux,它能让SSH会话保持不中断:
yum install -y tmux tmux new -s work7. 遇到问题怎么办
新手常会遇到的问题和解决方法:
问题1:网卡名不是eth0怎么办? 解决方法:编辑/etc/default/grub,在GRUB_CMDLINE_LINUX中加入net.ifnames=0 biosdevname=0,然后执行grub2-mkconfig -o /boot/grub2/grub.cfg
问题2:yum安装报错"Could not resolve host" 解决方法:检查/etc/resolv.conf中的DNS配置,临时可以加echo "nameserver 8.8.8.8" >> /etc/resolv.conf
问题3:SSH连接超慢 解决方法:修改/etc/ssh/sshd_config中的UseDNS no和GSSAPIAuthentication no