当前位置: 首页 > news >正文

CentOS入门宝典:从零到一构建你的Linux服务器帝国

目录

引言 

一、CentOS简介与版本选择

1.1 CentOS是什么?

1.2 版本选择

二、安装CentOS

2.1 准备安装介质

2.2 安装过程

三、基础配置与优化

3.1 更新系统

3.2 配置防火墙

3.3 配置SELinux

3.4 系统监控与日志

四、网络配置与管理

4.1 配置静态IP

4.2 网络调试与诊断

五、服务管理

六、文件系统与权限管理

6.1 文件系统结构

6.2 文件权限与所有权

七、软件包管理

7.1 YUM/DNF

八、用户与组管理

九、安全加固


引言 

在这个数字化时代,服务器作为支撑互联网应用与服务的基石,其重要性不言而喻。而CentOS,作为一款稳定、开源的Linux发行版,因其卓越的性能和广泛的应用场景,成为了众多开发者和系统管理员的首选。本文将带你深入CentOS的世界,从安装配置到日常运维,一步步打造你的Linux服务器帝国。

一、CentOS简介与版本选择

1.1 CentOS是什么?

CentOS(Community Enterprise Operating System)是一个基于Red Hat Enterprise Linux(RHEL)源代码的开源操作系统,由社区驱动维护。它继承了RHEL的稳定性和安全性,同时提供免费使用和自由修改的特性,广泛应用于企业级服务器、云计算平台和科学计算等领域。

1.2 版本选择

CentOS目前主要有两大分支:CentOS Stream和CentOS Linux(已停止更新,但旧版本仍被广泛使用)。对于初学者而言,推荐关注CentOS Stream,因为它代表了最新的技术和包更新,是RHEL未来的预览版。然而,为了稳定性和兼容性考虑,本文也会涉及CentOS 7/8(已停止更新,但教程具有参考价值)的内容。

二、安装CentOS

2.1 准备安装介质
  • 下载ISO镜像:访问CentOS官网下载对应版本的ISO镜像文件。
  • 制作启动盘:使用如Rufus(Windows)、Etcher(跨平台)等工具将ISO文件写入U盘或DVD。
2.2 安装过程
  1. 启动安装:将制作好的启动盘插入电脑,重启并选择从该设备启动。
  2. 语言选择:选择你的语言,然后点击“继续”。
  3. 安装信息配置
    • 时间和日期:设置正确的时区。
    • 键盘布局:根据你的键盘类型选择。
    • 安装源:确认或修改安装源(如网络安装或本地介质)。
    • 软件选择:初学者可选择“带GUI的服务器”或“最小安装”,根据需要自定义安装的软件包。
    • 安装位置:选择磁盘并配置分区(建议使用LVM,便于管理)。
  4. 网络和主机名:配置网络连接和设置主机名。
  5. 开始安装:点击“开始安装”,安装过程中可设置root密码和创建新用户。
  6. 重启并登录:安装完成后,重启系统并使用设置的用户名和密码登录。

三、基础配置与优化

3.1 更新系统

安装完成后,首先更新系统和所有已安装的包以获取最新的安全补丁和功能。

sudo yum update -y  # CentOS 7/8  
sudo dnf update -y  # CentOS Stream
3.2 配置防火墙

CentOS默认使用firewalld作为防火墙管理工具。

  • 启动防火墙
    sudo systemctl start firewalld  
    sudo systemctl enable firewalld

  • 开放端口

    sudo firewall-cmd --permanent --zone=public --add-port=80/tcp  
    sudo firewall-cmd --reload

    3.3 配置SELinux

  • SELinux(Security-Enhanced Linux)提供额外的安全层。

  • 查看SELinux状态
    getenforce

  • 临时关闭SELinux(不推荐长期关闭):
    sudo setenforce 0

  • 临时关闭SELinux(不推荐长期关闭):
    SELINUX=disabled

3.4 系统监控与日志
  • 查看系统日志:使用journalctl(CentOS 7.x需安装systemd-journal包),dmesg等命令。
  • 安装监控工具:如htopiftopnmon等,便于实时监控系统资源使用情况。

四、网络配置与管理

4.1 配置静态IP

编辑网络配置文件(以CentOS 7为例,CentOS 8及以后版本可能有所不同):

sudo vi /etc/sysconfig/network-scripts/ifcfg-ens192  # ens192为你的网络接口名

修改或添加以下内容:

BOOTPROTO=static  
ONBOOT=yes  
IPADDR=192.168.1.100  
NETMASK=255.255.255.0  
GATEWAY=192.168.1.1  
DNS1=8.8.8.8  
DNS2=8.8.4.4

重启网络服务:

