网络管理NM配置全套



    NetworkManager守护进程作为特权服务运行(因为它必须访问和控制硬件),通过系统总线上提供了D-Bus接口, 允许对网络进行细粒度控制。NetworkManager不存储连接或设置, 只是这些连接的机制
被选中并激活。存储预定义的网络连接,两个独立的服务,“系统”“设置服务”和“用户设置服务”存储连接信息并通过D-Bus将其提供给NetworkManager。每个设置服务可以确定持久存储连接信息的方式和位置;

下载及安装

安装

# Redhat 系列下
yum install NetworkManager

# Ubuntu 下
apt install network-manager

配置指南

# 可支持的模式
keyfile   # 是支持NetworkManager所有连接类型和功能的通用插件。它以。ini格式在/etc/ networkmanager /system-connections中写入文件
ifcfg-rh  # 它可以在Fedora和Red Hat Enterprise Linux发行版上【NetworkManager 最新版本已弃用次模式, 例如: RedHat9.0 + OS】使用,从标准的/etc/sysconfig/network-scripts/ifcfg-*文件中读写配置。目前支持读取以太网、Wi-Fi、ib、VLAN、Bond、Bridge和Team连接。启用ifcfg-rh会隐式启用ibft插件(如果有的话)。这可以通过添加no-ibft来禁用
ifupdown  # 这个插件用于Debian和Ubuntu发行版,从/etc/network/interfaces读取以太网和Wi-Fi连接。这个插件是只读的;当您使用此插件时,从NetworkManager中添加的任何连接(任何类型)将使用keyfile插件来保存。

# 对 connection 快速 UP/Down, 该包还提供了两个命令:ifup /  ifdown
ifup bond1
ifdown ens26f0

NetworkManager 命令详细配置指南

# 打印当前配置
NetworkManager --print-config


Nmcli 命令详细配置指南

[root@localhost network-scripts]# nmcli  --help
Usage: nmcli [OPTIONS] OBJECT { COMMAND | help }

OPTIONS
  -o[verview]                                    overview mode (hide default values)
  -t[erse]                                       terse output
  -p[retty]                                      pretty output
  -m[ode] tabular|multiline                      output mode
  -c[olors] auto|yes|no                          whether to use colors in output
  -f[ields] <field1,field2,...>|all|common       specify fields to output
  -g[et-values] <field1,field2,...>|all|common   shortcut for -m tabular -t -f
  -e[scape] yes|no                               escape columns separators in values
  -a[sk]                                         ask for missing parameters
  -s[how-secrets]                                allow displaying passwords
  -w[ait] <seconds>                              set timeout waiting for finishing operations
  -v[ersion]                                     show program version
  -h[elp]                                        print this help

OBJECT 简写【全写】
  g[eneral]       NetworkManager's general status and operations
  n[etworking]    overall networking control
  r[adio]         NetworkManager radio switches
  c[onnection]    NetworkManager's connections
  d[evice]        devices managed by NetworkManager
  a[gent]         NetworkManager secret agent or polkit agent
  m[onitor]       monitor NetworkManager changes

device 和 connection 的区别?

device叫网络接口,是物理设备
connection是连接,是逻辑设置
同一个device可以有多个connection,但同一时间只能启用其中一个connection,
这样对一个网络接口,可以设置多个网络连接,比如静态IP和动态IP,
再根据需要启动相应的connection

dvice 对象

[root@localhost ~]# nmcli  d --help
    Usage: nmcli device { COMMAND | help }

    COMMAND := { status | show | set | connect | reapply | modify | disconnect | delete | monitor | wifi | lldp }
      status
      show [<ifname>]
      set [ifname] <ifname> [autoconnect yes|no] [managed yes|no]
      connect <ifname>
      reapply <ifname>
      modify <ifname> ([+|-]<setting>.<property> <value>)+
      disconnect <ifname> ...
      delete <ifname> ...
      monitor <ifname> ...
      wifi [list [ifname <ifname>] [bssid <BSSID>]]
      wifi connect <(B)SSID> [password <password>] [wep-key-type key|phrase] [ifname <ifname>]
      wifi hotspot [ifname <ifname>] [con-name <name>] [ssid <SSID>] [band a|bg] [channel <channel>] [password <password>]
      wifi rescan [ifname <ifname>] [[ssid <SSID to scan>] ...]
      lldp [list [ifname <ifname>]]

