轉載,閱讀原文:https://www.cnblogs.com/JaxYoun/p/13140095.html
一、目錄及配置文件
cd /etc/netplan
vi 01-network-manager-all.yaml
二、靜態ip配置方式
01-network-manager-all.yaml.static
# Let NetworkManager manage all devices on this system network: version: 2 renderer: NetworkManager ethernets: enp4s0: dhcp4: false addresses: [192.168.100.87/24] gateway4: 192.168.100.3 nameservers: addresses: [192.168.100.3,8.8.8.8]
三、DHCP配置方式
01-network-manager-all.yaml.dhcp
# Let NetworkManager manage all devices on this system network: version: 2 renderer: NetworkManager ethernets: enp4s0: dhcp4: true
四、重啟netplan
需要啟用哪一種ip分配策略就拷貝文件,並去掉最后的后綴
cp 01-network-manager-all.yaml.xxxx 01-network-manager-all.yaml
netplan --debug apply
ip add
動態IP變化時,使用 netplan apply 即可刷新IP
其他參考 https://linux265.com/news/6376.html https://zh.codepre.com,有點亂:
Ubuntu 17.10和更高版本使用netplan作為默認網絡管理工具。以前的Ubuntu版本使用ifconfig及其配置文件/etc/network/interfaces來配置網絡。
netplan配置文件以YAML語法編寫,擴展名為.yaml。要使用netplan配置網絡接口,需要為該接口創建YAML描述,並且netplan將為所選的渲染器工具生成所需的配置文件。
netplan支持兩個渲染器:NetworkManager和Systemd-networked。NetworkManager通常在台式機上使用,而Systemd網絡在沒有GUI的服務器上使用。
在Ubuntu服務器上配置靜態IP地址
在Ubuntu 20.04上,系統使用“可預測的網絡接口名稱”標識網絡接口。
設置靜態IP地址的第一步是識別要配置的以太網接口的名稱,使用 ip link 命令打印所有可用網絡接口的列表,常見的接口名稱有eth0、ens3:
1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens3: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 08:00:27:6c:13:63 brd ff:ff:ff:ff:ff:ff
netplan配置文件存儲在/etc/netplan目錄中,可能有一個或多個YAML文件,文件的名稱可能因安裝程序而異。通常,該文件名為01-netcfg.yaml、00-installer-config.yaml、50-cloud-init.yaml或NN_interfaceName.yaml,但是在不同系統中可能有所不同。
如果是Ubuntu雲實例,可能配置有cloud-init,則需要將其禁用。為此,請創建以下文件:
vi /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
network: {config: disabled}
要在網絡接口上配置靜態IP地址,編輯YAML配置文件 /etc/netplan/01-netcfg.yaml:
network:
version: 2
renderer: networkd
ethernets:
ens3:
dhcp4: yes # 或設置為true
在更改配置之前,簡要說明一下代碼。
每個netplan Yaml文件均以具有至少兩個必需元素的網絡密鑰開頭。第一個必需元素是網絡配置格式的版本,第二個是設備類型。設備類型可以是以太網,綁定,網橋或VLAN。
上面的配置還有一行顯示渲染器類型的行。開箱即用,如果在服務器模式下安裝Ubuntu,則渲染器配置為使用networkd作為后端。
在設備的類型(以太網)下,可以指定一個或多個網絡接口。在此示例中,只有一個接口ens3,該接口被配置為從DHCP服務器dhcp4獲取IP地址:是。
要將靜態IP地址分配給ens3接口,編輯文件/etc/netplan/01-netcfg.yaml:
network:
version: 2
renderer: networkd
ethernets:
ens3:
dhcp4: no
addresses:
- 192.168.121.221/24
gateway4: 192.168.121.1
nameservers:
addresses: [8.8.8.8, 1.1.1.1]
將DHCP設置為dhcp4:否。指定靜態IP地址。在地址下:可以添加一個或多個將分配給網絡接口的IPv4或IPv6 IP地址。指定網關。在名稱服務器下,設置名稱服務器的IP地址。
編輯Yaml文件時,請確保遵循YAML代碼縮進標准。如果語法不正確,則更改將不會應用。
完成后,通過運行以下命令保存文件並應用更改:
netplan apply
校驗修改是否生效
ip addr show dev ens3
2: ens3: mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 08:00:27:6c:13:63 brd ff:ff:ff:ff:ff:ff
inet 192.168.121.221/24 brd 192.168.121.255 scope global dynamic ens3
valid_lft 3575sec preferred_lft 3575sec
inet6 fe80::5054:ff:feb0:f500/64 scope link
valid_lft forever preferred_lft forever
示例:
1. 配置DHCP自動獲取
編輯 /etc/netplan/00-installer-config.yaml_auto
# This is the network config written by 'subiquity'
network:
ethernets:
eth0:
dhcp4: true
version: 2
2. 配置靜態IP
編輯 /etc/netplan/00-installer-config.yaml
# This is the network config written by 'subiquity'
network:
ethernets:
eth0:
dhcp4: no
dhcp6: no
# Set IP address & subnet mask
addresses:
- 172.17.140.90/28
# Set default gateway
gateway4: 172.17.140.81
nameservers:
# Set DNS name servers
addresses:
- 223.5.5.5
- 8.8.8.8
version: 2
重啟網絡:
netplan apply
如果不需要IPv6,可以禁用:
echo “net.ipv6.conf.all.disable_ipv6 = 1” | tee -a /etc/sysctl.conf
sysctl -p