Networking
使用 /etc/hosts 創建域名的別名
我有一個域設置來使用動態 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
的 IPdomain.com
,它比簡單的別名更複雜一些。更改本身可以很容易地自動化到腳本中的一行:
sudo sed -i "s/.* home/$(dig +short domain.com|tail -1) home/" /etc/hosts
如果您已經有檢測 IP 更改的方法,則可以輕鬆地將其附加到該過程中。
x
否則,可以使用簡單的 cron 作業設置僅安排每個週期覆蓋的蠻力方法。參考: