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

告别踩坑!手把手教你用VMware在CentOS 8.5上配置静态IP和关闭SELinux(保姆级图文)

从零到实战:CentOS 8.5基础运维配置全指南

刚完成CentOS 8.5系统安装的兴奋感还没消退,你可能就遇到了第一个拦路虎——为什么我的服务器无法远程连接?为什么网络时断时续?这些问题往往让新手措手不及。本文将带你一步步解决这些"安装后遗症",让你的系统真正达到可用状态。

1. 网络配置:静态IP设置详解

CentOS 8.5与早期版本在网络配置上有显著差异,特别是引入了NetworkManager的nmcli工具作为主要网络管理方式。我们先来理解几个关键概念:

  • NetworkManager:新一代网络管理服务,取代了传统的network服务
  • nmcli:NetworkManager的命令行接口
  • 连接(connection):网络配置的逻辑表示,可以绑定到特定接口

要查看当前网络接口信息,可以使用以下命令:

nmcli connection show

典型的输出可能如下:

NAME UUID TYPE DEVICE ens33 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 ethernet ens33

1.1 配置静态IP地址

假设我们要为ens33接口配置静态IP,以下是详细步骤:

  1. 首先查看当前连接属性:

    nmcli connection show ens33
  2. 修改IP配置(假设我们要设置为192.168.1.100/24,网关192.168.1.1):

    nmcli connection modify ens33 ipv4.addresses 192.168.1.100/24 nmcli connection modify ens33 ipv4.gateway 192.168.1.1 nmcli connection modify ens33 ipv4.dns "8.8.8.8 8.8.4.4" nmcli connection modify ens33 ipv4.method manual
  3. 应用配置并重启连接:

    nmcli connection down ens33 && nmcli connection up ens33

注意:在生产环境中,建议先备份原始配置,可以使用nmcli connection export ens33 > ens33_backup.nmconnection命令。

1.2 验证网络配置

配置完成后,使用以下命令验证:

ip addr show ens33 ping -c 4 192.168.1.1

如果一切正常,你应该能看到配置的IP地址,并且能够ping通网关。

2. 防火墙与SELinux管理

2.1 防火墙配置

CentOS 8使用firewalld作为默认防火墙。对于开发环境,我们可能需要临时或永久关闭防火墙:

临时关闭:

systemctl stop firewalld

永久关闭:

systemctl disable firewalld

如果只需要开放特定端口(如SSH的22端口),更安全的方式是:

firewall-cmd --permanent --add-service=ssh firewall-cmd --reload

2.2 SELinux管理

SELinux是Linux的安全子系统,但在开发环境中可能会带来不便。查看当前状态:

getenforce

可能的返回值:

  • Enforcing:强制执行安全策略
  • Permissive:仅记录违规不阻止
  • Disabled:完全禁用

临时设置为Permissive模式:

setenforce 0

永久禁用(需要重启):

  1. 编辑配置文件:
    vi /etc/selinux/config
  2. 修改为:
    SELINUX=disabled

重要提示:在生产环境中,建议保持SELinux为Enforcing模式,并学习正确配置策略,而不是直接禁用它。

3. 远程访问配置

3.1 SSH服务优化

默认安装后,SSH服务可能不允许root登录或密码认证。编辑SSH配置:

vi /etc/ssh/sshd_config

常见修改项:

PermitRootLogin yes PasswordAuthentication yes

然后重启服务:

systemctl restart sshd

3.2 密钥认证设置

更安全的方式是使用密钥认证:

  1. 在客户端生成密钥对:

    ssh-keygen -t rsa
  2. 将公钥复制到服务器:

    ssh-copy-id root@服务器IP
  3. 在服务器上禁用密码认证:

    PasswordAuthentication no

4. 系统优化与常用工具

4.1 基础工具安装

dnf install -y epel-release dnf install -y vim wget curl net-tools lsof telnet

4.2 系统更新

dnf update -y

4.3 时间同步

dnf install -y chrony systemctl enable --now chronyd chronyc sources

4.4 性能监控工具

dnf install -y htop iotop iftop nmon

5. 常见问题排查

5.1 网络连接问题

检查步骤:

  1. 物理连接是否正常
  2. IP配置是否正确
  3. 防火墙是否阻止
  4. 路由是否可达

常用命令:

ip addr ip route ping traceroute netstat -tulnp

5.2 SSH连接失败

可能原因:

  • 服务未启动
  • 防火墙阻止
  • SELinux阻止
  • 配置文件错误

检查命令:

systemctl status sshd journalctl -u sshd -f

5.3 服务启动失败

查看日志:

journalctl -xe

检查依赖:

systemctl list-dependencies 服务名

6. 进阶配置

6.1 网络绑定(Bonding)

创建绑定接口:

nmcli connection add type bond con-name bond0 ifname bond0 mode active-backup

添加从属接口:

nmcli connection add type bond-slave ifname ens33 master bond0 nmcli connection add type bond-slave ifname ens34 master bond0

6.2 网络桥接

创建桥接:

nmcli connection add type bridge con-name br0 ifname br0

添加接口:

nmcli connection add type bridge-slave ifname ens33 master br0

6.3 磁盘管理

查看磁盘:

lsblk fdisk -l

格式化磁盘:

mkfs.xfs /dev/sdb1

挂载磁盘:

mkdir /data mount /dev/sdb1 /data

永久挂载:

echo "/dev/sdb1 /data xfs defaults 0 0" >> /etc/fstab

7. 安全加固建议

虽然我们为了方便关闭了一些安全功能,但在生产环境中应该:

  1. 保持防火墙开启,只开放必要端口
  2. 使用SELinux的targeted策略
  3. 禁用root的SSH登录
  4. 使用密钥认证代替密码
  5. 定期更新系统
  6. 配置日志监控
  7. 设置强密码策略

实现这些安全措施的命令:

# 密码策略 vi /etc/security/pwquality.conf # 设置: minlen = 12 dcredit = -1 ucredit = -1 ocredit = -1 lcredit = -1 # 日志配置 vi /etc/rsyslog.conf systemctl restart rsyslog

8. 备份与恢复

8.1 重要配置文件备份

mkdir /backup cp -a /etc /backup/etc-$(date +%F)

8.2 系统快照

如果使用LVM,可以创建快照:

lvcreate -s -n snap_root -L 1G /dev/centos/root

8.3 定时备份

设置cron任务:

crontab -e # 添加: 0 2 * * * /usr/bin/rsync -a /etc /backup/etc-$(date +\%F)

9. 性能调优

9.1 内核参数调整

编辑sysctl配置:

vi /etc/sysctl.conf

常见优化参数:

net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_tw_reuse = 1 net.ipv4.ip_local_port_range = 1024 65000 net.core.somaxconn = 32768

应用更改:

sysctl -p

9.2 文件系统优化

对于XFS文件系统:

mkfs.xfs -f -i size=512 -l size=128m,lazy-count=1 -d agcount=16 /dev/sdb1

9.3 服务优化

禁用不需要的服务:

systemctl list-unit-files | grep enabled systemctl disable 不需要的服务

10. 容器化支持

10.1 Podman安装

CentOS 8默认包含Podman:

dnf install -y podman

10.2 Docker兼容性设置

如果需要docker-cli:

dnf install -y docker-ce docker-ce-cli systemctl disable docker

使用podman-docker兼容层:

ln -s /usr/bin/podman /usr/bin/docker

10.3 基本容器操作

运行容器:

podman run -d --name nginx -p 8080:80 nginx

查看容器:

podman ps

进入容器:

podman exec -it nginx /bin/bash

11. 开发环境配置

11.1 Python环境

CentOS 8默认安装Python 3.6:

dnf install -y python3 python3-devel

安装pip:

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py python3 get-pip.py

11.2 Java环境

安装OpenJDK:

