Ubuntu22.04Server版用netplan设置静态IP的yaml模板 /etc/netplan/*.yaml 自用

时间:2025-02-28 15:06:13

Ubuntu22.04Server版用netplan设置静态IP的yaml模板 /etc/netplan/*.yaml

Server版 和 Desklop版 都可以用 netplan 配置网络, 但下层是不一样的

  • Server版用 netplan 配置 systemd-networkd
    systemctl status systemd-networkd
    
  • Desktop版用 netplan 配置 NetworkManager
    systemctl status NetworkManager
    

Server版默认配置文件 /etc/netplan/
查看

sudo cat /etc/netplan/

因为只有一个文件, 还可以用 *.yaml* 查看

sudo cat /etc/netplan/*.yaml
sudo cat /etc/netplan/*
一些 netplan 命令

netplan generate :生成与后端管理工具对应的配置;
netplan apply :应用配置,必要时重启管理工具;
netplan try :在配置得到确认之后才应用,如果配置存在错误,则回滚;
netplan get:获取当前 netplan 配置;
netplan set:修改当前 netplan 的配置。

一些配置模板

进配置文件夹

cd /etc/netplan

240712, ubuntu-22.04.4-live-server-amd64 , Vmware , 一个文件同时配置三块虚拟网卡

# This file is generated from information provided by the datasource.  Changes
# to it will not persist across an instance reboot.  To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud// with the following:
# network: {config: disabled}
network:
    ethernets:
        ens33:
            addresses:
            - 1.224.42.1/8
            - 1.224.42.2/8
            - 1.224.42.3/8
            nameservers:
                addresses:
                - 180.76.76.76
                - 119.29.29.29
                - 223.6.6.6
                search:
                - 
                - 
                - 
            routes:
            -   to: default
                via: 1.0.0.2
        ens34:
            dhcp4: true
            addresses: [1.224.42.11/8 , 1.224.42.12/8 , 1.224.42.13/8 ]
            nameservers:
              addresses: [119.29.29.29,223.5.5.5,180.76.76.76]
              search: [,,]
            routes: [{to: 0.0.0.0/0,via: 1.0.0.2, metric: 100}]
        ens35:
            dhcp4: false
            dhcp6: false
            addresses: [1.224.42.21/8 , 1.224.42.22/8 , 1.224.42.23/8 ]
            nameservers:
              addresses: [119.29.29.29,223.5.5.5,180.76.76.76]
            routes: [{to: default,  via: 1.0.0.2 ,  metric: 300}]
    version: 2

240709, 配置三块虚拟网卡中的第二块, 使用单独文件配置, 取名 测试通过

root@us2243:/etc/netplan# ls
  
network:
  version: 2    #  Defines what version of the configuration format is used.  The only value supported is 2.  Defaults to 2 if not defined.
  ethernets:
    ens37:
      addresses:
      - 1.22.43.121/8
      - 1.22.43.122/8
      - 1.22.43.123/8
      - 1.22.43.124/8
      - 1.22.43.125/8
      # gateway4: 192.168.168.2  # 以前的网关 , 可用,但会提示不赞成 , 用 routes:[{to: 0/0 , via: 网关}] 取代
      routes: [{to: 0.0.0.0/0 , via: 1.0.0.2}]
#      routes:    #设置路由网关, 老版本由 gateway4:网关地址 设置
#        - to: default # default 等效 0.0.0.0/0 等效 0/0   # could be 0/0 or 0.0.0.0/0 optionally
#          via: 1.0.0.2    # 网关地址  ,  也可用 gateway4:
      nameservers:
        addresses: # DNS的ip
        - 180.76.76.76 # 百度
        - 119.29.29.29 # 腾讯
        - 223.5.5.5 # 阿里
        - 223.6.6.6 # 阿里
        - 8.8.8.8 # 谷歌
        - 9.9.9.9
        - 1.1.1.1
        - 114.114.114.114
        - 101.226.4.6
        - 123.125.81.6
        search: [  ,  , 可有可无.com ]


VMware环境下用的, 网卡接口 ens33

network:
  ethernets:
    ens33:
      addresses:
      - 192.168.168.204/24
      # gateway4: 192.168.168.2  # 以前的网关 , 可用,但会提示不赞成
      routes:
        - to: default # default 等效 0.0.0.0/0 等效 0/0   # could be 0/0 or 0.0.0.0/0 optionally
          via: 192.168.168.2  # 网关
      nameservers:
        addresses: # DNS的ip
        - 192.168.168.2 # 本地
        - 8.8.8.8 # 谷歌
        - 8.8.4.4 # 谷歌
        - 1.1.1.1
        - 223.6.6.6 # 阿里
        - 114.114.114.114
        - 180.76.76.76 # 百度
        - 119.29.29.29 # 腾讯
        - 101.226.4.6
        - 123.125.81.6
        search:
        - 192.168.168.2 # 本地
        - 8.8.8.8 # 谷歌
        - 8.8.4.4
        - 1.1.1.1
        - 223.6.6.6 # 阿里
        - 114.114.114.114
        - 180.76.76.76 # 百度
        - 119.29.29.29 # 腾讯
        - 101.226.4.6
        - 123.125.81.6
  version: 2

search 可以不要, 暂时也没搞懂用途

network:
  ethernets:
    ens33:
      addresses:
      - 192.168.168.204/24
      # gateway4: 192.168.168.2  # 以前的网关 , 可用,但会提示不赞成
      routes:
        - to: default # default 等效 0.0.0.0/0 等效 0/0   # could be 0/0 or 0.0.0.0/0 optionally
          via: 192.168.168.2  # 网关
      nameservers:
        addresses: # DNS的ip
        - 192.168.168.2 # 本地
        - 8.8.8.8 # 谷歌
        - 8.8.4.4 # 谷歌
        - 1.1.1.1
        - 223.6.6.6 # 阿里
        - 114.114.114.114
        - 180.76.76.76 # 百度
        - 119.29.29.29 # 腾讯
        - 101.226.4.6
        - 123.125.81.6
  version: 2

调整一些DNS顺序

network:
  ethernets:
    ens33:
      addresses:
      - 192.168.168.204/24
      # gateway4: 192.168.168.2  # 以前的网关 , 可用,但会提示不赞成
      routes:
        - to: default # default 等效 0.0.0.0/0 等效 0/0   # could be 0/0 or 0.0.0.0/0 optionally
          via: 192.168.168.2  # 网关
      nameservers:
        addresses: # DNS的ip
        - 192.168.168.2 # 本地
        - 8.8.4.4 # 谷歌
        - 223.6.6.6 # 阿里
        - 114.114.114.114
        - 180.76.76.76 # 百度
        - 119.29.29.29 # 腾讯
        - 8.8.8.8 # 谷歌
        - 101.226.4.6
        - 123.125.81.6
        - 1.1.1.1
  version: 2

也可以写成这样

network:
  ethernets:
    ens33:
      addresses: [192.168.168.204/24]
      routes:
        - to: default # default 等效 0.0.0.0/0 等效 0/0   # could be 0/0 or 0.0.0.0/0 optionally
          via: 192.168.168.2  # 网关
      nameservers:
        addresses: # DNS的ip
         [ 192.168.168.2 , 8.8.4.4 , 223.6.6.6 , 114.114.114.114, 180.76.76.76 , 119.29.29.29 , 8.8.8.8 , 101.226.4.6, 123.125.81.6, 1.1.1.1]
  version: 2
network:
  version: 2
  ethernets:
    ens33:
      addresses: [192.168.168.204/24]
      routes:
        - to: default # default 等效 0.0.0.0/0 等效 0/0   # could be 0/0 or 0.0.0.0/0 optionally
          via: 192.168.168.2  # 网关
      nameservers:
        addresses: # DNS的ip
         [ 192.168.168.2 , 8.8.4.4 , 223.6.6.6 , 114.114.114.114, 180.76.76.76 , 119.29.29.29 , 8.8.8.8 , 101.226.4.6, 123.125.81.6, 1.1.1.1]
        search: 
         [ 192.168.168.2 , 8.8.4.4 , 223.6.6.6 , 114.114.114.114, 180.76.76.76 , 119.29.29.29 , 8.8.8.8 , 101.226.4.6, 123.125.81.6, 1.1.1.1]



一些 netplan 命令

netplan generate :生成与后端管理工具对应的配置;Generate backend specific configuration files from /etc/netplan/*.yaml
netplan apply :应用配置,必要时重启管理工具;
netplan try :在配置得到确认之后才应用,如果配置存在错误,则回滚;
netplan get:获取当前 netplan 配置;
netplan set:修改当前 netplan 的配置。

sudo netplan generate # 生成与后端管理工具对应的配置;
sudo netplan apply # 应用配置,必要时重启管理工具;
sudo netplan --debug apply # 调试,返回错误信息;
sudo netplan try # 在配置得到确认之后才应用,如果配置存在错误,则回滚,类似test;
sudo netplan get # 获取当前 netplan 配置;
sudo netplan set # 修改当前 netplan 的配置。

netplan generate

netplan generate 是一个与 Ubuntu 系统中的 Netplan 工具相关的命令。Netplan 是一个用于配置网络接口的工具,它使用 YAML 文件来定义网络接口的配置,替代了旧的 /etc/network/interfaces 文件。这种方法使得网络配置更加简洁和易于管理。

netplan generate 仅负责生成配置,不会应用配置。要应用生成的配置,需要使用 netplan apply 命令。

netplan generate

Generate backend specific configuration files from /etc/netplan/*.yaml

usage: /usr/sbin/netplan generate [-h] [–debug] [–root-dir ROOT_DIR]
[–mapping MAPPING]

Generate backend specific configuration files from /etc/netplan/*.yaml

options: -h, --help show this help message and exit
–debug Enable debug messages --root-dir ROOT_DIR Search for and generate configuration files in this root directory
instead of / --mapping MAPPING Display the netplan device
ID/backend/interface name mapping and exit.

netplan generate 命令用于根据 /etc/netplan/ 目录下的 .yaml 配置文件生成网络配置。这些配置文件定义了系统应该如何配置其网络接口。

基本步骤

  1. 创建或编辑 YAML 配置文件

    • /etc/netplan/ 目录下创建一个新的 .yaml 文件,或者使用编辑器(如 nanovim)编辑现有的文件。
    • 在这个文件中,定义网络接口的配置,包括接口名称、IP 地址、子网掩码、网关等信息。
  2. 运行 netplan generate

    • 在终端中输入 sudo netplan generate 命令。
    • 这个命令会根据 /etc/netplan/ 目录下的配置文件生成网络配置。
  3. 应用配置

    • 通常,netplan generate 命令会自动调用 netplan apply 来应用生成的配置。但是,如果你只想生成配置而不立即应用,可以单独使用 netplan generate 命令,然后手动应用配置。
  4. 验证配置

    • 使用 ip addrifconfig 命令来检查网络接口的配置是否按照预期应用。

注意事项

  • 确保你有足够的权限来编辑 /etc/netplan/ 目录下的文件,通常需要 sudo 权限。
  • 在应用新的网络配置之前,确保你了解这些配置如何影响你的网络连接,以避免意外的网络中断。
  • 如果你在使用 netplan 时遇到问题,可以查看 /var/log/syslog 文件中的日志信息,或者参考 Ubuntu 的官方文档和社区论坛获取帮助。

总之,netplan generate 是 Netplan 工具中的一个命令,用于根据 YAML 配置文件生成网络配置,是管理 Ubuntu 系统网络配置的一种有效方式。