【判断确认:这时候大家可能要去检查一下/dev/random 这个设备档案。可以用cat /dev/random 来看它的内容,如果你发现他一直没显示任何内容﹝可能是乱码数字之类的﹞,那就是它出问题了。 通过cat /proc/cpuinfo | grep rdrand 可以查看自己的CPU是否支持DRNG特性,利用硬件来提高熵池产生的速度(此条存疑) 】 【解决:增大/dev/random的熵池(推荐) 问题的原因是由于熵池不够大,所以增大它是最彻底的方法。我们可以通过软件的方法实现,下面是软件的安装和配置流程。 安装熵服务 yum install rng-tools 启动熵服务 systemctl start rngd 如果你的 CPU 不支持 DRNG 特性或者像我一样使用虚拟机,可以使用/dev/unrandom来模拟。 看熵池大小cat /proc/sys/kernel/random/entropy_avail vi /usr/lib/systemd/system/rngd.service (或者 cp /usr/lib/systemd/system/rngd.service /etc/systemd/system; vim /etc/systemd/system/rngd.service) ####以下是编辑内容 ExecStart=/sbin/rngd -f -r /dev/urandom #### systemctl daemon-reload systemctl start rngd systemctl enable rngd systemctl status rngd cat /proc/sys/kernel/random/entropy_avail 】 【参考 为提高安全性在启动的时候通过随机生成一个密钥。 /dev/random 是Linux下的随机函数生成器,读取它相当于生成随机数字。/dev/random会根据 噪音 产生随机数,如果 噪音 不够它就会阻塞。Linux是通过I/O,键盘终端、内存使用量、CPU利用率等方式来收集 噪音 的,如果 噪音 不够生成随机数的时候就会被 阻塞 。 应用服务可以用/dev/urandom替换/dev/random,其实还有第三种方式——增大/dev/random的熵池。问题的原因是由于熵池不够大,所以增大它是最彻底的方法。 通过 cat /proc/sys/kernel/random/entropy_avail 我们可以查看现在的熵池大小;我们需要找到一种方式来提高这个值就行了。如果你的CPU带有DRNG特性,可以充分利用硬件来提高熵池产生的速度 。通过cat /proc/cpuinfo | grep rdrand 可以查看自己的CPU是否支持,一般来说Intel的Ivy_Bridge架构的CPU都支持(i3、i5需要注意是否采用该种架构,i7和xeon基本上都支持);AMD的CPU在2015年以后生成的都支持。(如果你是虚拟机需要开启额外的参数)。如果你的硬件不支持,也没有关系,我们可以让/dev/unrandom来做“熵源”。】