Linux
將介面更改為靜態 ip 後沒有到主機的路由
我在我的家庭區域網路中安裝了一個 Linux (Ubuntu) 伺服器,最初它自動配置為使用 DHCP 介面。我正在使用該伺服器的主機名從另一台電腦連接到該伺服器。好的,我的路由器配置為在我的家庭網路中使用 DHCP,並自動為每台電腦分配一個 IP。但是當我使用 SSH 連接到這台主機時,它會警告我應該接受來自伺服器每個新分配的 IP 的指紋,這有點煩人。所以我將它配置為使用靜態 IP 地址編輯
/etc/network/interfaces
文件,如下所示:# The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 192.168.1.101 netmask 255.255.255.0 gateway 192.168.1.1
一切正常,除了我無法使用它的主機名連接到該伺服器。ping 時,我看到它被路由到由 DHCP 動態提供的最後分配的 IP 地址,當然
Destination Host is Unreachable
. 我知道我可以在我的/etc/hosts
文件中對其進行硬編碼,但我想知道——為什麼它適用於 DHCP 而它不適用於靜態。顯然,我不明白一些事情。提前致謝!
您的路由器可能充當本地網路的 DNS 伺服器,分發有關通過 DHCP 接收地址的主機的資訊。或者換一種說法,當一個 DHCP 請求被處理出來時,路由器會動態更新本地 DNS 數據庫。DNSMasq 是路由器上執行此操作的常用 DHCP+DNS 伺服器。
通過設置靜態地址,您基本上是在竊取路由器響應有關您的主機的 DNS 查詢所需的資訊。
如果可能,您應該在路由器中設置 DHCP 保留,而不是設置靜態地址。如果這不是一個選項,那麼您只需要更新所有機器上的主機文件,或執行本地 DNS 伺服器。