查看所有设备的状态

[root@localhost network-scripts]# nmcli  d
DEVICE      TYPE      STATE         CONNECTION
enp125s0f1  ethernet  connected     enp125s0f1
enp125s0f2  ethernet  connected     enp125s0f2
enp129s0f0  ethernet  connected     enp129s0f0
enp129s0f1  ethernet  disconnected  --
enp125s0f0  ethernet  unavailable   --
enp125s0f3  ethernet  unavailable   --
enp131s0f0  ethernet  unavailable   --
enp131s0f1  ethernet  unavailable   --
enp189s0f0  ethernet  unavailable   --
enp189s0f1  ethernet  unavailable   --
enp189s0f2  ethernet  unavailable   --
enp189s0f3  ethernet  unavailable   --
enp1s0f0    ethernet  unavailable   --
enp1s0f1    ethernet  unavailable   --
lo          loopback  unmanaged     --

查看所有设备的详细信息

[root@localhost ~]# nmcli d show
GENERAL.DEVICE:                         enp125s0f1
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         60:D7:55:3B:84:5B
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     enp125s0f1
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/1
WIRED-PROPERTIES.CARRIER:               on
IP4.ADDRESS[1]:                         172.16.12.107/17
IP4.ADDRESS[2]:                         172.16.11.201/17
IP4.GATEWAY:                            172.16.1.10
IP4.ROUTE[1]:                           dst = 0.0.0.0/0, nh = 172.16.1.10, mt = 0
IP4.ROUTE[2]:                           dst = 172.16.0.0/17, nh = 0.0.0.0, mt = 100
IP6.ADDRESS[1]:                         2004::7891:cc43:b1ad:7a5f/64
IP6.ADDRESS[2]:                         2003::1c:7017/128
IP6.ADDRESS[3]:                         fe80::d47d:3889:46db:111a/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 100
IP6.ROUTE[2]:                           dst = 2014::/24, nh = ::, mt = 100
IP6.ROUTE[3]:                           dst = 2004::/64, nh = ::, mt = 100
IP6.ROUTE[4]:                           dst = 2003::/96, nh = ::, mt = 100
IP6.ROUTE[5]:                           dst = 2003::1c:7017/128, nh = ::, mt = 100
IP6.ROUTE[6]:                           dst = ff00::/8, nh = ::, mt = 256, table=255
IP6.DNS[1]:                             2003::1

对设备的激活和断开

[root@localhost network-scripts]# nmcli d disconnect   enp125s0f2
[root@localhost network-scripts]# nmcli d connect  enp125s0f2
# 等价 
[root@localhost ~]# nmcli  d reapply  enp125s0f2
# 立即生效

connection 对象

查看命令帮助

nmcli c 命令帮助官方指导文档
[root@53_mach ~]# nmcli c
add      clone    delete   down     edit     export   help     import   load     modify   monitor  reload   show     up


[root@53_mach ~]# nmcli  c  --help
Usage: nmcli connection { COMMAND | help }
COMMAND := { show | up | down | add | modify | clone | edit | delete | monitor | reload | load | import | export }
  show [--active] [--order <order spec>]
  show [--active] [id | uuid | path | apath] <ID> ...
  up [[id | uuid | path] <ID>] [ifname <ifname>] [ap <BSSID>] [passwd-file <file with passwords>]
  down [id | uuid | path | apath] <ID> ...
  add COMMON_OPTIONS TYPE_SPECIFIC_OPTIONS SLAVE_OPTIONS IP_OPTIONS [-- ([+|-]<setting>.<property> <value>)+]
  modify [--temporary] [id | uuid | path] <ID> ([+|-]<setting>.<property> <value>)+
  clone [--temporary] [id | uuid | path ] <ID> <new name>
  edit [id | uuid | path] <ID>
  edit [type <new_con_type>] [con-name <new_con_name>]
  delete [id | uuid | path] <ID>
  monitor [id | uuid | path] <ID> ...
  reload
  load <filename> [ <filename>... ]
  import [--temporary] type <type> file <file to import>
  export [id | uuid | path] <ID> [<output file>]


