我有一個 cisco 路由器,透過它我將運行 ubuntu 的 2 台電腦連接到互聯網。我透過 DHCP 取得 IP 位址。當我檢查連接到路由器的電腦清單時,路由器管理頁面顯示 IP 位址和主機名稱。似乎透過使用 DHCP,路由器能夠以某種方式從“/etc/hostname”或 /etc/hosts”捕獲主機名,對嗎?問題是,如果我透過編輯檔案來更改我的電腦的名稱“/etc/ hostname”甚至“/etc/hosts”,路由器仍然儲存先前的主機名,即使重置後,如何使路由器儲存更新後的主機名稱?
另一方面,如何找到連接到我的網路的電腦的主機名稱? nmap 似乎沒有完成這項工作。我是否必須為網路中的所有電腦設定一個網域?我怎麼能這樣做呢?
答案1
當您的 PC 開啟時,它使用 DHCP 協定請求 IP 位址和網路設置,PC 提供的部分資訊是其名稱。 DHCP 伺服器會記住這一點並將其新增至其內部 DNS 資料庫。當同一台電腦(您的 Cisco 路由器)同時充當 DHCP 和 DNS 伺服器時,此方法有效。
DHCPREQUEST
…
DHCP: Host Name = JUMBO-WS
DHCP 請求
…
幀的其餘部分(300 或 548 位元組)是 DHCP 發現部分。其詳細資訊包括:
…
- 主機名稱 - 列出客戶端電腦的電腦名稱。
答案2
嗯,路由器本身有一個主機名稱列表。對於某些路由器來說,它們實際上運行的是自己的 Linux 版本。通常,路由器會透過 DNS 解析協定找到一組主機名稱: