Linux

將介面更改為靜態 ip 後沒有到主機的路由

  • December 11, 2012

我在我的家庭區域網路中安裝了一個 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 伺服器。

引用自:https://serverfault.com/questions/457154