精品軟體與實用教程
Ubuntu Netplan 50-cloud-init.yaml 多IP 配置重新啟動後失效修復指南
您的Netplan 設定(/etc/netplan/50-cloud-init.yaml)在重新啟動後回滾到原始IP,通常是因為cloud-init 服務在啟動時重置網路配置,或YAML 語法/權限問題導致配置不持久。 這在Ubuntu 20.04+ 常見,尤其雲端伺服器(如Vultr、AWS)。別擔心,修復簡單:檢查語法、停用cloud-init 重置,並驗證應用程式。
什麼是50-cloud-init.yaml
該檔案是使用的Ubuntu Linux 系統目錄50-cloud-init.yaml中的關鍵元件。 /etc/netplan/cloud-init 此檔案定義了系統網路介面的網路配置和設置,尤其是在雲端或虛擬化環境中。
主要特點50-cloud-init.yaml:
生成者cloud-init: 此檔案由自動產生cloud-init,該工具旨在執行Linux 系統的早期初始化和定制,特別是在AWS、Azure 等雲端環境或VMware 等虛擬化平台中。
Netplan配置: 它使用Netplan 設定係統,這是Ubuntu 定義網路設定的預設系統。
不適用於手動編輯: 此文件通常包含註釋,表示直接對其進行的變更在重新啟動或cloud-init重新執行時不會保留。 這是因為cloud-init可以根據資料來源提供的資訊重新產生該檔案。
動態設定: 它通常使用DHCP(例如dhcp4: true)來設定網路介面以自動取得IP 位址,使其適合動態雲端環境。
覆蓋: 雖然不建議直接編輯,但您可以透過在目錄中建立具有更高數位前綴(例如99-my-custom-config.yaml)的新Netplan 設定檔來覆寫其設定/etc/netplan/。 這允許您定義靜態IP 位址或其他優先的特定網路設定。
本質上,它作為基於雲端或虛擬化的Ubuntu 實例50-cloud-init.yaml提供的初始網路配置,雖然了解系統的預設網路設定很重要,但自訂網路配置應該在單獨的Netplan 檔案中實現以確保持久性。 cloud-init
ubuntu22.4多IP設定方法
首先在50-cloud-init.yaml中配置好多IP
sudo vi /etc/netplan/50-cloud-init.yaml
配置好後儲存退出 :wq
產生並測試配置,檢查語法是否正確。
sudo netplan generate
沒問題後,套用設定檔。
sudo netplan apply
塗抹後如果出現OVS 警告,請無視。
以下這一步很關鍵:
停用cloud-init 網路重置,關鍵步驟,防止重啟回滾!
新建一個文件
sudo vi /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
在裡面添加
network: {config: disabled}
清理cloud-init 快取和實例ID
sudo cloud-init clean --logs sudo rm -rf /var/lib/cloud/instance # 刪除實例資料sudo dpkg-reconfigure cloud-init # 重新配置,選擇"None" 停用網頁模組
應用配置並測試重啟
sudo netplan generate # 檢查語法sudo netplan apply # 應用ip addr show # 立即驗證多IP sudo reboot
如果以上方法無效的話,完全停用cloud-init(極端情況)
sudo touch /etc/cloud/cloud-init.disabled sudo systemctl disable cloud-init sudo systemctl mask cloud-init
升級修復:更新cloud-init:sudo apt update && sudo apt upgrade cloud-init(某些版本已修復)。
這個方案是基於社區修復,通常100% 有效。 如果重啟後還是問題,在下方留言cat /etc/netplan/*.yaml 和journalctl -u cloud-init 輸出,我幫診斷!