Netplan网络配置说明

Netplan简述

Netplan 是一款用于在 Linux 系统上配置网络的程序。属于抽象网络配置描述器。通过Netplan只需要配置一个yaml文件描述网络接口的所需配置即可,无论linux系统采用networkd还是NetworkManager管理网络。Ubuntu18.04及以后版本中默认使用Netplan管理网络。配置文件存放于/etc/netplan/目录下。


配置文件优先级规则

Netplan配置网络时按照字母数字顺序加载所有在/etc/netplan/下的yaml文件。若多个文件定义了相同的网络配置时后加载的配置文件将覆盖前面加载的配置文件,故/etc/netplan/中文件名排序考前的优先级较低(文件名首字母或数字排序靠前),文件名排序较大优先级较高。

文件命名中数字高于字母,即“1”优先于“a”,“03”优先于“05”,“d”优先于“t”

即01-network-manager-all.yaml会优先加载05-network-manager-all.yaml会之后加载。


配置文件规则

netplan版本号说明

首先netplan有两个大版本。版本号<0.103或者版本号0.103。旧版本部分配置语法已经弃用,gateway——配置网关的命令已改为routes

#查看netplan版本命令
sudo apt-cache policy netplan.io

图中可见目前使用的版本为0.106.1

netplan配置文件语法说明

注意:yaml文件严格地要求缩进和符号

  • 层级管理中要用两个空格进行缩进,不要用Tab。
  • ip地址列表中 – 后面要有一个空格
  • : 后面若有文本也要加上一个空格
  • IPV6地址要用 “ ” 括起来,(虽然我试过不括也能用)
  • 同缩进的关键字无所谓先后,version: 2这种放最后也可以。
  • 配置文件有很大的灵活性,同一块网卡可在不通配置文件中配置。
  • 不同的网卡也可在一个配置文件中配置。

查看当前网络信息

查看当前网络使用的管理软件NetworkManager或systemd-networkd

sudo systemctl status NetworkManager
sudo systemctl status systemd-networkd
#NetworkManager和networkd虽然可同时运行,但为避免两者冲突,尽量只运行一个。


#停止NetworkManager服务命令如下
sudo systemctl stop NetworkManager
#禁止NetworkManager服务开机启动
sudo systemctl disable NetworkManager
重启networkd服务
sudo systemctl restart systemd-networkd
sudo systemctl status systemd-networkd
看到如下信息表示networkd正在运行
sudo systemctl status systemd-networkd
看到如下信息表示networkd没有运行

查看当前DNS信息

resolvectl status

查看当前网关信息

#查看IPV4默认网关
ip route show default
#查看IPV6默认网关
ip -6 route show default

查看当前网络详细配置(包含DNS信息)

networkctl status

查看当前网络详细信息

ip address

ip address输出结果详情可参阅另一篇文章ip address、ip addr、ip a参数详解


配置文件模板

配置文件语法规则均0.103版本

标准静态地址配置文件

network:
  version: 2   
  #选择管理软件,默认是networkd,也可修改为NetworkManager                          
  renderer: networkd                                  
  ethernets:
    #配置名为eth0的网卡:
    eth0:
      #配置IP地址:
      addresses:
        - 10.0.0.2/24
        - "2001:xxxx:xxxx:xxxx::2/64"
      #配置DNS服务器:
      nameservers:
        addresses:
          - 10.10.10.253
          - 8.8.8.8
           - "2001:xxxx:xxxx:xxxx::3333/64"
      #配置默认网关:
      routes:
        - to: default
          via: 192.168.0.1
          via: "2001:xxxx:xxxx:xxxx::xxxx"

DHCP配置文件

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: true

连接家用wifi配置文件

network:
  version: 2
  renderer: NetworkManager
  wifis:
    wlp2s0b1:
      dhcp4: yes
      access-points:
        #输入wifi名
        "network_ssid_name":
          password: "**********"

更多配置教程请参阅Netplan官方文档:

https://netplan.readthedocs.io/en/stable/netplan-tutorial/#showing-current-netplan-configuration


Netplan命令

#验证配置
#输入此命令后linux临时应用新配置(默认为 120 秒)并等待确认。超过120秒不确认则回滚
sudo netplan try

#应用新的 Netplan 配置
sudo netplan apply

#获取当前netplan配置
netplan get

常见错误

Cannot call Open vSwitch: ovsdb-server.service is not running

#表示ovsdb-server服务没运行。
#需要启动ovsdb-server服务。或安装ovsdb-server服务
#检查ovsdb-server状态
sudo systemctl status ovsdb-server
#启动ovsdb-server
sudo systemctl start ovsdb-server
#设置开机启动
sudo systemctl enable ovsdb-server


unit ovsdb-server.service could not be found

#表示ovsdb-server服务没有安装或正确配置
#检查 Open vSwitch 是否安装
sudo apt list --installed | grep openvswitch
#安装ovsdb-server
sudo apt install openvswitch-switch
#重新配置ovsdb-server
sudo ovs-ctl force-reload-kmod

重置网络配置

若配置出现失败则删除修改后的yaml文件并重启网络。

sudo systemctl restart systemd-networkd
#或者
sudo systemctl restart NetworkManager

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