假設我有兩台具有主機名稱的電腦pc1
並且pc2
位於我的本機網路中10.0.0.0/24
。我的路由器有 IP 位址10.0.0.138
,其說明顯示它也可以在 處訪問modem.home
,我嘗試過並且是真的。
我想透過 ssh 連接pc1
並pc2
使用它的主機名,而不是它的 IP。然而,host
當使用 ip 位址時,linux 下的 commando 給了我這個結果pc2
:
host 10.0.0.53
Host 53.0.0.10.in-addr.arpa not found: 2(SERVFAIL)
我試圖對這意味著什麼進行一些研究,我認為它說明了這一點
現在回答我的問題:
- 網域到底是什麼
.home
?這是平常的情況還是只是我的路由器設定的? - 如何將我的(Linux)電腦新增至該網域,以便我可以檢索其他裝置(在本機網路中)的主機名稱?
答案1
.home 域到底是什麼?這是平常的情況還是只是我的路由器設定的?
這只是您的路由器設定的內容。
與許多路由器一樣,它在內部運行 DNS 快取/代理,並在所有 DHCP 回應中將自己通告為 DNS 伺服器。路由器的 DNS 代理程式配置為提供*.home
本機設定以外的名稱,而不是將查詢轉送到 ISP 的 DNS。 (如果您打算自己製作,可以在 dnsmasq 中找到此功能。)
路由器的名稱modem.home
靜態定義為始終傳回自己的 IP,但其他*.home
子網域通常從 DHCP 伺服器的租約資料庫中讀取。
如何將我的(Linux)電腦新增至該網域,以便我可以檢索其他裝置(在本機網路中)的主機名稱?
確保您的電腦使用 DHCP,並且其 DHCP 用戶端始終在請求中填寫「主機名稱」選項 (12)。例如,如果計算機使用dhclient,添加send host-name = gethostname();
到其配置中。
答案2
網域到底是什麼
.home
?這是平常的情況還是只是我的路由器設定的?
儘管.homes和.home.arpa是為特定用途而定義的,.home
目前該域似乎還沒有(據我所知)。也就是說,.home.arpa 的 RFC筆記:
家庭網路控制協定 (HNCP) 已更新為使用「home.arpa」。域而不是“.home”。
因此,在這種情況下,似乎有可能.home
是打算與漢密爾頓有能力的設備,例如自動發現、配置等。
如何將我的 (Linux) 電腦新增至該網域,以便我可以擷取其他裝置(在本機網路中)的主機名稱?
您可能需要檢查路由器設置,看看是否有任何選項可以添加其他主機名稱和 IP 以進行本機解析。
否則,正如該問題的另一個答案中所詳述的,最簡單的方法是使用hosts
每台 PC 上的檔案來定義主機名稱/IP 位址對應:
前任。hosts
(電腦 1 → 10.0.0.10
)
10.0.0.20 pc2.home
前任。hosts
(電腦2→ 10.0.0.20
)
10.0.0.10 pc1.home
該檔案通常可以在 Linux/MacOS 和Windows 下hosts
找到。/etc/hosts
C:\windows\system32\drivers\etc\hosts
請注意,如果您在 Linux 上使用檔案時遇到問題hosts
,您可能需要編輯/etc/nsswitch.conf
並確保該files
條目首先列在 下方hosts:
。
其他選項
本地DNS伺服器
在不了解有關路由器的所有詳細資訊的情況下,(理論上)您也可以簡單地設定本機 DNS 伺服器來為.home
網域提供服務。
本質上,您需要:
指定一台 PC 作為您的 DNS 伺服器。它可以是網路上的任何 PC,但需要始終可用(持續開啟)以進行 DNS 解析。
設定 DNS 伺服器軟體:
- 認出前任。
pc1.home
並pc2.home
透過例如單獨的區域文件以及適當的 IP 位址映射(可能是最佳選擇)。
或者
解析整個
.home
網域並新增 ex。pc1.home
以及pc2.home
具有適當 IP 位址映射的區域文件(可能不是最佳選擇)。向上游發送所有其他請求(例如,發送到您的 ISP DNS 伺服器)。
- 認出前任。
將您的路由器指向 DNS 伺服器以進行 DNS 解析(在路由器的前網域名稱伺服器 (DNS) 位址設定下)。您可能還需要將連接埠 53 和 953 轉送到 DNS 伺服器。
.本地域
如果您沒有綁定到.home
網域,.local
通常用於mDNS (ZeroConf) DNS。根據關於組播 DNS (mDNS) 的維基百科文章:
在電腦網路中,多播 DNS (mDNS) 協定將主機名稱解析為不包含本機名稱伺服器的小型網路中的 IP 位址。它是一種零配置服務,使用與單播域名系統 (DNS) 基本相同的程式設計介面、封包格式和操作語義。
mDNS 通常可透過以下方式在各種 Linux 發行版上使用阿瓦希。
答案3
對於兩台計算機,我認為您不需要網域。在本機 HOSTS 檔案中設定另一台電腦的名稱。對每台計算機執行此操作。然後您可以按名稱對電腦進行尋址。
本地主機檔案在這裡: https://www.makeuseof.com/tag/modify-manage-hosts-file-linux/