系統遺失靜態 IP 位址

系統遺失靜態 IP 位址

我的一個無頭系統透過/etc/network/interfaces有線乙太網路分配了一個靜態 IP 位址。它連接到路由器,該路由器也是 DHCP 伺服器。幾天后,靜態位址將被刪除並替換為 DHCP 位址。為什麼會這樣呢?

  • 如果我重新啟動sudo ifdown eth0 && sudo ifup eth0sudo service networking restart系統會再次採用靜態位址,但幾天後,IP 位址會變更為動態位址。
  • 網路上沒有其他系統具有(意外地)相同的靜態位址。
  • NetworkManager 未在系統上運作。
  • 我已設定係統在地址更改後立即向我發送電子郵件,但發生這種情況的時間似乎完全是隨機的。 DHCP 租用時間為 24 小時,但這似乎沒有相關性,無論如何這對靜態位址來說應該不重要。
  • 我的 /etc/network/interfaces 是這樣的:
    自動定位
    iface lo inet環回
    自動 eth0
    iface eth0 inet 靜態
    地址 192.168.124.104
    網關192.168.124.253
    網路遮罩 255.255.255.0

這有點令人費解。

什麼會導致系統放棄其靜態位址並請求 DHCP 位址?在哪個日誌檔中尋找什麼?

答案1

最近我偶然發現了這個問題,經過一番調查後發現 /etc/dhcp/dhcp.conf 需要增加一個區塊(或取消註解),類似於:

別名 { 介面“eth0”;   
固定地址 10.1.1.1;   
選項子網路遮罩 255.0.0.0; }

希望這可以幫助!

問候, 格倫登·格羅斯

答案2

嗯,奇怪...我不確定這是否重要,但為了簡潔起見,我會將參數netmask直接放在“地址”之後,而不是“網關”之後。您還應該從主機卸載/停用 ( isc-)軟體包,並注意 ipv6 和該軟體包。在此之前:了解正在發生的情況的一種方法是設定防火牆規則,該規則接受並記錄進出 DHCP 連接埠(伺服器 67 UDP 和用戶端 68 UDP)的所有流量,或為裝置狀態、或建立日誌記錄嗅探你的流量。 dhcp-clientresolveconfdhcp-client

不過,解決方法(或替代解決方案)是為某些主機設定 DHCP 保留,或為其 DHCP 位址配置無限租用時間。對我來說,這非常有效,優點是集中管理。如果您的 DHCP 伺服器是您的數據機/路由器,您可能可以在 Web 介面中設定它(租用時間或保留時間),並且在某些路由器上您甚至可以選取「固定位址」複選框。如果您配置了自己的伺服器(Ubuntu?),您需要編輯文件,dhcpd.conf新增以下幾行:

host Accountant {
  hardware ethernet 00:1F:6A:XX:XX:XX;
  fixed-address 192.168.124.104;
}

答案3

我知道這已經很舊了,但我遇到了一個類似的問題,我一直在努力解決。我也向 Canonical 立案尋求協助。

我已經解決了我的問題,並回到這篇文章,希望這對其他可能偶然發現這個問題的人有用。我的問題最終被證明是“wicd-daemon”。我不確定如何或為何安裝該軟體包,但它是刪除我的靜態位址並給我帶來其他網路問題的主要原因。

我的問題的一個症狀是,如果我拔下網路線並重新插入,dhclient 就會啟動。如果我手動設定我的網卡,那就沒問題,但是一段隨機時間後,它會得到一個不同的IP(由於 dhclient 似乎在後台運行)。檢查 dhclient 是否正在運行。至於為什麼 dhclient 甚至運行這是另一個問題。下面我描述了為我解決 dhclient 的問題,我最終追蹤了幾條路徑(avahi、ntpd、ifup,...)。對我來說,它是 wicd-daemon。

這個問題最初是在測試中發現的,因為我正在切換網絡,這需要我物理地移動我的網路電纜。這給我帶來了不該出現的網路問題。發現問題也花了一些時間,因為我沒想到我的靜態 IP 會遺失或更改。

最後,清除 wicd-daemon 和 python-wicd 解決了這個問題。現在,即使拔掉網路線,我的系統也會保留靜態 IP 位址。我也沒有看到 dhclient 啟動,所以我認為這個問題也已經解決了。我也走了其他的路,看看 avahi ,它似乎在我遇到的問題中發揮了作用,我也看了 ntpd (我知道很奇怪,但它同時出現在系統日誌中其他問題確實;NTPD 可能與此無關,但它產生了可疑的日誌)。我遇到了幾個兔子洞,直到在進行其他測試時偶然發現了一個正在運行的 wicd 進程。

長話短說,檢查 dhclient 是否正在運行,以及您的系統上是否運行著像 wicd 這樣的網路管理器。這可能是導致您的靜態位址出現問題的原因。

答案4

只是想補充一點,如果您有多個接口,請確保在文件中定義正確的接口/etc/network/interfaces

對我來說,問題是auto lo在文件開頭定義的。但實際上,我們需要的是auto eth0

正確定義後,我的靜態 IP 將保持重新啟動狀態。

希望這對某人有幫助。

相關內容