资讯动态

CentOS 7.5 最小化安装与生产环境初始化全指南

发布时间:2026/8/12 9:32:56 来源:尧图企业网站定制
1. 为什么今天还要折腾CentOS 7.5如果你点开了这篇文章心里可能正犯嘀咕这都什么年代了CentOS 8都停止维护了CentOS 7也进入了维护尾声为什么还要大费周章地写一篇关于CentOS 7.5的安装详解这问题问得好也恰恰是我想在开头跟你聊明白的。我作为一个在运维和基础架构领域摸爬滚打十多年的老手可以很负责任地告诉你CentOS 7尤其是7.5这个版本在今天依然有着非常庞大且顽固的生存土壤。很多企业的核心生产环境、银行的交易系统、制造业的工控平台甚至是一些科研机构的计算集群都还运行在CentOS 7上。原因无他就两个字稳定。对于这些场景而言系统的“新”远不如“稳”来得重要一次未经充分验证的升级可能意味着数小时甚至数天的业务中断这是谁都承担不起的风险。因此无论是为遗留系统搭建测试环境还是为特定软件比如一些只认证到RHEL/CentOS 7.x的工业软件部署生产基础掌握CentOS 7.5的纯净安装依然是一项非常实用的技能。这篇文章我就以一个老运维的视角带你从头到尾、手把手地走一遍CentOS 7.5的最小化安装流程。我不会只给你干巴巴的命令和截图更重要的是我会分享在每一个选择背后的思考以及那些官方文档里不会写的、只有踩过坑才知道的细节和技巧。我们的目标不仅仅是“装上”而是装出一个干净、高效、便于后续管理的“标准模板”系统。无论你是刚入行的新人还是需要重温基础的老手相信都能从中获得一些实实在在的收获。2. 安装前的关键决策介质、引导与分区规划在把U盘插上服务器或者启动虚拟机之前有几个关键的决策点需要我们先想清楚。这些选择会直接影响后续安装的顺畅度和系统未来的可维护性。2.1 安装介质的选择与验证首先你需要获取CentOS 7.5的安装镜像。虽然官方已经将历史版本归档但你依然可以从可靠的镜像源如阿里云、腾讯云的Open Source镜像站找到CentOS-7-x86_64-Minimal-1804.iso。注意7.5对应的内部版本号就是1804。我强烈建议选择Minimal最小化版本因为它只包含最基础的系统包没有图形界面和多余的软件这能保证我们安装出来的系统最为纯净安全漏洞面也最小。后续所有需要的软件我们都可以通过yum按需安装这是运维的最佳实践。下载完成后务必进行SHA256校验。这是一个极其重要却常被忽略的步骤。一个损坏的镜像文件会导致安装过程中出现各种诡异的错误让你在排查时浪费大量时间。在Linux或Mac下你可以使用sha256sum CentOS-7-x86_64-Minimal-1804.iso命令并与镜像站提供的校验和文件进行比对。在Windows下可以使用CertUtil -hashfile 文件路径 SHA256命令。校验通过后再将其刻录到U盘或配置为虚拟机的光驱。注意刻录U盘推荐使用RufusWindows或dd命令Linux/Mac务必选择“DD镜像模式”而非“ISO镜像模式”否则在部分服务器上可能无法引导。使用dd的命令类似sudo dd if./CentOS-7-x86_64-Minimal-1804.iso of/dev/sdX bs4M statusprogress sync其中/dev/sdX是你的U盘设备操作前请再三确认设备名否则可能清空你的硬盘。2.2 引导菜单中的隐藏选项将安装介质插入服务器并启动后你会看到经典的CentOS安装引导菜单。直接按回车会开始图形化安装。但这里我想分享两个非常实用的隐藏操作安装模式选择在引导菜单界面按Tab键如果是UEFI引导则按e键你会看到内核引导参数。在行末默认是quiet。你可以在这里临时修改安装模式。例如如果你怀疑图形安装程序有问题可以在quiet后面加上inst.text然后按回车这将启动文本安装模式虽然界面简陋但极其稳定适合在远程管理卡iDRAC/iLO的虚拟控制台上操作比图形界面更流畅。驱动注入对于某些新的硬件如RAID卡、网卡安装程序可能缺少驱动。你可以将驱动文件放在FAT32格式的U盘根目录在引导参数后添加inst.dd参数系统会提示你加载额外驱动。更常见的做法是如果服务器厂商提供了完整的“Driver Update Disk (DUD)”镜像可以在引导时按Tab添加inst.ddurl参数指向该镜像的网络地址。2.3 磁盘分区手动规划的艺术安装过程中最重要的环节之一就是磁盘分区。我强烈反对使用安装程序提供的“自动配置”选项那会生成一个对你而言是黑盒的分区方案。对于一个服务器手动分区是必须掌握的技能。对于CentOS 7一个经典且实用的最小化分区方案如下假设我们有一块全新的500GB磁盘/dev/sda挂载点建议大小文件系统说明与理由/boot1GBxfs (或 ext4)存放内核和引导文件。1GB足够独立分区可避免内核更新填满根分区导致系统无法引导。/boot/efi200MBvfat仅UEFI引导需要。存放UEFI引导程序。swap物理内存的1-2倍swap交换分区。如果内存小于8GB建议为内存的2倍内存大于16GB可与内存等大或略小。在云时代如果内存足够大如32G甚至可以不要swap但传统物理服务器建议保留。/剩余所有空间xfs根分区。CentOS 7默认使用XFS它处理大文件性能更好是推荐选择。为什么这么分/boot独立这是血的教训。曾经有一次日志文件写满了根分区导致连yum都无法运行来清理空间更别提安装新内核了。/boot独立后只要它还有空间你至少能更新内核和引导器来尝试修复系统。使用XFS它是CentOS/RHEL 7的默认文件系统相比ext4在单个大文件如数据库文件、虚拟机磁盘的读写和扩展性上更有优势。并且XFS支持在线扩容xfs_growfs但不能缩小这在我们规划时就需要考虑好。不单独分/home或/var对于最小化安装的服务器特别是应用服务器或数据库服务器我倾向于不单独为/home或/var分区。因为这类服务器通常没有本地用户/home几乎无用。而/var虽然存放日志和缓存但单独分区的大小很难预估分小了容易满分大了浪费。统一由根分区管理利用LVM的灵活性下一步会讲是更好的选择。2.4 LVM给未来留一扇窗在分区界面有一个至关重要的选项“LVM”。我强烈建议你勾选它并将/分区创建在LVM之上。LVM逻辑卷管理是什么你可以把它理解成一个磁盘资源的“弹性云”。物理磁盘PV加入卷组VG形成一个存储池然后你从这个池子里划出逻辑卷LV来格式化挂载。它的核心优势在于灵活性在线扩容如果未来/空间不足你可以直接扩展LV的大小而无需关机或迁移数据。这是物理分区无法做到的。快照可以在瞬间创建一个LV的只读快照用于数据备份或测试而几乎不影响性能。在安装界面配置LVM的步骤是在手动分区界面选择/dev/sda点击“创建新分区”类型选“标准分区”创建好/boot和swap。然后再次点击“创建新分区”类型这次选择“LVM逻辑卷”。在接下来的LVM配置中点击“创建新的卷组”给你的VG起个名字比如vg_root。将刚创建的LVM物理卷通常是剩余的大空间添加到这个VG。在这个VG里“创建新的逻辑卷”名字叫lv_root分配所有剩余空间挂载点为/ 文件系统为xfs。这样你就拥有了一个基于LVM的根分区为未来的运维工作埋下了一个高效的伏笔。3. 安装过程中的配置细节与陷阱规避分区完成后点击“开始安装”在安装进度条运行的同时我们需要配置另外几个关键项。3.1 网络与主机名第一步连通世界很多新手在安装完成后发现服务器连不上网问题往往出在这一步。安装程序默认是不开启网络连接的。点击“网络和主机名”。你会看到已识别的网卡如ens192或eth0。将其右侧的开关从“OFF”拨到“ON”。这一步至关重要它会立即通过DHCP获取IP地址。我建议即使有DHCP也最好在这里配置静态IP特别是对于服务器。点击“配置...”在“IPv4设置”中将方法改为“手动”。点击“添加”依次填写地址规划的静态IP如192.168.1.100子网掩码通常填写24对应255.255.255.0或直接点分十进制。网关你的网络网关如192.168.1.1DNS服务器可以填写223.5.5.5和223.6.6.6阿里云DNS或114.114.114.114。务必至少填一个否则系统将无法解析域名。在顶部“主机名”处为你的服务器设置一个有意义的名字比如prod-db-01。你可以勾选“在网络中自动配置主机名”但这依赖于你的DHCP服务器或内部DNS。注意如果这里配置了静态IP请务必记下。否则安装完重启你可能会因为不知道IP而无法通过SSH连接。3.2 安全策略初始的防火墙与SELinux设定接下来是“安全策略”。CentOS 7默认开启了防火墙firewalld和SELinux。对于新手这两者可能是最大的“拦路虎”。我的建议是防火墙在安装阶段可以先保持开启。但为了后续测试方便我们可以预先添加一些规则。不过安装界面提供的配置选项有限。更常见的做法是安装完成后通过命令行精细控制。所以这里可以暂时不动。SELinux这是一个强大的强制访问控制安全模块但策略复杂。在学习或测试环境中为了避免它导致的各种“权限拒绝”问题比如Nginx/Apache无法读取网页文件你可以在这里将它设置为“Permissive”模式。在这种模式下SELinux会记录违规行为但不阻止方便你后期审计和调整策略。对于生产环境强烈建议在经过充分测试后保持“Enforcing”模式这是提升系统安全性的重要一环。3.3 软件包选择最小化的精髓在“软件选择”界面默认选中的就是“最小安装”。这正是我们需要的不要更改不要因为好奇去勾选“带GUI的服务器”或其他任何附加环境。我们的目标是打造一个没有多余包袱的系统。所有必要的工具如vim、wget、net-tools包含ifconfig、bash-completion等都可以在系统安装后通过一条命令轻松安装yum install -y vim wget net-tools bash-completion tree lrzsz保持系统初始安装的纯净是安全、稳定和高效管理的基础。3.4 Root密码与用户创建安全起手式最后设置root密码并创建一个普通用户。Root密码设置一个强密码。安装程序会提示你密码强度如果太弱需要点击两次“完成”才能确认。请务必记住这个密码。创建用户我强烈建议创建一个日常使用的普通管理员用户。直接使用root进行日常操作是极其危险的习惯。点击“创建用户”输入用户名如admin设置密码并务必勾选“将此用户设为管理员”。这会将用户加入wheel组之后可以通过sudo命令来执行特权操作。完成所有设置后等待安装完成点击重启。4. 首次启动后的必备初始化操作系统重启后使用你创建的普通用户如admin登录。现在我们开始进行一系列“开箱即用”的初始化配置这些步骤能将一个刚安装好的原始系统变成一台顺手、好用的服务器。4.1 网络复查与静态IP固化首先确认网络是否按我们的预期工作。ip addr show查看网卡是否获得了正确的IP地址。然后测试网络连通性ping -c 4 223.5.5.5 # 测试是否能到达外网DNS ping -c 4 www.baidu.com # 测试DNS解析是否正常如果DNS解析失败检查/etc/resolv.conf文件确保里面有nameserver配置。虽然在安装时配置了静态IP但那个配置可能只作用于安装环境。我们需要固化它。编辑网卡配置文件网卡名以ens192为例sudo vim /etc/sysconfig/network-scripts/ifcfg-ens192关键参数确保如下根据你的实际网络修改TYPEEthernet BOOTPROTOnone # 静态IP不再是dhcp DEFROUTEyes NAMEens192 DEVICEens192 ONBOOTyes # 确保开机自启 IPADDR192.168.1.100 PREFIX24 GATEWAY192.168.1.1 DNS1223.5.5.5 DNS2223.6.6.6保存后重启网络服务sudo systemctl restart network再次使用ip addr和ping测试。4.2 更新系统与基础工具安装最小化安装后系统可能包含一些旧版本或安全更新。首先更新整个系统sudo yum update -y这个过程会更新所有已安装的包包括内核。如果内核更新了需要重启系统以生效sudo reboot重启后安装我们之前提到的那组“瑞士军刀”式的基础工具sudo yum install -y vim wget net-tools bash-completion tree lrzszvim: 比默认的vi更好用的编辑器。wget/curl: 网络下载工具。net-tools: 包含ifconfig,netstat等传统网络工具虽然ip命令是未来但很多脚本和习惯仍依赖它们。bash-completion: 提供命令自动补全极大提升效率。tree: 以树状图列出目录结构直观。lrzsz: 提供rz/sz命令方便在Xshell等终端与本地机器间上传下载小文件。4.3 配置SSH安全与便捷访问默认的SSH配置是安全的但我们可以让它更好用、更安全。禁用root的SSH密码登录这是最重要的安全加固措施之一。编辑SSH服务端配置sudo vim /etc/ssh/sshd_config找到#PermitRootLogin yes将其修改为PermitRootLogin no这表示禁止root用户直接通过SSH登录。我们之后都使用普通用户登录再用sudo提权。启用公钥认证比密码更安全、更方便。首先在你的本地电脑比如你的Mac或Windows上的WSL生成SSH密钥对如果已有可跳过ssh-keygen -t rsa -b 4096 -C your_emailexample.com一路回车会在~/.ssh/下生成id_rsa私钥和id_rsa.pub公钥。将公钥内容上传到服务器的对应用户下# 在本地执行 ssh-copy-id admin你的服务器IP如果ssh-copy-id不可用可以手动将id_rsa.pub的内容追加到服务器上~/.ssh/authorized_keys文件的末尾。可选修改SSH端口将默认的22端口改为一个非标准端口如2222可以减少自动化攻击脚本的骚扰。在/etc/ssh/sshd_config中修改Port行Port 2222重要提醒修改端口前务必确保新端口在防火墙firewalld或iptables中是开放的并且你有另一种方式如控制台能访问服务器以防配置错误导致无法连接。重启SSH服务sudo systemctl restart sshd测试使用密钥登录如果改了端口需要加-p 2222参数。4.4 时间同步一切日志的基准服务器时间不准会引发无数诡异问题从日志时间错乱到证书验证失败。CentOS 7使用chronyd服务进行时间同步。sudo systemctl start chronyd # 启动服务 sudo systemctl enable chronyd # 设置开机自启 sudo chronyc sources -v # 查看时间同步源状态默认配置会从CentOS的NTP服务器同步通常足够了。如果需要使用国内的NTP服务器可以编辑/etc/chrony.conf将server开头的行替换为server ntp.aliyun.com iburst server ntp1.aliyun.com iburst4.5 配置防火墙打开必要的门现在来配置之前跳过的防火墙。假设我们开启了SSH新端口2222并且后续要运行一个Web服务端口80/443。查看默认区域sudo firewall-cmd --get-default-zone通常是public。永久添加服务/端口sudo firewall-cmd --permanent --add-servicessh # 添加ssh服务默认22端口 sudo firewall-cmd --permanent --add-port2222/tcp # 添加自定义SSH端口 sudo firewall-cmd --permanent --add-servicehttp sudo firewall-cmd --permanent --add-servicehttps如果你不确定服务名对应的端口可以用sudo firewall-cmd --get-services | grep ssh来查找。移除不需要的服务如果存在sudo firewall-cmd --permanent --remove-servicedhcpv6-client # 例如移除IPv6 DHCP客户端重新加载并查看规则sudo firewall-cmd --reload sudo firewall-cmd --list-all # 列出所有当前生效的规则4.6 SELinux基础操作从Permissive到掌控如果你在安装时把SELinux设为了Permissive现在可以通过命令查看是否有违规记录sudo ausearch -m avc -ts recent # 查看最近的SELinux拒绝日志这些日志会告诉你“谁”进程想“做什么”访问在“哪个文件”上被拒绝了。根据日志你可以使用chcon修改文件安全上下文或者使用semanage和setsebool来调整策略。当你确认所有必要服务都能在Permissive模式下正常运行时可以尝试将它切换回Enforcing模式sudo setenforce 1 # 临时切换为Enforcing # 测试所有关键服务Web 数据库等是否依然正常 # 如果一切正常永久修改配置 sudo vim /etc/selinux/config # 确保 SELINUXenforcing切记在生产环境切换前必须在测试环境充分验证。5. 系统优化与深度配置完成基础初始化后我们可以进行一些优化让系统更贴合生产环境的需求。5.1 配置国内Yum源加速软件安装默认的CentOS官方源在国内访问可能较慢。替换为阿里云或腾讯云的镜像源可以极大提升包管理速度。备份原repo文件sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup下载阿里云的CentOS 7 repo文件sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo清理并重建缓存sudo yum clean all sudo yum makecache可以顺便安装epel-release扩展源它包含许多额外的有用软件sudo yum install -y epel-release同样可以替换EPEL源为国内镜像。5.2 内核参数调优应对高并发对于Web服务器、数据库服务器等可能需要调整一些内核网络参数。编辑/etc/sysctl.conf在文件末尾添加或修改如下参数# 增加系统最大文件描述符数量 fs.file-max 655350 # 网络相关优化 net.ipv4.tcp_max_syn_backlog 262144 net.core.somaxconn 32768 net.ipv4.tcp_syncookies 1 net.ipv4.tcp_max_tw_buckets 2000000 net.ipv4.tcp_tw_reuse 1 net.ipv4.tcp_timestamps 1 net.ipv4.tcp_fin_timeout 30 # 内存过量使用策略对于MySQL等应用可能需要调整 vm.overcommit_memory 0使配置生效sudo sysctl -p这些参数需要根据实际应用负载进行调整上述是一个通用优化方向。5.3 配置Swapiness平衡内存与交换swappiness值0-100决定了系统有多“积极”地使用交换分区。值越高越倾向于使用swap。对于数据库服务器如MySQL、Redis我们希望它尽量使用物理内存可以将该值调低。# 查看当前值 cat /proc/sys/vm/swappiness # 临时修改 sudo sysctl vm.swappiness10 # 永久修改 echo vm.swappiness10 | sudo tee -a /etc/sysctl.conf sudo sysctl -p5.4 配置历史命令与审计增强历史命令记录编辑~/.bashrc对当前用户或/etc/profile对所有用户添加export HISTTIMEFORMAT%F %T # 为历史命令加上时间戳 export HISTSIZE10000 # 内存中保存的历史命令数量 export HISTFILESIZE10000 # 历史文件里保存的数量 export HISTCONTROLignoreboth # 忽略重复命令和空格开头的命令执行source ~/.bashrc使其生效。安装并配置auditd这是Linux的审计子系统可以记录详细的系统事件用于安全审计和故障排查。sudo yum install -y audit sudo systemctl start auditd sudo systemctl enable auditd你可以配置规则来监控重要文件的访问、用户登录等。6. 构建可复用的系统模板镜像与克隆当你按照上述步骤配置好一台“完美”的CentOS 7.5服务器后它就是一个标准的“黄金镜像”。为了后续快速部署我们可以将其制作成模板。6.1 对于物理机或虚拟机VMware/Hyper-V清理系统在制作镜像前需要清理临时文件、历史记录和机器特定的信息。sudo yum clean all sudo rm -rf /tmp/* sudo rm -f /etc/udev/rules.d/70-persistent-net.rules # 清除网络设备MAC规则重要 # 清理Shell历史 history -c history -w # 清理日志可选但建议 sudo find /var/log -type f -name *.log -exec truncate -s 0 {} \; sudo rm -f /var/log/*-???????? /var/log/*.gz sudo rm -f /var/log/dmesg.old清除SSH主机密钥每台服务器的SSH主机密钥应该是唯一的。sudo rm -f /etc/ssh/ssh_host_*系统首次启动时sshd服务会自动生成新的密钥。通用化网络配置可选如果你想镜像能适应不同网络可以将网卡配置文件中的静态IP改为DHCP或者清空UUID等设备标识。sudo vim /etc/sysconfig/network-scripts/ifcfg-ens192将BOOTPROTOnone改回BOOTPROTOdhcp并注释或删除IPADDR、PREFIX、GATEWAY等行。关机并创建镜像执行sudo poweroff关机。然后在你的虚拟化平台如VMware中将这台虚拟机关机后右键选择“转换为模板”或“克隆为模板”。对于物理机可以使用dd、Clonezilla等工具进行全盘克隆。6.2 对于云平台阿里云、腾讯云等云平台通常有自己的“自定义镜像”制作流程。大致的通用步骤是在云服务器内部执行上述6.1中的清理步骤。重点安装云平台的初始化工具Cloud-Init。这个工具负责在实例首次启动时根据你传入的用户数据User Data来配置主机名、网络、密码、密钥等。sudo yum install -y cloud-init cloud-utils-growpart配置Cloud-Init。编辑/etc/cloud/cloud.cfg确保其能正确运行。不同云厂商可能有细微差别请参考其官方文档。在云平台的控制台找到“制作镜像”或“创建自定义镜像”功能选择这台云服务器作为源实例开始制作。制作完成后你就可以用这个镜像一键创建新的、已经过基础优化的服务器实例了。走到这一步你已经不仅仅是在安装一个操作系统而是在构建一个符合运维规范、安全基线、并具备可复制性的基础设施组件。从一张空白光盘到一个随时可投入使用的服务器模板这个过程里每一个选择、每一个命令都凝结着对稳定性、安全性和效率的考量。希望这篇超详细的指南能帮你打下坚实的Linux基础让你在后续的运维或开发工作中更加得心应手。记住最好的学习就是动手去做现在就去创建你的第一台CentOS 7.5服务器吧。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价