Ubuntu實(shí)現(xiàn)修改局域網(wǎng)IP地址(Netplan)
在服務(wù)器或虛擬機(jī)環(huán)境中,我們通常需要為 Ubuntu 設(shè)置固定的局域網(wǎng) IP,例如從 192.168.100.142 調(diào)整為 192.168.100.151,以便用于 Docker、NAS、數(shù)據(jù)庫(kù)、反向代理等長(zhǎng)期運(yùn)行的服務(wù)。
一、Ubuntu 當(dāng)前使用的網(wǎng)絡(luò)配置體系
從 Ubuntu 18.04 開(kāi)始,系統(tǒng)默認(rèn)使用 Netplan 作為網(wǎng)絡(luò)配置抽象層:
配置文件位于:/etc/netplan/*.yaml
Netplan 會(huì)生成底層的:
systemd-networkd或NetworkManager配置
只要你看到 .yaml 文件,說(shuō)明你使用的就是 Netplan。
ls /etc/netplan
常見(jiàn)文件名例如:
00-installer-config.yaml 50-cloud-init.yaml
二、確認(rèn)當(dāng)前網(wǎng)卡名稱(非常重要)
在修改 IP 之前,必須確認(rèn)真實(shí)的網(wǎng)卡名:
ip addr
你會(huì)看到類似輸出:
2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP>
inet 192.168.100.142/24
本文示例統(tǒng)一使用 ens18,請(qǐng)以你的實(shí)際網(wǎng)卡名為準(zhǔn)。
三、傳統(tǒng)寫(xiě)法的問(wèn)題:gateway4 已被廢棄
很多舊教程仍然使用:
gateway4: 192.168.100.1
在較新的 Netplan 版本中,這一寫(xiě)法會(huì)出現(xiàn)警告:
gateway4 is deprecated
為什么會(huì)被廢棄?
原因并不是“不能用”,而是 設(shè)計(jì)升級(jí):
gateway4 只能描述“一個(gè)默認(rèn)網(wǎng)關(guān)”
無(wú)法支持:
- 多路由
- 策略路由
- IPv4 / IPv6 統(tǒng)一建模
Netplan 正在統(tǒng)一使用 顯式路由模型。
四、正確、推薦、無(wú)警告的寫(xiě)法(重點(diǎn))
下面是 官方推薦、未來(lái)長(zhǎng)期有效 的配置方式。
示例:將 IP 改為192.168.100.151
network:
version: 2
ethernets:
ens18:
dhcp4: false
addresses:
- 192.168.100.151/24
routes:
- to: default
via: 192.168.100.1
nameservers:
addresses:
- 8.8.8.8
- 114.114.114.114關(guān)鍵字段說(shuō)明
addresses
/24等價(jià)于255.255.255.0
routes
to: default表示默認(rèn)路由via表示下一跳(路由器 IP)
nameservers
- 只影響 DNS,不影響局域網(wǎng)通信
五、遠(yuǎn)程 SSH 環(huán)境下的安全應(yīng)用方式
如果你是通過(guò) SSH 連接服務(wù)器,不要直接 netplan apply。
推薦使用
sudo netplan try
特性:
- 配置生效后會(huì)進(jìn)入確認(rèn)倒計(jì)時(shí)
- 如果網(wǎng)絡(luò)斷開(kāi),自動(dòng)回滾
- 非常適合遠(yuǎn)程修改 IP
確認(rèn)網(wǎng)絡(luò)正常后,按提示回車(chē)即可。
六、驗(yàn)證是否配置成功
查看 IP
ip addr show ens18
查看默認(rèn)路由
ip route
應(yīng)看到:
default via 192.168.100.1 dev ens18
七、常見(jiàn)踩坑點(diǎn)匯總
1. IP 沖突
修改前請(qǐng)確認(rèn)目標(biāo) IP 未被占用:
ping 192.168.100.151
2. YAML 縮進(jìn)錯(cuò)誤
- 只能使用空格
routes下的- to與via縮進(jìn)必須一致
3. cloud-init 覆蓋配置
如果存在 50-cloud-init.yaml,需確認(rèn) cloud-init 是否會(huì)在重啟時(shí)重寫(xiě)網(wǎng)絡(luò)配置。
參考資料:
1.Netplan 官方文檔(Canonical)
- Netplan 的設(shè)計(jì)理念、配置語(yǔ)法以及推薦實(shí)踐。
- https://netplan.readthedocs.io/en/stable/
2.Netplan 路由配置說(shuō)明(Default Route / routes)
- 官方對(duì)
routes:、to: default、via:的說(shuō)明。 - https://netplan.readthedocs.io/en/stable/netplan-yaml/#routes
3.Ubuntu Server 網(wǎng)絡(luò)配置文檔
- Ubuntu 官方對(duì) Server 環(huán)境下網(wǎng)絡(luò)配置方式的說(shuō)明,明確 Netplan 為默認(rèn)方案。
- https://ubuntu.com/server/docs/network-configuration
4.systemd-networkd 文檔(Netplan 底層實(shí)現(xiàn)之一)
- Netplan 在 Server 環(huán)境下通常生成 systemd-networkd 配置,理解這一層有助于排錯(cuò)。
- https://www.freedesktop.org/software/systemd/man/systemd-networkd.service.html
5.cloud-init 網(wǎng)絡(luò)配置說(shuō)明
- 云主機(jī)或虛擬機(jī)環(huán)境中,Netplan 配置被重寫(xiě)的根源,排查
50-cloud-init.yaml時(shí)非常有用。 - https://cloudinit.readthedocs.io/en/latest/topics/network-config.html
九、總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Apache服務(wù)器關(guān)閉TRACE Method請(qǐng)求方式的方法
這篇文章主要介紹了Apache服務(wù)器關(guān)閉TRACE Method請(qǐng)求方式的方法,因?yàn)橹С衷摲绞降姆?wù)器存在跨站腳本漏洞,需要的朋友可以參考下2014-06-06
linux使用find和crontab命令定期清理過(guò)期文件
這篇文章主要給大家介紹了linux系統(tǒng)下使用find和crontab命令定期清理過(guò)期文件的方法,文中先對(duì)find和crontab命令進(jìn)行了詳細(xì)的介紹,相信對(duì)大家的理解和學(xué)習(xí)具有一定的參考借鑒價(jià)值,下面來(lái)一起看看吧。2016-12-12
CentOS VPS安裝Kloxo免費(fèi)虛擬主機(jī)管理系統(tǒng)
之前介紹過(guò)使用LNMP一鍵安裝包配置Web服務(wù)器環(huán)境。配置環(huán)境雖然簡(jiǎn)單,但往后維護(hù)服務(wù)器的工作都是通過(guò)SSH,這還是需要學(xué)習(xí)一定的命令的。2011-03-03
Shell中的單中括號(hào)和雙中括號(hào)的用法詳解
shell中的中括號(hào)在條件測(cè)試中是使用最頻繁的,無(wú)論是中括號(hào)還是雙中括號(hào),可用于一些條件的測(cè)試:算術(shù)比較、文件屬性測(cè)試、字符串比較。這篇文章主要介紹了Shell中的單中括號(hào)和雙中括號(hào)的用法詳解,需要的朋友可以參考下2022-12-12
centos下簡(jiǎn)單配置安裝Squid 3.0反向代理
以下安裝及配置均為Sudu所在公司應(yīng)用中使用的腳本,希望高手們能指正我的一些不足。如果測(cè)試過(guò)程中發(fā)現(xiàn)了問(wèn)題請(qǐng)回復(fù)或者聯(lián)系我。2010-12-12
Windows 配置Apache以便在瀏覽器中運(yùn)行Python script的CGI模式
在前面的我的一篇文章中 “Windows XP下的Python 首次安裝配置和使用 ”談到當(dāng)想在Apache服務(wù)器下運(yùn)行Python script的時(shí)候,發(fā)現(xiàn)Apache的mod_python版本還不支持Python 2.6更別說(shuō)3.0.1了,只有2.5之下的,折騰著卸載和安裝,最后還沒(méi)搞定,就先擱一邊了。2009-07-07
Linux下Mysql定時(shí)任務(wù)備份數(shù)據(jù)的實(shí)現(xiàn)方法
當(dāng)安裝完成操作系統(tǒng)之后,默認(rèn)便會(huì)啟動(dòng)此任務(wù)調(diào)度命令。下面這篇文章主要給大家介紹了關(guān)于在Linux下Mysql定時(shí)任務(wù)備份數(shù)據(jù)的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2018-11-11
linux查看硬盤(pán)大小與掛載硬盤(pán)的實(shí)現(xiàn)
這篇文章主要介紹了linux查看硬盤(pán)大小與掛載硬盤(pán)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
關(guān)于Apache默認(rèn)編碼錯(cuò)誤 導(dǎo)致網(wǎng)站亂碼的解決方案
Apache默認(rèn)編碼UTF-8在解析A網(wǎng)站的時(shí)候沒(méi)有任何問(wèn)題,當(dāng)運(yùn)行B網(wǎng)站時(shí)出現(xiàn)的"蝌蚪文"亂碼問(wèn)題2011-12-12
linux下apache開(kāi)啟url重寫(xiě)的方法(詳細(xì)說(shuō)明)
Apache 2.x 中URL重寫(xiě),是通過(guò)mod_rewrite.so 來(lái)實(shí)現(xiàn)的,所以您要查看您的Apache 是否已經(jīng)被編譯進(jìn)去這個(gè)模塊了,并且在Apache的配置文件httpd.conf 中已經(jīng)調(diào)用了這個(gè)模塊2012-04-04

