告别踩坑!手把手教你用VMware在CentOS 8.5上配置静态IP和关闭SELinux(保姆级图文)
2026/6/10 7:27:52 网站建设 项目流程

从零到实战: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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询