dnf install -y java-11-openjdk-devel

设置环境变量:

echo "export JAVA_HOME=/usr/lib/jvm/java-11-openjdk" >> /etc/profile source /etc/profile

11.3 Node.js环境

安装Node.js 14:

dnf module install -y nodejs:14

12. 监控与告警

12.1 基础监控

安装sysstat:

dnf install -y sysstat systemctl enable --now sysstat

查看报告:

sar -u 1 5

12.2 日志监控

安装logwatch:

dnf install -y logwatch

配置日报:

/usr/sbin/logwatch --output mail --format html --detail high

12.3 进程监控

使用htop:

htop

关键指标:

  • CPU使用率
  • 内存使用
  • 磁盘I/O
  • 网络流量

13. 自动化运维

13.1 Ansible安装

dnf install -y ansible

13.2 基础Playbook示例

创建playbook.yml:

--- - hosts: all become: yes tasks: - name: Ensure nginx is installed dnf: name: nginx state: present - name: Ensure nginx is running service: name: nginx state: started enabled: yes

运行playbook:

ansible-playbook -i inventory.ini playbook.yml

13.3 定时任务管理

使用Ansible管理cron:

- name: Add daily backup job cron: name: "Daily backup" minute: "0" hour: "2" job: "/usr/bin/rsync -a /etc /backup/etc-$(date +\%F)"

14. 虚拟化支持

14.1 KVM安装

dnf install -y qemu-kvm libvirt virt-install virt-viewer systemctl enable --now libvirtd

14.2 创建虚拟机

virt-install \ --name centos8 \ --ram 2048 \ --vcpus 2 \ --disk size=20 \ --os-variant centos8 \ --network bridge=br0 \ --graphics none \ --console pty,target_type=serial \ --location /path/to/centos8.iso

14.3 虚拟机管理

查看虚拟机列表:

virsh list --all

启动虚拟机:

virsh start centos8

15. 故障恢复

15.1 单用户模式

如果系统无法正常启动:

  1. 在启动时按e编辑启动参数
  2. 在linux行末尾添加rd.break
  3. 按Ctrl+x启动

挂载并修改:

mount -o remount,rw /sysroot chroot /sysroot passwd root touch /.autorelabel exit reboot

15.2 救援模式

使用安装ISO进入救援模式:

  1. 从ISO启动
  2. 选择"Troubleshooting" > "Rescue a CentOS system"
  3. 按照提示操作

15.3 重要文件恢复

从备份恢复/etc:

rsync -a /backup/etc-2023-01-01/ /etc/

16. 系统清理

16.1 清理缓存

dnf clean all

16.2 清理日志

journalctl --vacuum-time=7d

16.3 清理临时文件

