主機名稱未更改(Ubuntu 14.04)

主機名稱未更改(Ubuntu 14.04)

當我設定 VPS 時,我將名稱設為“main”,因此我的 /etc/hosts 和 /etc/hostnames 檔案都有一個條目(即“main”)。所以我設定了 root ssh 存取並輸入“主機名稱”,它給了我“main”。當我輸入“hostname -f”時,效果相同。

好吧,我正在嘗試設置 Exim4 從我的 Django 應用程式發送郵件(我只需要發送,不需要接收),並且我將以下內容添加到/etc/hosts.

127.0.1.1 main.mydomain.com main
<myip> main.mydomain.com main

然後我執行了service hostname restarthostname -f返回main。我什至重新啟動(我試圖避免做的事情),但它仍然回來了main。我不知道為什麼這是......實際的文件本身顯示了我的新條目,但我無法獲得實際的hostnamehostname -f命令來改變我的生活。

我猜測,但我不是 100% 確定,這就是為什麼當我使用該命令時我沒有收到電子郵件(電子郵件太多?)。如果不是絕對有必要設定主機名稱來使用 exim,我想避免它,因為它讓我很頭痛。echo test message | mail -s test [email protected][email protected]

任何幫助都會讓我永遠感激你的偉大。

答案1

要設定域名,您可以使用同名程式domainname

sudo domainname example.com

若要查詢實際設定的值,請不帶參數呼叫。

還添加需要運行hostname.sh腳本(取決於作業系統)以使更改生效:

/etc/init.d/hostname.sh

在 Debian 及其衍生版本上,還應/etc/mailname包含外寄電子郵件的預設寄件者網域。

我無法對 Exim 發表聲明,但我認為 exim 中主機和網域的預設值應該指向作業系統的設定。

引用主機名稱的線上說明頁:

完全限定域名

您無法使用此命令變更 FQDN(由 hostname --fqdn 傳回)或 DNS 網域名稱(由 dnsdomainname 傳回)。系統的 FQDN 是解析器 (3) 傳回的主機名稱名稱。

從技術上講:FQDN 是 getaddrinfo(3) 針對 gethostname(2) 傳回的主機名稱傳回的名稱。 DNS 網域名稱是第一個點之後的部分。

因此,這取決於如何更改它的配置(通常在 /etc/host.conf 中)。通常(如果主機檔案在 DNS 或 NIS 之前解析)您可以在 /etc/hosts 中變更它。

答案2

如果郵件是透過 postfix 發送的,那麼您也應該編輯/etc/postfix/main.cf以獲得正確的值myhostname = xyz

相關內容