虚拟机安装RHEL-7.9后续系统设置记录

本文用于初始安装RHEL 7.9版本的后续系统设置记录,把虚拟机参数调整成可用于服务器的设置

系统时区设置

设置时区为东八区:

1
timedatectl set-timezone Asia/Shanghai

设置为24小时制

暂无

更换yum源

这一步可以不用做

由于RHEL 7的更新包只对注册用户有效,所以需要安装CentOS的yum软件包,下面第4步会提供安装包下载链接。

查看yum的软件包

1
rpm -qa | grep yum

输出如下内容

1
2
3
4
5
yum-langpacks-0.4.2-7.el7.noarch
yum-metadata-parser-1.1.4-10.el7.x86_64
yum-utils-1.1.31-54.el7_8.noarch
yum-3.4.3-168.el7.noarch
yum-rhn-plugin-2.0.1-10.el7.noarch

卸载yum软件包

1
rpm -qa | grep yum | xargs rpm -e --nodeps

检查卸载结果

1
rpm -qa | grep yum

没有输出。

安装CentOS的yum软件包

本地上传CentOS的yum软件包,然后执行下面的命令安装

1
rpm -ivh *

yum安装包下载

输出如下内容

1
2
3
4
5
6
7
8
警告:yum-3.4.3-132.el7.centos.0.1.noarch.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:yum-metadata-parser-1.1.4-10.el7 ################################# [ 20%]
2:yum-plugin-fastestmirror-1.1.31-3################################# [ 40%]
3:yum-3.4.3-132.el7.centos.0.1 ################################# [ 60%]
4:yum-updateonboot-1.1.31-34.el7 ################################# [ 80%]
5:yum-utils-1.1.31-34.el7 ################################# [100%]

检查是否安装完成

1
rpm -qa | grep yum

输出如下内容

1
2
3
4
5
yum-3.4.3-132.el7.centos.0.1.noarch
yum-plugin-fastestmirror-1.1.31-34.el7.noarch
yum-updateonboot-1.1.31-34.el7.noarch
yum-metadata-parser-1.1.4-10.el7.x86_64
yum-utils-1.1.31-34.el7.noarch

更换源

1
vi /etc/yum.repos.d/redhat.repo

添加如下的结果到此文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
[base]
name=CentOS-7 - Base - 163.com
#mirrorlist=http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os
baseurl=http://mirrors.163.com/centos/7/os/x86_64/
enabled=1
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7

#released updates
[updates]
name=CentOS-7 - Updates - 163.com
#mirrorlist=http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=updates
baseurl=http://mirrors.163.com/centos/7/updates/x86_64/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
enabled=1

#additional packages that may be useful
[extras]
name=CentOS-7 - Extras - 163.com
#mirrorlist=http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=extras
baseurl=http://mirrors.163.com/centos/7/extras/x86_64/
gpgcheck=1
enabled=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-7 - Plus - 163.com
baseurl=http://mirrors.163.com/centos/7/centosplus/x86_64/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7

清理缓存

1
yum clean all

愉快的更新软件

1
yum update

关闭防火墙

查看防火墙状态

1
systemctl status firewalld

输出如下内容

1
2
3
4
5
6
7
8
9
10
11
12
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since 三 2024-01-17 13:34:44 CST; 7min ago
Docs: man:firewalld(1)
Main PID: 708 (firewalld)
CGroup: /system.slice/firewalld.service
└─708 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid

1月 17 13:34:43 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
1月 17 13:34:44 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
1月 17 13:34:45 localhost.localdomain firewalld[708]: WARNING: AllowZoneDrifting is enabled. This is considered ...now.
Hint: Some lines were ellipsized, use -l to show in full.

其中 Active: active (running) 表示防火墙在启动中。

永久停掉防火墙

1
systemctl disable firewalld

更改ulimit

查看ulimit

1
ulimit -a