[root@53_mach ~]# nmcli c add type
6lowpan           adsl              bridge            ethernet          ip-tunnel         ovs-bridge        ovs-port          tun               vrf               wimax
802-11-olpc-mesh  bluetooth         bridge-slave      generic           macsec            ovs-dpdk          pppoe             veth              vxlan             wireguard
802-11-wireless   bond              cdma              gsm               macvlan           ovs-interface     team              vlan              wifi              wpan
802-3-ethernet    bond-slave        dummy             infiniband        olpc-mesh         ovs-patch         team-slave        vpn               wifi-p2p


[root@53_mach ~]# nmcli c add  help
Usage: nmcli connection add { ARGUMENTS | help }

ARGUMENTS := COMMON_OPTIONS TYPE_SPECIFIC_OPTIONS SLAVE_OPTIONS IP_OPTIONS [-- ([+|-]<setting>.<property> <value>)+]

  COMMON_OPTIONS:
                  type <type>
                  ifname <interface name> | "*"
                  [con-name <connection name>]
                  [autoconnect yes|no]
                  [save yes|no]
                  [master <master (ifname, or connection UUID or name)>]
                  [slave-type <master connection type>]

  TYPE_SPECIFIC_OPTIONS:
    ethernet:     [mac <MAC address>]
                  [cloned-mac <cloned MAC address>]
                  [mtu <MTU>]

    wifi:         ssid <SSID>
                  [mac <MAC address>]
                  [cloned-mac <cloned MAC address>]
                  [mtu <MTU>]
                  [mode infrastructure|ap|adhoc]

    wimax:        [mac <MAC address>]
                  [nsp <NSP>]

    pppoe:        username <PPPoE username>
                  [password <PPPoE password>]
                  [service <PPPoE service name>]
                  [mtu <MTU>]
                  [mac <MAC address>]

    gsm:          apn <APN>
                  [user <username>]
                  [password <password>]

    cdma:         [user <username>]
                  [password <password>]

    infiniband:   [mac <MAC address>]
                  [mtu <MTU>]
                  [transport-mode datagram | connected]
                  [parent <ifname>]
                  [p-key <IPoIB P_Key>]

    bluetooth:    [addr <bluetooth address>]
                  [bt-type panu|nap|dun-gsm|dun-cdma]

    vlan:         dev <parent device (connection UUID, ifname, or MAC)>
                  id <VLAN ID>
                  [flags <VLAN flags>]
                  [ingress <ingress priority mapping>]
                  [egress <egress priority mapping>]
                  [mtu <MTU>]

    bond:         [mode balance-rr (0) | active-backup (1) | balance-xor (2) | broadcast (3) |
                        802.3ad    (4) | balance-tlb   (5) | balance-alb (6)]
                  [primary <ifname>]
                  [miimon <num>]
                  [downdelay <num>]
                  [updelay <num>]
                  [arp-interval <num>]
                  [arp-ip-target <num>]
                  [lacp-rate slow (0) | fast (1)]

    bond-slave:   master <master (ifname, or connection UUID or name)>

    team:         [config <file>|<raw JSON data>]

    team-slave:   master <master (ifname, or connection UUID or name)>
                  [config <file>|<raw JSON data>]

    bridge:       [stp yes|no]
                  [priority <num>]
                  [forward-delay <2-30>]
                  [hello-time <1-10>]
                  [max-age <6-40>]
                  [ageing-time <0-1000000>]
                  [multicast-snooping yes|no]
                  [mac <MAC address>]

    bridge-slave: master <master (ifname, or connection UUID or name)>
                  [priority <0-63>]
                  [path-cost <1-65535>]
                  [hairpin yes|no]

    vpn:          vpn-type vpnc|openvpn|pptp|openconnect|openswan|libreswan|ssh|l2tp|iodine|...
                  [user <username>]

    olpc-mesh:    ssid <SSID>
                  [channel <1-13>]
                  [dhcp-anycast <MAC address>]

    adsl:         username <username>
                  protocol pppoa|pppoe|ipoatm
                  [password <password>]
                  [encapsulation vcmux|llc]

    tun:          mode tun|tap
                  [owner <UID>]
                  [group <GID>]
                  [pi yes|no]
                  [vnet-hdr yes|no]
                  [multi-queue yes|no]

    ip-tunnel:    mode ipip|gre|sit|isatap|vti|ip6ip6|ipip6|ip6gre|vti6
                  remote <remote endpoint IP>
                  [local <local endpoint IP>]
                  [dev <parent device (ifname or connection UUID)>]

    macsec:       dev <parent device (connection UUID, ifname, or MAC)>
                  mode <psk|eap>
                  [cak <key> ckn <key>]
                  [encrypt yes|no]
                  [port 1-65534]


    macvlan:      dev <parent device (connection UUID, ifname, or MAC)>
                  mode vepa|bridge|private|passthru|source
                  [tap yes|no]

    vxlan:        id <VXLAN ID>
                  [remote <IP of multicast group or remote address>]
                  [local <source IP>]
                  [dev <parent device (ifname or connection UUID)>]
                  [source-port-min <0-65535>]
                  [source-port-max <0-65535>]
                  [destination-port <0-65535>]

    wpan:         [short-addr <0x0000-0xffff>]
                  [pan-id <0x0000-0xffff>]
                  [page <default|0-31>]
                  [channel <default|0-26>]
                  [mac <MAC address>]

    6lowpan:      dev <parent device (connection UUID, ifname, or MAC)>
    dummy:

  SLAVE_OPTIONS:
    bridge:       [priority <0-63>]
                  [path-cost <1-65535>]
                  [hairpin yes|no]

    team:         [config <file>|<raw JSON data>]

  IP_OPTIONS:
                  [ip4 <IPv4 address>] [gw4 <IPv4 gateway>]
                  [ip6 <IPv6 address>] [gw6 <IPv6 gateway>]