rm -rf /tmp/*

17. 文档与帮助

17.1 手册页

查看命令帮助:

man nmcli

17.2 系统文档

CentOS文档:

dnf install -y centos-release-docs

17.3 在线资源

  • CentOS官方Wiki
  • Red Hat文档(大部分适用于CentOS)
  • Stack Overflow
  • 官方邮件列表

18. 社区支持

18.1 论坛与邮件列表

  • CentOS官方论坛
  • Red Hat开发者社区
  • Server Fault

18.2 本地用户组

查找本地Linux用户组:

# 可以尝试在Meetup或其他社区平台搜索

18.3 专业支持

对于生产环境,考虑:

  • 购买Red Hat订阅
  • 雇佣专业Linux管理员
  • 使用托管服务

19. 持续学习建议

19.1 推荐书籍

  • 《Linux命令行与shell脚本编程大全》
  • 《鸟哥的Linux私房菜》
  • 《UNIX环境高级编程》

19.2 在线课程

  • Red Hat官方培训
  • Linux Foundation课程
  • Udemy/Coursera上的Linux课程

19.3 认证路径

  • RHCSA(Red Hat认证系统管理员)
  • LFCS(Linux基金会认证系统管理员)
  • CompTIA Linux+

20. 实际应用案例

20.1 Web服务器配置

安装LAMP栈:

dnf install -y httpd mariadb-server php php-mysqlnd systemctl enable --now httpd mariadb

20.2 数据库服务器

MySQL安全配置:

mysql_secure_installation

20.3 文件服务器

安装Samba:

dnf install -y samba

配置共享:

vi /etc/samba/smb.conf

添加:

[share] path = /srv/share writable = yes browsable = yes guest ok = yes

创建目录并设置权限:

mkdir -p /srv/share chmod 777 /srv/share systemctl enable --now smb
http://www.jsqmd.com/news/812148/

相关文章:

  • 零基础上手OpenClaw v2.7.1 Win10系统兼容性优化部署方案
  • 电信运营商M2M战略转型:从连接人到连接物的物联网新增长引擎
  • Cadence用户必备:Ultra Librarian下载的封装,如何快速适配你的OrCAD 17.4和Allegro版本?
  • 2026年第二季度济南家具家私保护膜专业服务商深度解析:阿莱特科技有限公司优势凸显 - 2026年企业推荐榜
  • 从锡疫到无铅焊料失效:材料环境可靠性设计实战解析
  • 3分钟掌握APK安装器:Windows上运行安卓应用的终极解决方案
  • 为AI智能体构建结构化记忆系统:知识图谱与上下文压缩实战
  • 不只是配置:用海康威视工业相机SDK(V3.3.0)和VS2017写你的第一个图像采集程序
  • 从告示牌到芯片设计:如何避免意图与解读的鸿沟
  • 心理学论文降AI工具免费推荐:2026年心理学研究毕业论文4.8元亲测降AI99.26%达标指南
  • DDR内存信号测试难题:芯片中介层原理与实战部署指南
  • 书匠策AI毕业论文功能全拆解:这个AI工具凭什么让你从“论文废“逆袭成“论文达人“?
  • 安全即代码:将安全融入DevOps流程
  • 如何用ChatLaw构建你的专属法律AI助手:3步快速部署与实战指南
  • 别慌!你家烟雾报警器里的‘小纽扣’辐射有多大?实测数据告诉你真相
  • 2026年软文自助发稿平台TOP8权威测评:传声港领跑行业,全链路AI营销时代来临 - 博客湾
  • 【图像重建】基于ADMM(交替方向乘子法)的深度图重建三维重建 MATLAB 代码
  • 在Node.js服务中集成Taotoken实现多模型API的稳定调用
  • 政治学论文降AI工具免费推荐:2026年政治学研究毕业论文知网查重双达标4.8元亲测完整方案
  • 【YOLO26实战全攻略】21——YOLO26工业质检实战:PCB缺陷检测+划痕分割全流程落地指南
  • ROS Melodic下玩转ORB-SLAM3:Stereo/Mono模式运行EuRocTUM数据集的完整流程
  • 2026年4月温州不锈钢雕塑可靠厂家推荐榜:温州精神堡垒/温州警示标牌/温州警示牌/温州门牌/温州不锈钢雕塑/温州发光字标牌/选择指南 - 优质品牌商家
  • 别再死记硬背了!手把手教你选对PPP定位模型:UC、UD、UofC、SD到底怎么用?
  • 3步轻松搞定:BiliBili-UWP第三方客户端完整使用指南
  • PowerToys中文汉化完整指南:三步解锁Windows效率工具的中文世界
  • 2026年4月河南金刚灰砂浆优质品牌推荐:河南金刚沙腻子、河南防水砂浆、腻子粉、腻子粉、郑州儿童房腻子、郑州内墙漆腻子选择指南 - 优质品牌商家
  • 从百年皮具到高可靠电子设计:工匠思维的跨界启示
  • Cursor Pro激活完整方案:突破免费试用限制的实用指南
  • 工作10年才明白,这些被忽略的编程基础,才是升职加薪的关键
  • 检索增强生成(RAG)实战:Spring AI 集成向量数据库实现知识问答