Sendmail 啟動緩慢是許多 Linux 系統管理員常遇到的經典問題,核心原因通常在於主機名解析環節。即使檢查 /etc/hosts 看似正常,實際上 Sendmail 在啟動時僅讀取該文件的第一行內容,這一特性往往被忽略。
某伺服器主機名設為 ixdba.net,/etc/hosts 原始內容如下:
127.0.0.1 localhost localhost.localdomain 192.168.12.246 ixdba.net
/etc/mail/sendmail.cf 中配置了 O DaemonPortOptions=Port=smtp,Addr=127.0.0.1, Name=MTA,綁定本地回環地址。雖然 IP 指向 127.0.0.1,但啟動時仍卡頓。
嘗試在第二行添加 127.0.0.1 ixdba.net 無效,因為 Sendmail 僅讀第一行。將第一行修改為包含所有別名:
127.0.0.1 localhost localhost.localdomain ixdba.net
重啟 Sendmail 後,啟動「一閃而過」,問題徹底解決。
Sendmail 啟動階段會解析本機主機名對應的 IP,若 /etc/hosts 第一行未包含主機名,會觸發 DNS 查詢或多次重試,導致延遲。確保第一行涵蓋 localhost、localhost.localdomain 及實際主機名,即可避免解析阻塞。
/etc/hosts 第一行的 127.0.0.1 記錄中。systemctl restart sendmail 即可生效。這一簡單調整能顯著提升 Sendmail 啟動速度,尤其適用於內網郵件伺服器或開發測試環境。