sudo systemctl restart network
4.2 网络调试与诊断
  • ping命令:测试网络连接。
  • traceroute/tracepath:追踪数据包路由路径。
  • netstat/ss:查看网络连接、路由表、接口统计等信息。

五、服务管理

CentOS使用systemd作为初始化系统和系统服务管理器。

启动服务

sudo systemctl start <服务名>

停止服务

sudo systemctl stop <服务名>

设置服务开机自启

sudo systemctl enable <服务名>

禁止服务开机自启

sudo systemctl disable <服务名>

查看服务状态

sudo systemctl status <服务名>

六、文件系统与权限管理

6.1 文件系统结构
  • /:根目录,所有文件和目录的起点。
  • /bin:存放基本命令的二进制文件。
  • /etc:存放系统配置文件。
  • /home:普通用户的家目录。
  • /var:存放经常变化的文件,如日志文件。
6.2 文件权限与所有权
  • 查看权限:使用ls -l命令。
  • 修改权限:使用chmod命令。
  • 修改所有权:使用chown命令。

七、软件包管理

7.1 YUM/DNF

搜索软件包

sudo yum search <关键字>  # CentOS 7  
sudo dnf search <关键字>  # CentOS Stream/8

安装软件包

sudo yum install <包名>  # CentOS 7  
sudo dnf install <包名>  # CentOS Stream/8

更新软件包

sudo yum update <包名>  # CentOS 7  
sudo dnf update <包名>  # CentOS Stream/8

卸载软件包

sudo yum remove <包名>  # CentOS 7  
sudo dnf remove <包名>  # CentOS Stream/8

八、用户与组管理

创建用户

sudo useradd <用户名>  
sudo passwd <用户名>  # 设置密码

创建组

sudo groupadd <组名>

添加用户到组

sudo usermod -aG <组名> <用户名>

九、安全加固

  • 使用强密码:定期更换用户密码,并确保密码复杂性。
  • 限制root登录:禁用root远程登录,使用sudo管理权限。
  • 安装安全更新:定期更新系统和软件包。
  • 配置SSH:禁用root登录,限制登录IP,使用密钥认证等。

【9月截稿 | 长篇优惠 | EI稳定】2024年计算机与信息安全国际会议(WCCIS 2024)_艾思科蓝_学术一站式服务平台

  更多学术会议请看 学术会议-学术交流征稿-学术会议在线-艾思科蓝

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 64. 求 1+2+…+n
  • MOS工作的三种状态及其分析——亚阈值区(截至区),深三极管区(又叫深线性区)和饱和区
  • 基于SpringBoot+定时任务实现地图上绘制车辆实时运动轨迹图
  • 第五章 继承、多态、抽象类与接口 课后训练(3)
  • eureka.client.service-url.defaultZone的坑
  • Java是怎么处理死锁的
  • Python|OpenCV-实现识别目标图像中的圆圈(20)
  • 本地部署大模型并使用知识库Windows下Ollama+Docker+MaxKB安装的记录
  • VMware虚拟机经常性卡死,打开运行一段时间后卡死,CPU占比增至100%
  • 【STM32】DAC数字模拟转换
  • 【BurpSuite】Cross-site scripting (XSS 学徒部分:1-9)
  • Go 并发模式:扩展与聚合的高效并行
  • GPT对话知识库——将寄存器中的一位数据读到变量中需要什么步骤?C语言中掩码的作用。
  • SpringBoot使用@Async注解,实现异步任务
  • 硬件工程师笔试面试——无线通讯模块
  • 【Amaple教程】5. 插件
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • js
  • Leetcode 27 Remove Element
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 让你的分享飞起来——极光推出社会化分享组件
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 物联网链路协议
  • 优秀架构师必须掌握的架构思维
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解 ...
  • # Apache SeaTunnel 究竟是什么?
  • # 利刃出鞘_Tomcat 核心原理解析(二)
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • (55)MOS管专题--->(10)MOS管的封装
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (安卓)跳转应用市场APP详情页的方式
  • (二十六)Java 数据结构
  • (分布式缓存)Redis持久化
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (一)插入排序
  • (已解决)Bootstrap精美弹出框模态框modal,实现js向modal传递数据
  • (转)C#调用WebService 基础
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • .net 4.0发布后不能正常显示图片问题
  • .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上
  • .NET企业级应用架构设计系列之应用服务器
  • @Autowired @Resource @Qualifier的区别
  • @EnableConfigurationProperties注解使用
  • @html.ActionLink的几种参数格式
  • @RequestMapping 的作用是什么?
  • @Slf4j idea标红Cannot resolve symbol ‘log‘
  • [ vulhub漏洞复现篇 ] AppWeb认证绕过漏洞(CVE-2018-8715)