[root@53_mach ~]# nmcli c modify help
Usage: nmcli connection modify { ARGUMENTS | help }

ARGUMENTS := [id | uuid | path] <ID> ([+|-]<setting>.<property> <value>)+

Modify one or more properties of the connection profile.
The profile is identified by its name, UUID or D-Bus path. For multi-valued
properties you can use optional '+' or '-' prefix to the property name.
The '+' sign allows appending items instead of overwriting the whole value.
The '-' sign allows removing selected items instead of the whole value.

ARGUMENTS := remove <setting>

Remove a setting from the connection profile.

Examples:
nmcli con mod home-wifi wifi.ssid rakosnicek
nmcli con mod em1-1 ipv4.method manual ipv4.addr "192.168.1.2/24, 10.10.1.5/8"
nmcli con mod em1-1 +ipv4.dns 8.8.4.4
nmcli con mod em1-1 -ipv4.dns 1
nmcli con mod em1-1 -ipv6.addr "abbe::cafe/56"
nmcli con mod bond0 +bond.options mii=500
nmcli con mod bond0 -bond.options downdelay
nmcli con mod em1-1 remove sriov

进入nmcli交互式配置界面

nmcli c 交互式配置界面
[root@53_mach ~]# nmcli c edit ens26f2

===| nmcli interactive connection editor |===

Editing existing '802-3-ethernet' connection: 'ens26f2'

Type 'help' or '?' for available commands.
Type 'print' to show all the connection properties.
Type 'describe [<setting>.<prop>]' for detailed property description.

You may edit the following settings: connection, 802-3-ethernet (ethernet), 802-1x, dcb, sriov, ethtool, match, ipv4, ipv6, hostname, tc, proxy
nmcli>
activate  back      describe  goto      help      nmcli     print     quit      remove    save      set       verify
nmcli> set
802-1x                     802-3-ethernet (ethernet)  connection                 dcb                        ethtool                    sriov
nmcli>
nmcli>
nmcli>
nmcli> print
802-3-ethernet  all             connection      ipv4            ipv6            proxy           sriov
nmcli> print all
===============================================================================
                     Connection profile details (ens26f2)
===============================================================================
connection.id:                          ens26f2
connection.uuid:                        b32430e3-a1f6-4129-b2a3-04382c5f5c67
connection.stable-id:                   --
connection.type:                        802-3-ethernet
connection.interface-name:              ens26f2
connection.autoconnect:                 yes
connection.autoconnect-priority:        0
connection.autoconnect-retries:         -1 (default)
connection.multi-connect:               0 (default)
connection.auth-retries:                -1
connection.timestamp:                   1720261568
connection.read-only:                   no
connection.permissions:                 --
connection.zone:                        --
connection.master:                      --
connection.slave-type:                  --
connection.autoconnect-slaves:          -1 (default)
connection.secondaries:                 --
connection.gateway-ping-timeout:        0
connection.metered:                     unknown
connection.lldp:                        default
connection.mdns:                        -1 (default)
connection.llmnr:                       -1 (default)
connection.wait-device-timeout:         -1
-------------------------------------------------------------------------------
802-3-ethernet.port:                    --
802-3-ethernet.speed:                   0
802-3-ethernet.duplex:                  --
802-3-ethernet.auto-negotiate:          no
802-3-ethernet.mac-address:             --
802-3-ethernet.cloned-mac-address:      --
802-3-ethernet.generate-mac-address-mask:--
802-3-ethernet.mac-address-blacklist:   --
802-3-ethernet.mtu:                     auto
802-3-ethernet.s390-subchannels:        --
802-3-ethernet.s390-nettype:            --
802-3-ethernet.s390-options:            --
802-3-ethernet.wake-on-lan:             default
802-3-ethernet.wake-on-lan-password:    --
802-3-ethernet.accept-all-mac-addresses:-1 (default)
-------------------------------------------------------------------------------
ipv4.method:                            manual
ipv4.dns:                               --
ipv4.dns-search:                        --
ipv4.dns-options:                       --
ipv4.dns-priority:                      0
ipv4.addresses:                         251.9.195.7/24
ipv4.gateway:                           --
ipv4.routes:                            --
ipv4.route-metric:                      -1
ipv4.route-table:                       0 (unspec)
ipv4.routing-rules:                     --
ipv4.ignore-auto-routes:                no
ipv4.ignore-auto-dns:                   no
ipv4.dhcp-client-id:                    --
ipv4.dhcp-iaid:                         --
ipv4.dhcp-timeout:                      0 (default)
ipv4.dhcp-send-hostname:                yes
ipv4.dhcp-hostname:                     --
ipv4.dhcp-fqdn:                         --
ipv4.dhcp-hostname-flags:               0x0 (none)
ipv4.never-default:                     no
ipv4.may-fail:                          yes
ipv4.required-timeout:                  -1 (default)
ipv4.dad-timeout:                       -1 (default)
ipv4.dhcp-vendor-class-identifier:      --
ipv4.dhcp-reject-servers:               --
-------------------------------------------------------------------------------
ipv6.method:                            auto
ipv6.dns:                               --
ipv6.dns-search:                        --
ipv6.dns-options:                       --
ipv6.dns-priority:                      0
ipv6.addresses:                         --
ipv6.gateway:                           --
ipv6.routes:                            --
ipv6.route-metric:                      -1
ipv6.route-table:                       0 (unspec)
ipv6.routing-rules:                     --
ipv6.ignore-auto-routes:                no
ipv6.ignore-auto-dns:                   no
ipv6.never-default:                     no
ipv6.may-fail:                          yes
ipv6.required-timeout:                  -1 (default)
ipv6.ip6-privacy:                       -1 (unknown)
ipv6.addr-gen-mode:                     stable-privacy
ipv6.ra-timeout:                        0 (default)
ipv6.dhcp-duid:                         --
ipv6.dhcp-iaid:                         --
ipv6.dhcp-timeout:                      0 (default)
ipv6.dhcp-send-hostname:                yes
ipv6.dhcp-hostname:                     --
ipv6.dhcp-hostname-flags:               0x0 (none)
ipv6.token:                             --
-------------------------------------------------------------------------------
proxy.method:                           none
proxy.browser-only:                     no
proxy.pac-url:                          --
proxy.pac-script:                       --
-------------------------------------------------------------------------------
sriov.total-vfs:                        3
sriov.vfs:                              --
sriov.autoprobe-drivers:                1 (true)
-------------------------------------------------------------------------------
nmcli> q

重新加载网络连接的配置

[root@localhost network-scripts]# nmcli c reload    # 重载所有ifcfg或route到connection
# 不会立即生效
# 重载指定ifcfg或route到connection(不会立即生效)
nmcli c load /etc/sysconfig/network-scripts/ifcfg-ethX
nmcli c load /etc/sysconfig/network-scripts/route-eth

查看一个连接的详细信息【默认所有字段】

[root@localhost ~]# nmcli c show enp129s0f0
[root@localhost ~]# nmcli connection show --active # 显示所有激活的连接
# 只显示 该 连接的 以 ipv4 开头的字段信息
[root@localhost ~]# nmcli  -f ipv4 c  show  enp125s0f2
# 或者
[root@localhost ~]# nmcli  -f IP4  c  show  eth125f2-3
    IP4.ADDRESS[1]:                         124.124.124.124/24
    IP4.ADDRESS[2]:                         172.16.13.150/17
    IP4.GATEWAY:                            172.16.1.10
    IP4.ROUTE[1]:                           dst = 0.0.0.0/0, nh = 172.16.1.10, mt = 114
    IP4.ROUTE[2]:                           dst = 124.124.124.0/24, nh = 0.0.0.0, mt = 114
    IP4.ROUTE[3]:                           dst = 172.16.0.0/17, nh = 0.0.0.0, mt = 114
    IP4.DNS[1]:                             172.16.1.10
    IP4.DOMAIN[1]:                          sit.com
# 记忆方法: -f 【field】 代表字段 , 过滤 其他字段 信息同理.

对连接的启用和关闭

[root@localhost ~]# nmcli  c up enp125s0f2        # 相当于ifup
[root@localhost ~]# nmcli  c down  enp125s0f2     # 相当于ifdown
# 立即生效

修改连接的名字

[root@localhost ~]# nmcli con mod ens33 connection.id ens33con

添加 一个 连接

添加 802-3-ethernet 链接

[root@localhost ~]# nmcli con add con-name eth125s1 type 802-3-ethernet  autoconnect yes ifname enp125s0f1
# 说明
	    ifname是物理设备,网络接口
        type的类型设置为ethernet:以太网
        autoconnect:有网络时自动连接
# 注意: 当该设备 不存在 激活连接时, 则自动激活 当前所新创建连接, 否则 为 down。 设备唯一性原则。
# 添加连接的同时 设置 IP 地址, 
[root@localhost ~]# nmcli connection add type 802-3-ethernet con-name ens ifname ens3 ip4 192.168.1.9/24 gw4 192.168.1.1

添加 ethernet 链接

[root@localhost ~]# nmcli con add con-name eth125s1 type ethernet  autoconnect yes ifname enp125s0f1
# 说明
	    ifname是物理设备,网络接口
        type的类型设置为ethernet:以太网
        autoconnect:有网络时自动连接
# 注意: 当该设备 不存在 激活连接时, 则自动激活 当前所新创建连接, 否则 为 down。 设备唯一性原则。
# 添加连接的同时 设置 IP 地址, 
[root@localhost ~]# nmcli connection add type ethernet con-name ens ifname ens3 ip4 192.168.1.9/24 gw4 192.168.1.1

添加 bond 和 bond-slave 链接

# 1. 创建名称为bond1的绑定
nmcli con add type bond con-name bond1 ifname bond1 mode active-backup  # 模式以具体的模式为准
# 2. 将 enp131s0f0 增加到bond1
nmcli connection add type bond-slave ifname enp131s0f0 master bond1
# 3. 将 enp131s0f1 增加到bond1
nmcli connection add type bond-slave ifname enp131s0f1 master bond1
# 4. 启动从属接口 enp131s0f0
nmcli connection up bond-slave-enp131s0f0
# 5. 启动从属接口 enp131s0f1
nmcli connection up bond-slave-enp131s0f1
# 6. 启动绑定
nmcli connection up  bond1

添加 Vlan 链接

# 添加 vlan 接口: 链接名自动为: vlan-ens26f3.55 ; 设备名自动为: ens26f3.55
nmcli c add type vlan ifname ens26f3.55 dev ens26f3 id 55 vlan.parent ens26f3 
# 设置
nmcli c modify vlan-ens26f3.55  ipv4.addresses 44.44.44.154/24 ipv4.method manual autoconnect yes
# 再加载
nmcli d reapply ens26f3.55

