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

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)_艾思科蓝_学术一站式服务平台

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


http://www.kler.cn/news/306955.html

相关文章:

  • Linux基础开发环境(git的使用)
  • 经验笔记:Node.js 中的 process.nextTick
  • 解决Linux服务器 shell 上下左右键出现乱码^[[D ^[[C ^[[A ^[[B
  • 在linux下,找到指定命令对应的路径信息
  • echarts 5.3.2 折线图 tooltip设置trigger为axis无效
  • 面向对象程序设计之继承(C++)
  • OpenCV-上下采样
  • Pytorch是如何做显存管理的
  • qmt量化交易策略小白学习笔记第64期【qmt编程之获取获取期权全推数据--code_list全推tick数据】
  • 鸿蒙媒体开发系列01——资源分类访问
  • 移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——13.mapset
  • 【springboot】整合spring security 和 JWT
  • Vue接入高德地图并实现基本的路线规划功能
  • Redis基础,常用操作命令,主从复制,一主两从,事务数据库操作
  • day01 - Java基础语法
  • [Golang] Sync
  • HarmonyOS开发之全局状态管理
  • 天融信把桌面explorer.exe删了,导致开机之后无windows桌面,只能看到鼠标解决方法
  • C++基础面试题 | 什么是C++中的虚继承?
  • LabVIEW机动车动态制动性能校准系统
  • spring项目中如何通过redis的setnx实现互斥锁解决缓存缓存击穿问题
  • [项目][WebServer][HttpServer]详细讲解
  • 一码空传临时网盘PHP源码,支持提取码功能
  • 数据中台进化为数据飞轮的必要
  • 【笔记】自动驾驶预测与决策规划_Part2_基于模型的预测方法
  • 初学Linux(学习笔记)
  • Vue.js入门系列(二十九):深入理解编程式路由导航、路由组件缓存与路由守卫
  • 【C++】入门基础(下)
  • Java项目基于docker 部署配置
  • 关于新版本 tidb dashboard API 调用说明