前言

许多使用过廉价入门主机的朋友可能遇到过,系统花了很长时间才能连到VPS主机,许多新手并不知道为什么主机的启动速度如此缓慢。

名词解释

Entropy(熵,[shāng])在信息论中表示数据的混乱程度或者不确定性,可理解为随机数据。
在 GNU/Linux 中有两个虚拟设备专门用于生成随机数以供系统使用。分别为 /dev/random /dev/urandom,又称 PRNG(Pseudorandom Number Generator,伪随机数发生器),其中 /dev/random 数据来源为硬件设备的活动(键盘输入、磁盘读写、内存错误等)和其他操作系统资源,默认熵池随机数资源大小为 4kB ,由内核参数/proc/sys/kernel/random/poolsize控制。

系统熵值查询

可通过以下命令查看系统熵值

cat /proc/sys/kernel/random/entropy_avail

如果结果比较低 (<1000),建议进行优化

低熵影响

在使用 OpenSSL 或者 libsoduim 提供的加密解密工具时从虚拟设备(/dev/random)中取用随机数以供使用,与此同时由于linux内核从2.4升级到2.6时,处于安全性的考虑,废弃了一些外来噪音来源,噪音来源减少了,以及VPS是在虚拟主机环境过于安静而缺乏各种噪音,因此会出现随机数生成速度过慢所产生的阻塞现象,依赖随机数的业务(SSL,加密等)就出现运行缓慢。

解决方法

建议在主机上安装haveged或rng-tools来人为生产随机数填充系统熵池,这俩软件一般二选一即可。
注意:如果对安全要求较高,推荐使用硬件随机数生成器 rng-tools,但它需要CPU支持rdrand指令

通过以下命令查看CPU是否支持rdrand指令

cat /proc/cpuinfo |grep rdrand

以下命令来安装服务:

# CentOS
yum install rng-tools -y
yum install haveged -y
# Debian Or Ubuntu
apt install rng-tools -y
apt install haveged -y

Centos 可能无法安装rng-tools,则需要添加epel源:

yum -y install epel-release

启动服务并设置开机自启

#haveged
systemctl enable haveged --now
#rng-tools
systemctl enable rngd --now

安装后测试

再次执行查询系统熵池数值,可以看到,系统的熵池会增加到3000+,至此软件阻塞的情况将有明显缓解。

Last modification:June 30, 2023
如果觉得我的文章对你有用,请随意赞赏