
【判斷確認:這時候大家可能要去檢查一下/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來做“熵源”。】