Domain-Name-System
配置 Zeroconf 以廣播多個名稱
我只想使用 Zeroconf 或類似的東西從 Ubuntu Server 10 的單個實例在本地網路上廣播多個主機名。它必須是 zeroconf 或類似的,因為它將在虛擬機配置中使用並且將被複製,因此我不能依賴外部 DNS 伺服器。我收集了很多資源,但一直無法弄清楚。有沒有辦法做到這一點?
以下是我收集的一些資源:http: //bit.ly/l5W4ab
編輯:也可以將 VirtualBox 設置為 DNS 伺服器。
您可以將Avahi配置為使用 發布任意主機名
/etc/avahi/hosts
,但您需要指定將主機名映射到的確切 IP 地址。似乎沒有辦法將多個主機名發佈到 Avahi 檢測到的 IP 地址。您可以編寫一個啟動腳本,該腳本/etc/avahi/hosts
在發現 VM 的 IP 地址後填充。
這是一個小的 systemd 服務,它可以讓您為目前機器指定一個別名,例如
test.local
(hostname.local
假設您的機器被呼叫hostname
)。設置
首先安裝 avahi-utils,如果你還沒有:
sudo apt-get install avahi-utils
然後將以下內容放入
/etc/systemd/system/avahi-alias@.service
[Unit] Description=Publish %I as alias for %H.local via mdns [Service] Type=simple ExecStart=/bin/bash -c "/usr/bin/avahi-publish -a -R %I $(avahi-resolve -4 -n %H.local | cut -f 2)" [Install] WantedBy=multi-user.target
(
avahi-resolve
用於獲取已為主機名發布的目前 IP 地址)採用
然後,要使目前機器與目前機器一樣可用
test.local
,hostname.local
您可以使用以下命令啟用該服務:sudo systemctl enable --now avahi-alias@test.local.service
您可以通過啟動多個服務來啟用多個別名,例如
avahi-alias@test1.local.service
andavahi-alias@test2.local.service
,它利用了 systemd 的多實例功能:sudo systemctl enable --now avahi-alias@test1.local.service sudo systemctl enable --now avahi-alias@test2.local.service
當然,您也可以通過以下方式單獨禁用每個別名:
sudo systemctl disable --now avahi-alias@test2.local.service
享受!