Networking

使用 /etc/hosts 創建域名的別名

  • November 23, 2021

我有一個域設置來使用動態 DNS 指向我的 LAN 的外部 IP,因為我的外部 IP 地址經常更改。但是,我想為此主機創建一個別名,以便可以使用home. 所以我將以下內容附加到我的/etc/hosts

domain.com home

但是,它似乎不喜歡該域名。如果我將其更改為 IP:

0.0.0.0 home

……然後它就起作用了,但這當然違背了動態 DNS 的目的!

這可能嗎?

文件 /etc/hosts 僅包含 IP 地址和主機名。您不能通過此方法以您想要的方式為字元串“home”起別名。

如果您正在執行自己的 DNS 伺服器,則可以添加 CNAME 記錄以使“home.example.com”成為“domain.com”的別名,但否則您就不走運了。

您可以做的最好的事情是使用相同的 DNS 客戶端來更新完全限定名稱。

如前所述,/etc/hosts並非旨在為名稱到 IP 的查找提供別名 (CNAME) 功能。在設置適當的 DNS 伺服器和配置 CNAME 時,肯定會有一種始終準確的方法來解析home的 IP domain.com,它比簡單的別名更複雜一些。

更改本身可以很容易地自動化到腳本中的一行:

sudo sed -i "s/.* home/$(dig +short domain.com|tail -1) home/" /etc/hosts

如果您已經有檢測 IP 更改的方法,則可以輕鬆地將其附加到該過程中。x否則,可以使用簡單的 cron 作業設置僅安排每個週期覆蓋的蠻力方法。

參考:

引用自:https://unix.stackexchange.com/questions/58925