萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

RHEL 6 / CentOS 6 sudo 切換緩慢?修正 /etc/hosts 解析加速登入

RHEL 6 / CentOS 6 環境下,執行 sudo 輸入密碼後長時間無回應(10~30 秒),最終才執行指令。根因通常是主機名稱解析失敗導致 sudo 等待 DNS 逾時。本文提供快速診斷與修正方法。

故障徵兆

  • sudo 提示密碼正常
  • 輸入密碼後卡住 10~30 秒
  • 系統日誌無異常,網路連通正常

根因分析

sudo 執行時需解析本機主機名稱(取自 hostname),若 /etc/hosts 缺少對應項目,將嘗試 DNS 查詢導致延遲。

快速修正

  1. 確認主機名稱:
    hostname
    # 假設輸出 test
    
  2. 編輯 /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
    
  3. 立即生效,再次執行 sudo 應秒級回應

sudo 緩慢問題示意

進階排查

  • 檢查 /etc/nsswitch.conf 中 hosts: files dns 順序正確
  • 確認 /etc/resolv.conf DNS 伺服器可達
  • 使用 strace -f sudo ls 2>&1 | grep connect 觀察連線行為
  • RHEL 7+ / systemd 系統另檢查 systemd-hostnamed 服務

最佳實務

  • 安裝完成後立即設定 /etc/hosts 完整主機名對應
  • 使用配置管理工具自動化此設定
  • 監控 sudo 執行延遲作為系統健康指標

一行 /etc/hosts 設定,解決 sudo 疑難雜症,也是 Linux 系統初始化標準作業程序(SOP)的必檢項目。

copyright © 萬盛學電腦網 all rights reserved