要將 Ubuntu 中?ens33
?和?ens36
?網卡的 IP 及網關配置設置為永久生效(重啟后不丟失),需通過?netplan
?配置并禁用?cloud-init
?對網絡的干擾(避免重啟后配置被覆蓋),具體步驟如下:
一、最終的永久生效配置文件
編輯?/etc/netplan/00-installer-config.yaml
(或系統中實際的配置文件),內容如下(以保留?ens36
?網關為例):
雙網卡永久網絡配置
network:ethernets:ens33: # 無網關,僅內網通信addresses: [192.168.70.XX/24]nameservers:addresses: [8.8.8.8, 114.114.114.114]# 不配置routes(無默認網關)ens36: # 有網關,負責對外通信addresses: [192.168.1.XX/24]nameservers:addresses: [8.8.8.8, 114.114.114.114]routes:- to: defaultvia: 192.168.1.1 # 僅保留此網關version: 2renderer: networkd # 固定網絡管理器,避免沖突
二、關鍵步驟:禁用 cloud-init 網絡管理(防止配置被覆蓋)
若系統啟用了?cloud-init
(常見于云服務器或虛擬機),其會自動生成網絡配置并覆蓋手動設置,需執行以下操作禁用:
創建配置文件:
bash
sudo nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
寫入以下內容(告知 cloud-init 不管理網絡):
yaml
network: {config: disabled}
保存退出(
Ctrl+X
?→?Y
?→ 回車)。
三、應用配置并驗證
測試配置語法(防止錯誤導致斷網):
bash
sudo netplan try
出現提示后按回車確認,若報錯則根據提示修正縮進或格式。
永久應用配置:
bash
sudo netplan apply
重啟服務器驗證:
bash
sudo reboot
重啟后檢查是否生效:
bash
# 查看IP是否正確 ip addr show ens33 ip addr show ens36# 查看網關是否為ens36的192.168.1.1 ip route show
總結
通過以上步驟:
netplan
?配置文件定義了兩張網卡的靜態 IP、DNS 和網關(僅?ens36
?保留網關)。- 禁用?
cloud-init
?網絡管理,確保重啟后手動配置不被覆蓋。 - 配置會永久生效,無論重啟多少次,IP 和網關都保持不變。