添加 Macvlan 链接

# 添加 Macvlan 接口: 链接名自动为: mac02; 设备名自动为: mac02
nmcli c add type macvlan ifname mac02 con-name mac02 macvlan.mode private macvlan.parent ens26f3 macvlan.promiscuous yes
# 设置
nmcli c modify mac02  ipv4.addresses 44.44.44.154/24 ipv4.method manual autoconnect yes
# 再加载
nmcli  c reload mac02
nmcli d reapply mac02

添加 Vxlan 链接

# 添加 Vxlan 接口: 链接名自动为: vxlan02 ; 设备名自动为: vxlan02
nmcli c add type vxlan ifname vxlan02 con-name vxlan02  vxlan.id 100 vxlan.parent ens26f3 vxlan.destination-port 4789 vxlan.remote 33.33.33.22
# 设置
nmcli c modify vxlan02  ipv4.addresses 44.44.66.154/24 ipv4.method manual autoconnect yes
# 再加载
nmcli  c reload vxlan02
nmcli d reapply vxlan02

添加 Gre 隧道链接

# 添加 Gre 接口: 链接名自动为: gre02 ; 设备名自动为: gre02
nmcli c add type ip-tunnel ifname gre02 con-name gre02 ip-tunnel.mode gre ip-tunnel.local 15.15.15.33 ip-tunnel.remote 15.15.15.22 ip-tunnel.ttl 255 ip-tunnel.parent ens26f3
    # 可简写为
nmcli c add type ip-tunnel ifname gre02 con-name gre02 mode gre local 15.15.15.33 remote 15.15.15.22 ip-tunnel.ttl 255 ip-tunnel.parent ens26f3 dev ens26f3
# 设置
nmcli c modify gre02  ipv4.addresses 10.10.10.1/24 ipv4.method manual autoconnect yes
# 再加载
nmcli  c reload gre02
nmcli d reapply gre02

添加 Bridge 和 bridge-slave 链接

# 添加 Bridge 接口: 链接名自动为: vxlan02 ; 设备名自动为: vxlan02
nmcli c add type Bridge
# 设置
nmcli c modify vxlan02  ipv4.addresses 44.44.66.154/24 ipv4.method manual autoconnect yes
# 再加载
nmcli  c reload vxlan02
nmcli d reapply vxlan02

添加 ovs-dpdk 链接

# 添加 ovs-dpdk 接口: 链接名自动为: vxlan02 ; 设备名自动为: vxlan02
nmcli c add type ovs-dpdk
# 设置
nmcli c modify vxlan02  ipv4.addresses 44.44.66.154/24 ipv4.method manual autoconnect yes
# 再加载
nmcli  c reload vxlan02
nmcli d reapply vxlan02

添加 ovs-bridge 链接

# 添加 ovs-bridge 接口: 链接名自动为: vxlan02 ; 设备名自动为: vxlan02
nmcli c add type ovs-bridge
# 设置
nmcli c modify vxlan02  ipv4.addresses 44.44.66.154/24 ipv4.method manual autoconnect yes
# 再加载
nmcli  c reload vxlan02
nmcli d reapply vxlan02

删除一个连接

[root@localhost ~]# nmcli connection delete  enp125s0f1   # 类似于 ifdown 并删除 ifcfg

添加一个 IP 地址

[root@localhost ~]# nmcli connection modify  eth125f2-3 +ipv4.addresses 126.126.126.126/24
[root@localhost ~]# nmcli c up eth125f2-3  
# 注意: 添加完 IP 信息 , 需重启 该连接, 变化信息才可生效.
[root@localhost ~]# nmcli d reaply eth125f2-3 

删除一个 IP 地址

[root@localhost ~]# nmcli connection  modify eth125f2-3  -ipv4.addresses 125.125.125.125/24
[root@localhost ~]# nmcli c up eth125f2-3
# 注意: 删除 完 IP 信息 , 需重启 该连接, 变化信息才可生效.

👉 修改 连接其他字段信息 与 修改 IP 信息同理

重置所有 IP 地址信息

