我是基于ChatGPT-turbo-3.5实现的AI助手,在此网站上负责整理和概括文章
本文详细介绍了CentOS操作系统的配置方法,包括查看和修改主机名、配置网络yum源、调整SELinux策略、设置静态IP地址、配置防火墙规则以及目录挂载等。文章通过具体命令和步骤,指导用户如何查看操作系统信息、修改主机名(支持静态、瞬态和灵活类型)、配置yum源、调整SELinux为宽容模式、设置静态IP、管理防火墙规则、挂载目录等,同时强调了永久生效的配置和重启后的验证。这些操作对于系统管理员和开发人员在CentOS环境下的日常管理具有实用价值。
# 查看操作系统相关信息
uname -a //查看到的是瞬态的(Tansient hostname)
cat /etc/redhat-release //查看操作系统环境
# 主机名修改
# 主机名类型
-
静态主机名(Static)
- 存储在
/etc/hostname - 系统启动时加载
- 需符合域名规范
- 存储在
-
瞬态主机名(Transient)
- 运行时临时分配(如通过DHCP)
- 重启后失效
-
灵活主机名(Pretty)
- 支持特殊字符和空格
- 用于显示用途
# 查看主机名
-
在CentOS 7中,有个叫
hostnamectl的命令行工具,它允许你查看或修改与主机名相关的配置。# 查看所有类型 hostnamectl hostnamectl status # 只查看静态、瞬态或灵活主机名,分别使用--static,--transient或--pretty选项 hostnamectl --static # 静态 hostnamectl --transient # 瞬态 hostnamectl --pretty # 灵活 # 传统查看方式 hostname # 瞬态主机名 cat /etc/hostname # 静态主机名
# 修改主机名
-
只能临时修改的主机名,当重启机器后,主机名称又变回来了。
hostname 主机名 -
永久生效
# 永久性的修改主机名称,重启(注销重新登录后可查看)后能保持修改后的。 # 记得更新/etc/hosts文件 hostnamectl set-hostname 新主机名 # 修改静态主机名 # 删除hostname hostnamectl set-hostname "" hostnamectl set-hostname "" --static hostnamectl set-hostname "" --pretty -
通过配置文件
# 把该文件内容第一行替换成自己想要的主机名重启即可。 vim /etc/hostname # 编辑后重启生效一旦修改了静态主机名,
/etc/hostname将被自动更新。然而,/etc/hosts不会更新以保存所做的修改,所以你每次在修改主机名后一定要手动更新/etc/hosts,之后再重启CentOS 7。否则系统再启动时会很慢。 -
图形界面修改
nmtui # 使用交互界面修改 # 或 nmcli general hostname 新主机名 systemctl restart systemd-hostnamed通过
nmtui进入图形界面来修改主机名。将光标通过键盘的上下键移动到“设定系统主机名”菜单处,按下回车键。
# 配置网络yum源
- 备份原始yum源:
cd /etc/yum.repos.d
mv CentOS-Base.rpeo CentOS-Base.repo.bak
- 配置CentOS的DNS:
vim /etc/resolv.conf
nameserver 114.114.114.114 //国内dns
nameserver 8.8.8.8 //国外dns
- 下载yum文件,替代原始yum源:
(1)网易yum源:
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
yum clean all //清除缓存
yum makecache //生成缓存
(2)阿里云yum源:
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache
- 配置EPEL源:
yum -y install epel-release
# 设置为国内的源
sed -i "s@^#baseurl=http://download.fedoraproject.org/pub@baseurl=http://mirrors.aliyun.com@g" /etc/yum.repos.d/epel*.repo
sed -i "s@^metalink@#metalink@g" /etc/yum.repos.d/epel*.repo
- 更新yum缓存:
yum clean all
yum makecache
- 显示所有已经安装和可以安装的程序包:
yum list
- 安装常用工具:
yum install -y wget curl tree htop net-tools zip unzip
# 配置SELinux
SELinux 主要作用就是最大限度地减小系统中服务进程可访问的资源(最小权限原则)。
- 查看SELinux状态:Disabled表示关闭,Enforcing表示开启,Permissive表示宽容模式。
-
Enforcing:强制模式。代表SELinux在运行中,且已经开始限制domain/type之间的验证关系
-
Permissive:宽容模式。代表SELinux在运行中,不过不会限制domain/type之间的验证关系,即使验证不正确,进程仍可以对文件进行操作。不过如果验证不正确会发出警告
-
Disabled:关闭模式。SELinux并没有实际运行
-
# getenforce 用这个命令检查
getenforce
# 如果SELinux status参数为enabled即为开启状态
/usr/sbin/sestatus -v
- 配置SELinux为宽容模式:
setenforce 0
- 永久配置SELinux为宽容模式:
#sed -i "s/查找字段/替换字段/g" 文件名
# 永久配置SELinux为宽容模式
sed -i "s/^SELINUX=.*/SELINUX=permissive/g" /etc/selinux/config
#永久关闭,必须重启
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
4.重启系统使配置生效:
reboot
# 设置静态IP
- 查看网络接口:
ip a
- 配置静态IP:
vim /etc/sysconfig/network-scripts/ifcfg-ens32
# 配置静态IP
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.60.10
NETMASK=255.255.255.0
GATEWAY=192.168.61.2
DNS1=114.114.114.114
DNS2=8.8.8.8
- 重启网络服务:
systemctl restart network
# 主机名与ip映射
-
域名和ip地址的映射
-
windows
C:\Windows\System32\drivers\etc -
linux:
vi /etc/hosts
-
-
添加
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.61.101 hdp1 -
测试:
ping hdp1
# 加入sudo权限
-
CentOS7给普通用户配置sudo权限,即把普通用户加入wheel用户组
-
在CentOS系统中,默认情况下,wheel用户组成员被授予sudo权限。
[root@localhost ~]# cat /etc/sudoers ## Allows people in group wheel to run all commands %wheel ALL=(ALL) ALL -
授予 sudo 权限
usermod -aG wheel user # -g<群组> 修改用户所属的群组。 # -G<群组> 修改用户所属的附加群组。 # -a 表示在原来所属组的基础上追加 -G 修改当前次要组 -G -a是增加新的次要组 -
检查用户是否添加进 wheel 组
$ lid -g wheel # 显示用户id和组id信息 # id 命令可以显示真实有效的用户 ID(UID) 和组 ID(GID)。 # UID 是对一个用户的单一身份标识。组 ID(GID)则对应多个UID。 $ id username
-
-
修改sudo配置文件,在root下执行,否则请加sudo
# 打开sudo配置文件 visudo # 找到下面这两行,并在下面新增红色部分 root ALL=(ALL) ALL username ALL=(ALL) ALL
# 系统的启动级别
-
查看当前的系统启动级别(0-6) :
runlevel> 0:关机 > 1:单用户 > 2:多用户,不能访问网络 > 3:多用户,能访问网络(全功能,不带图形界面,速度快) > 4:未使用 > 5:带有图形界面系统模式 > 6.重启 -
修改启动级别
# vim /etc/inittab id:3:initdefault: # 重启 reboot
# 防火墙管理
# 服务管理
| 操作 | 命令 |
|---|---|
| 启动防火墙 | systemctl start firewalld |
| 停止防火墙 | systemctl stop firewalld |
| 重启防火墙 | systemctl restart firewalld 或 service firewalld restart |
| 查看状态 | systemctl status firewalld |
| 开机启用 | systemctl enable firewalld |
| 禁用开机启动 | systemctl disable firewalld |
# 防火墙状态检查
firewall-cmd --state # 查看运行状态
firewall-cmd --list-all # 查看所有规则
firewall-cmd --list-services # 查看允许的服务
firewall-cmd --list-ports # 查看开放的端口
# 规则配置
添加规则:
# 开放服务
firewall-cmd --add-service=<服务名> --permanent && firewall-cmd --reload
# 开放端口
firewall-cmd --add-port=<端口号>/<协议> --permanent && firewall-cmd --reload
移除规则:
# 移除服务
firewall-cmd --remove-service=<服务名> --permanent && firewall-cmd --reload
# 移除端口
firewall-cmd --remove-port=<端口号>/<协议> --permanent && firewall-cmd --reload
# 配置生效
firewall-cmd --reload # 重载配置(不中断连接)
firewall-cmd --complete-reload # 完全重载(中断连接)
# 常用参数说明
--permanent:永久生效(重启后保留)--zone=public:指定区域(默认public)--timeout=30:临时规则有效期(秒)
# 别名配置
将以下内容添加到 ~/.bashrc 文件末尾:
# Firewalld 极速别名
alias fwstat='firewall-cmd --state' # 查看状态
alias fwlist='firewall-cmd --list-all' # 列出所有规则
alias fwports='firewall-cmd --list-ports' # 列出开放端口
alias fwsvcs='firewall-cmd --list-services' # 列出允许服务
alias fwopen='func_fwopen() { firewall-cmd --add-port=$1/tcp --permanent && firewall-cmd --reload && echo "开放 $1/tcp 成功"; }; func_fwopen' # 开放端口
alias fwclose='func_fwclose() { firewall-cmd --remove-port=$1/tcp --permanent && firewall-cmd --reload && echo "关闭 $1/tcp 成功"; }; func_fwclose' # 关闭端口
alias fwallow='func_fwallow() { firewall-cmd --add-service=$1 --permanent && firewall-cmd --reload && echo "允许服务 $1 成功"; }; func_fwallow' # 允许服务
alias fwdeny='func_fwdeny() { firewall-cmd --remove-service=$1 --permanent && firewall-cmd --reload && echo "禁止服务 $1 成功"; }; func_fwdeny' # 禁止服务
使用示例
fwstat # 查看防火墙状态
fwlist # 查看所有规则
fwopen 8080 # 开放8080端口
fwclose 8080 # 关闭8080端口
fwallow http # 允许http服务
fwdeny http # 禁止http服务
fwports # 查看开放端口
fwsvcs # 查看允许服务
# 目录挂载
-
将一个文件系统的顶层目录挂到另一个文件系统的子目录上,使它们成为一个整体,称为挂载。把该子目录称为挂载点。
- 挂载源:设备文件
- 挂载点: 存在的目录
-
临时挂载:
mount -t iso9660 -o ro/loop 挂载源 挂载点 -
永久挂载:
vim /etc/fstab -
卸载: umount 挂载点
-
注意:
- 挂载点必须是一个目录。
- 一个分区挂载在一个已存在的目录上,这个目录可以不为空,但挂载后这个目录下以前的内容将不可用。
- mount命令没有建立挂载点的功能,因此你应该确保执行mount命令时,挂载点已经存在。(不懂?说白了点就是你要把文件系统挂载到哪,首先要先建上个目录。)
# 挂载命令
-
格式:
mount [-参数][设备名称][挂载点]# -t <文件系统类型> 指定设备的文件系统类型,常见的有: minix linux最早使用的文件系统 ext2 linux目前常用的文件系统 msdos MS-DOS的fat,就是fat16 vfat windows98常用的fat32 nfs 网络文件系统 iso9660 CD-ROM光盘标准文件系统 -> 挂载镜像文件 ntfs windows NT 2000的文件系统 hpfs OS/2文件系统 auto 自动检测文件系统 # -o<选项> 指定挂载文件系统时的选项。有些也可用在/etc/fstab中。常用的有 codepage=XXX 代码页 codepage指定文件系统的代码页,简体中文中文代码是936; iocharset=XXX 字符集 iocharset指定字符集,简体中文一般用cp936或gb2312。 ro 以只读方式挂载 rw 以读写方式挂载 nouser 使一般用户无法挂载 user 可以让一般用户挂载设备 # 例子 mount -t iso9660 /dev/cdrom /mnt/cdrom mount -o ro /dev/hda1 /mnt
# 自动挂载
- 在/etc目录下有个fstab文件,它里面列出了linux开机时自动挂载的文件系统的列表。
- 第一列:/dev/cdrom:挂载源,要挂在的磁盘分区或者存储设备,或者文件系统
- 第二列:/mnt/cdrom:挂载点,挂载位置
- 第三列:iso9660:文件系统类型,ext4文件系统,swap表示交换分区,……
- 第四列:defaults:挂载参数
- 第五列:0:表示dump选项,dump工具通过这个选项位置上的数字来决定文件系统是否需要备份。如果是0,dump就会被忽略,事实上大多数的dump设置都是0
- 第六列:0:读取文件系统时候的检查顺序,允许的数字是0,1,2,根目录应当获得最高的优先权 1, 其它所有需要被检查的设备设置为2,0表示不检查
# 粘贴^[[200~
# vi ~/.inputrc 文件,添加如下命令:保存,重启shell即可
set enable-bracketed-paste off