输出如下内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
core file size          (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 3804
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 3804
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited

其中open files只有1024,需要调整,具体如下

1
vi /etc/security/limits.conf

在最下面加入如下配置

1
2
*		soft	nofile	65535
* hard nofile 65535

重新ssh连上来之后再次使用ulimit -a命令查看即可发现配置生效。

优化TCP配置

1
vi /etc/sysctl.conf

加入如下配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# 以下配置参数在 /etc/sysctl.conf 文件里,修改文件后,使用 sysctl -p 命令使配置生效
# 开启重用,允许将TIME_WAIT sockets重新用于新的TCP连接,默认关闭
net.ipv4.tcp_tw_reuse=1
# 开启TCP连接中的TIME_WAIT sockets的快速回收
net.ipv4.tcp_tw_recycle=1
# 修改系统默认的TIME_OUT时间,如果socket由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。
net.ipv4.tcp_fin_timeout=30
# 开启synccookies,当出现syn等待队列溢出时,启用cookies来处理,可防范少量syn攻击
net.ipv4.tcp_syncookies=1

# 开启sack,有选择地应答乱序接收到的报文来提高性能,但会增加CPU占用
net.ipv4.tcp_sack=1

# 开启TCP时间戳,为了实现更好的性能应该启用这个选项
net.ipv4.tcp_timestamps=1

# 在内核放弃建立连接之前发送SYN+ACK包的数量
net.ipv4.tcp_synack_retries=1
# 在内核放弃建立连接之前发送SYN包的数量
net.ipv4.tcp_syn_retries=1

# 用于向外连接的端口范围,默认情况下:32768到61000,改为1024到65535。
net.ipv4.ip_local_port_range=1024 65535

# 为自动调优定义每个 socket 使用的内存,对应发送缓冲区。如下参数分别表示最少32K、默认512K、最大16M
net.ipv4.tcp_wmem=32768 524288 16777216
# 每个 socket 使用的内存默认值,对应上面参数的第二个值,配置后会覆盖上面的配置值
net.core.wmem_default=2097152
# 每个 socket 使用的内存最大值,对应上面参数的第二个值,配置后会覆盖上面的配置值
net.core.wmem_max=16777216

# 为自动调优所使用的接收缓冲区的值,对应接收缓冲区。配置与tcp_wmem类似
net.ipv4.tcp_rmem=32768 524288 16777216
net.core.wmem_default=262144
net.core.wmem_max=16777216

# socket监听的backlog(监听队列)上限
net.core.somaxconn=65535

# 在 TIME_WAIT 数量等于 tcp_max_tw_buckets 时,不会有新的 TIME_WAIT 产生,网关、nginx类应用建议配置
net.ipv4.tcp_max_tw_buckets=5000
# SYN队列长度,默认1024,可以容纳更多等待连接的网络连接数
net.ipv4.tcp_max_syn_backlog=8192
# 网络设备接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目
net.core.netdev_max_backlog=262144


# 下面的参数酌情配置,建议不配置
# 关闭自动调整窗口大小,默认开启,可以不用单独配置,
net.ipv4.tcp_window_scaling=1
# 禁止Tcp空闲后慢启动
net.ipv4.tcp_slow_start_after_idle=0

执行如下命令使生效

1
sysctl -p

正常情况下会输出配置的内容。

固定IP

先看当前系统自动分配的IP

1
ipconfig

输出如下内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
inet 192.168.237.134 netmask 255.255.255.0 broadcast 192.168.237.255
inet6 fe80::64c1:a75c:c6e3:6caf prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:66:6f:03 txqueuelen 1000 (Ethernet)
RX packets 85 bytes 10377 (10.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 85 bytes 9993 (9.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 68 bytes 5792 (5.6 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 68 bytes 5792 (5.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

其中ens33表示网卡名称,当前自动分配的IP为192.168.237.134

编辑网络配置:

1
vi /etc/sysconfig/network-scripts/ifcfg-ens33

修改BOOTPROTOstatic,增加IPADDRGATEWAYNETMASK配置,分别表示IP、网关、子网掩码,其中网关需要看本机安装的VMWare软件的配置,如下所示:

1
2
3
4
5
BOOTPROTO="static"

IPADDR="192.168.237.134"
GATEWAY="192.168.237.2"
NETMASK="255.255.255.0"

重启网络

1
service network restart