# 不使用 + - 号,表示是修改
[root@localhost ~]# nmcli connection  modify  eth125f2-3 ipv4.addresses  '125.125.125.125/24, 127.127.127.127/24'
[root@localhost ~]# nmcli  c up eth125f2-3
# 注意: 重置 完 IP 信息 , 需重启 该连接, 变化信息才可生效.

# 创建connection,配置静态 IPV4 ip(等同于配置ifcfg,其中BOOTPROTO=none,并ifup启动)
nmcli c add type ethernet con-name ethX ifname ethX ipv4.addr 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.method manual
# 或者添加 IPV6 地址
nmcli c add type ethernet con-name ethX ifname ethX ipv6.addresses "2001:4f8:212:1c60:20c:29ff:fe2d:eaa0/64" ipv6.method manual autoconnect yes
# 或者同时添加
nmcli c add type ethernet con-name ethX ifname ethX ipv4.addr 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.method manual ipv6.addresses "2001:4f8:212:1c60:20c:29ff:fe2d:eaa0/64" ipv6.method manual autoconnect yes
# 创建connection,配置动态ip(等同于配置ifcfg,其中BOOTPROTO=dhcp,并ifup启动)
nmcli c add type ethernet con-name ethX ifname ethX ipv4.method auto

添加/删除 DNS 与 IP 同理

[root@localhost ~]# nmcli connection  modify  eth125f2-3 +ipv4.dns 114.114.114.114   # 添加 DNS 
[root@localhost ~]# nmcli  c up eth125f2-3
[root@localhost ~]# nmcli connection  modify  eth125f2-3 ipv4.dns '114.114.114.114,8.8.8.8,112.112.112.112'
[root@localhost ~]# nmcli  c up eth125f2-3
[root@localhost ~]# nmcli connection  modify  eth125f2-3 -ipv4.dns 8.8.8.8           # 删除 DNS 
[root@localhost ~]# nmcli  c up eth125f2-3

修改网关

[root@localhost ~]# nmcli  connection  modify  eth125f2-3 +ipv4.gateway  125.125.125.1
[root@localhost ~]# nmcli  c up eth125f2-3
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/119)
[root@localhost ~]# nmcli -f IP4 connection  show eth125f2-3  
# 注意: 网关 只 可有一个, 添加不了多个

设置主机名

#查询当前主机名
nmcli general hostname
#修改主机名
nmcli general hostname new-hostname
#重启hostname(主机名)服务
systemctl restart systemd-hostnamed

创建和修改网桥

nmcli con add type bridge con-name br0
nmcli con add type bridge-slave autoconnect yes con-name eno3 ifname eno3 master br0
nmcli con up br0
nmcli con down eno3
nmcli con mod eno3 ipv4.method disabled
nmcli con up eno3
# 删除网桥
nmcli con delete br0
nmcli con mod eno3 ipv4.addresses 10.58.83.191/24 ipv4.gateway 10.58.83.1 ipv4.method manual
nmcli con up eno3

SRIOV 相关

# 创建 VF 口
nmcli c modify ens22f0 sriov.total-vfs 1
    # 其次卸载加载驱动即可
nmcli c modify ens26f2 sriov.total-vfs 3 sriov.autoprobe-drivers true sriov.vfs 2

networking 对象

网络状态的打开和关闭

[root@localhost network-scripts]# nmcli networking off
[root@localhost network-scripts]# nmcli networking on

其他

# 关闭无线网络(NM默认启用无线网络)
nmcli r all off
# 查看NM纳管状态
nmcli n
# 开启NM纳管
nmcli n on
# 关闭NM纳管(谨慎执行)
nmcli n off
# 监听事件
nmcli m
# 查看NM本身状态
nmcli
# 检测NM是否在线可用
nm-online
# 接管设备
nmcli networking on
nmcli connection show 
nmcli device status 
nmcli device set ens33 managed yes

参考网址

Open Euler 系统网络使用教程 --- nmcli

​ Unix 命令一般都带有参数, 而参数的传递可以直接给,也可间接地转化,例如自动将标准输入作为参数。

lspci -vvv | grep -i ethernet

posted @ 2021-01-06 22:19  梭梭666  阅读(27)  评论(0编辑  收藏  举报
返回顶部