RHEL 6 / CentOS 6 環境下,執行 sudo 輸入密碼後長時間無回應(10~30 秒),最終才執行指令。根因通常是主機名稱解析失敗導致 sudo 等待 DNS 逾時。本文提供快速診斷與修正方法。
sudo 提示密碼正常sudo 執行時需解析本機主機名稱(取自 hostname),若 /etc/hosts 缺少對應項目,將嘗試 DNS 查詢導致延遲。
hostname
# 假設輸出 test
/etc/hosts 加入對應:
127.0.0.1 localhost localhost.localdomain test test.localdomain
::1 localhost localhost.localdomain test test.localdomain
或單行指令:
echo "127.0.0.1 $(hostname).localdomain $(hostname)" >> /etc/hosts
sudo 應秒級回應
/etc/nsswitch.conf 中 hosts: files dns 順序正確/etc/resolv.conf DNS 伺服器可達strace -f sudo ls 2>&1 | grep connect 觀察連線行為systemd-hostnamed 服務/etc/hosts 完整主機名對應sudo 執行延遲作為系統健康指標一行 /etc/hosts 設定,解決 sudo 疑難雜症,也是 Linux 系統初始化標準作業程序(SOP)的必檢項目。