Ubuntu虛擬機(jī)配置靜態(tài)IP的流程步驟
引言
Netplan 是 Ubuntu 18.04 及以上版本默認(rèn)的網(wǎng)絡(luò)配置工具,相比傳統(tǒng)的 ifupdown 更簡(jiǎn)潔、易維護(hù)。本教程以 VMware 虛擬機(jī)(Ubuntu 系統(tǒng))為例,手把手教你配置靜態(tài) IP,解決「有內(nèi)網(wǎng) IP 但無(wú)法聯(lián)網(wǎng)」「配置沖突」等常見(jiàn)問(wèn)題。
一、前置準(zhǔn)備
1. 環(huán)境說(shuō)明
- 宿主機(jī):Windows/Linux/macOS(以 VMware Workstation 為例)
- 虛擬機(jī)系統(tǒng):Ubuntu 20.04/22.04/24.04(其他版本通用)
- 網(wǎng)卡名稱:
ens33(虛擬機(jī)默認(rèn)網(wǎng)卡名,可通過(guò)ip a確認(rèn)) - 目標(biāo):配置靜態(tài) IP
192.168.111.22/24,網(wǎng)關(guān)192.168.111.2
2. 關(guān)鍵前提
- 確認(rèn)虛擬機(jī)網(wǎng)絡(luò)模式(本教程以「NAT 模式」為例,橋接/僅主機(jī)模式配置邏輯一致,僅網(wǎng)段需匹配);
- 關(guān)閉沖突的網(wǎng)絡(luò)管理工具(如 NetworkManager),避免和 Netplan 爭(zhēng)搶網(wǎng)卡管理權(quán);
- 確保配置文件權(quán)限合規(guī)(僅 root 可讀寫)。
二、步驟 1:查看網(wǎng)卡與當(dāng)前配置
1. 查看網(wǎng)卡狀態(tài)
打開(kāi)虛擬機(jī)終端,執(zhí)行以下命令確認(rèn)網(wǎng)卡名稱和狀態(tài):
ip a
輸出示例(重點(diǎn)關(guān)注 ens33 網(wǎng)卡):
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:94:ef:9d brd ff:ff:ff:ff:ff:ff
altname enp2s1
- 若
ens33狀態(tài)為DOWN,先執(zhí)行sudo ip link set ens33 up啟動(dòng)網(wǎng)卡。
2. 查看現(xiàn)有 Netplan 配置
Netplan 配置文件默認(rèn)存放在 /etc/netplan/ 目錄,執(zhí)行以下命令查看:
ls -l /etc/netplan/
輸出示例:
-rw------- 1 root root 428 12月 4 17:40 00-installer-config.yaml -rw-r--r-- 1 root root 102 12月 3 10:00 01-network-manager-all.yaml # 沖突文件,需刪除
三、步驟 2:清理沖突配置
若存在 01-network-manager-all.yaml 等指向 NetworkManager 的配置文件,會(huì)和 Netplan 沖突,需刪除:
# 刪除沖突配置文件 sudo rm /etc/netplan/01-network-manager-all.yaml # 驗(yàn)證刪除結(jié)果 ls -l /etc/netplan/
四、步驟 3:編輯 Netplan 靜態(tài) IP 配置
1. 編輯配置文件
使用 nano 編輯主配置文件 00-installer-config.yaml(注意 YAML 嚴(yán)格縮進(jìn),禁止用 tab,僅用空格):
sudo nano /etc/netplan/00-installer-config.yaml
寫入以下內(nèi)容(替換為你的 IP/網(wǎng)關(guān)/DNS):
network:
version: 2 # Netplan 版本,固定為 2
renderer: networkd # 明確用 networkd 管理,避免沖突
ethernets:
ens33: # 網(wǎng)卡名稱,需和 ip a 輸出一致
dhcp4: false # 關(guān)閉 DHCP,啟用靜態(tài) IP
addresses:
- 192.168.111.22/24 # 靜態(tài) IP + 子網(wǎng)掩碼
routes:
- to: default # 默認(rèn)路由
via: 192.168.111.2 # 網(wǎng)關(guān) IP(必須是虛擬機(jī)網(wǎng)段的真實(shí)網(wǎng)關(guān))
nameservers:
addresses: [8.8.8.8, 8.8.4.4] # DNS 服務(wù)器(公共 DNS/內(nèi)網(wǎng) DNS)
2. 配置文件關(guān)鍵說(shuō)明
| 字段 | 說(shuō)明 |
|---|---|
renderer: networkd | 指定網(wǎng)絡(luò)渲染器為 networkd,Ubuntu 服務(wù)器版默認(rèn)推薦 |
dhcp4: false | 關(guān)閉 DHCPv4,若需 IPv6 靜態(tài)配置,可添加 dhcp6: false |
addresses | 靜態(tài) IP 列表,格式為「IP/子網(wǎng)掩碼」,支持配置多個(gè) IP |
routes.to: default | 指向默認(rèn)網(wǎng)關(guān),所有外網(wǎng)流量走該路由 |
nameservers.addresses | DNS 服務(wù)器列表,優(yōu)先用公共 DNS(8.8.8.8/114.114.114.114) |
3. 修正配置文件權(quán)限
Netplan 要求配置文件僅 root 可讀寫(權(quán)限 600),執(zhí)行以下命令修正:
# 設(shè)置權(quán)限為 600(僅 root 可讀可寫) sudo chmod 600 /etc/netplan/00-installer-config.yaml # 設(shè)置歸屬為 root:root sudo chown root:root /etc/netplan/00-installer-config.yaml # 驗(yàn)證權(quán)限 ls -l /etc/netplan/00-installer-config.yaml
輸出示例(權(quán)限正確):
-rw------- 1 root root 428 12月 4 17:40 /etc/netplan/00-installer-config.yaml
五、步驟 4:應(yīng)用配置并驗(yàn)證
1. 測(cè)試配置(推薦)
先用 netplan try 測(cè)試配置(臨時(shí)生效,超時(shí)自動(dòng)回滾,按回車確認(rèn)永久生效):
sudo netplan try
輸出說(shuō)明:
- 若提示
WARNING:root:Cannot call Open vSwitch:忽略(未使用 OVS 交換機(jī),不影響); - 看到
Do you want to keep these settings?時(shí),按回車鍵確認(rèn)保留配置。
2. 永久應(yīng)用配置
測(cè)試無(wú)報(bào)錯(cuò)后,執(zhí)行以下命令永久生效:
# 生成配置 sudo netplan generate # 應(yīng)用配置 sudo netplan apply # 重啟網(wǎng)卡(可選) sudo ip link set ens33 down && sudo ip link set ens33 up
3. 驗(yàn)證配置結(jié)果
(1)查看靜態(tài) IP 是否生效
ip a
輸出示例(ens33 已配置靜態(tài) IP 192.168.111.22):
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:94:ef:9d brd ff:ff:ff:ff:ff:ff
altname enp2s1
inet 192.168.111.22/24 brd 192.168.111.255 scope global ens33
valid_lft forever preferred_lft forever
(2)查看路由表
ip route
輸出示例(默認(rèn)網(wǎng)關(guān) 192.168.111.2 已生效):
default via 192.168.111.2 dev ens33 proto static 192.168.111.0/24 dev ens33 proto kernel scope link src 192.168.111.22
(3)測(cè)試網(wǎng)絡(luò)連通性
# 測(cè)試內(nèi)網(wǎng)連通性(ping 網(wǎng)關(guān)) ping -c 3 192.168.111.2 # 測(cè)試外網(wǎng) IP 連通性 ping -c 3 8.8.8.8 # 測(cè)試域名解析(驗(yàn)證 DNS) ping -c 3 baidu.com
- 若能 ping 通網(wǎng)關(guān)但無(wú)法 ping 外網(wǎng):檢查 VMware NAT 模式網(wǎng)關(guān)是否匹配(參考文末「常見(jiàn)問(wèn)題」);
- 若能 ping 外網(wǎng) IP 但無(wú)法 ping 域名:檢查 DNS 配置是否正確。
六、常見(jiàn)問(wèn)題解決
1. 配置靜態(tài) IP 后無(wú)法訪問(wèn)外網(wǎng)
- 原因:VMware NAT 模式的真實(shí)網(wǎng)關(guān)和配置的
via不一致; - 解決:打開(kāi) VMware → 編輯 → 虛擬網(wǎng)絡(luò)編輯器 → 選擇 VMnet8(NAT 模式)→ NAT 設(shè)置 → 查看「網(wǎng)關(guān) IP」,將 Netplan 中的
via改為該值。
2. YAML 配置語(yǔ)法錯(cuò)誤
- 癥狀:
netplan apply報(bào)錯(cuò)Error in network definition; - 解決:
- 檢查縮進(jìn)(僅用 2 個(gè)空格,禁止 tab);
- 檢查標(biāo)點(diǎn)(冒號(hào)后需加空格,如
dhcp4: false而非dhcp4:false); - 用
sudo netplan try測(cè)試語(yǔ)法,會(huì)提示具體錯(cuò)誤行。
3. 配置文件權(quán)限警告
- 癥狀:
netplan try提示Permissions for /etc/netplan/xxx.yaml are too open; - 解決:執(zhí)行
sudo chmod 600 /etc/netplan/xxx.yaml修正權(quán)限。
4. 網(wǎng)卡狀態(tài)始終 DOWN
- 解決:執(zhí)行
sudo systemctl restart systemd-networkd重啟網(wǎng)絡(luò)服務(wù),再執(zhí)行sudo ip link set ens33 up啟動(dòng)網(wǎng)卡。
七、配置備份與恢復(fù)
1. 備份配置文件
sudo cp /etc/netplan/00-installer-config.yaml /etc/netplan/00-installer-config.yaml.bak
2. 恢復(fù)配置(若出錯(cuò))
sudo cp /etc/netplan/00-installer-config.yaml.bak /etc/netplan/00-installer-config.yaml sudo netplan apply
總結(jié)
Ubuntu 虛擬機(jī)配置靜態(tài) IP 的核心是:
- 清理 NetworkManager 沖突配置;
- 編寫合規(guī)的 Netplan YAML 配置(注意縮進(jìn)和權(quán)限);
- 匹配虛擬機(jī)網(wǎng)絡(luò)模式的真實(shí)網(wǎng)關(guān);
- 先測(cè)試再應(yīng)用,避免配置失效。
按本教程配置后,虛擬機(jī)可穩(wěn)定使用靜態(tài) IP,同時(shí)保證內(nèi)網(wǎng)/外網(wǎng)連通性。
以上就是Ubuntu虛擬機(jī)配置靜態(tài)IP的流程步驟的詳細(xì)內(nèi)容,更多關(guān)于Ubuntu配置靜態(tài)IP的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
關(guān)于linux權(quán)限s權(quán)限和t權(quán)限詳解
本文介紹了linux系統(tǒng)內(nèi)的2個(gè)特殊權(quán)限s權(quán)限和t權(quán)限,簡(jiǎn)單易懂,大家可以詳細(xì)看看2018-03-03
Linux使用systemd服務(wù)和crontab實(shí)現(xiàn)Shell腳本開(kāi)機(jī)自動(dòng)運(yùn)行過(guò)程
在Linux系統(tǒng)中,使用systemd和crontab是實(shí)現(xiàn)Shell腳本開(kāi)機(jī)自啟動(dòng)的兩種常用方法,首先,需創(chuàng)建一個(gè)Shell腳本,將其放置在適當(dāng)目錄,通過(guò)編寫.service文件并將其移動(dòng)到/etc/systemd/system/目錄下,可以設(shè)置為systemd服務(wù)2024-09-09
linux環(huán)境下實(shí)現(xiàn)固定串口設(shè)備號(hào)
簡(jiǎn)要說(shuō)明:通過(guò)修改rifd.rules中的設(shè)備ID規(guī)則,為RFID串口創(chuàng)建符號(hào)鏈接,使用lsusb和udevadm命令定位設(shè)備,若ID沖突則需進(jìn)一步區(qū)分,編程時(shí)需采用新設(shè)備名確保穩(wěn)定性2025-09-09
如何解決Linux環(huán)境變量每次要source /etc/profile問(wèn)題
這篇文章主要介紹了如何解決Linux環(huán)境變量每次要source /etc/profile問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-04-04
CentOS8出現(xiàn)-bash:亂碼問(wèn)題及解決方法
這篇文章主要介紹了CentOS8出現(xiàn)-bash:亂碼問(wèn)題及解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04

