[命令] Linux 命令 nmcli (网络管理)

内容一:整个网络的管理

1.1 开启整个网络

# nmcli network on

或者:

# nmcli net on

1.2 关闭整个网络

# nmcli network off

或者:

# nmcli net off

内容二:管理网络设备

2.1 显示网络设备的信息

2.1.1 显示所有网络设备
# nmcli connection show

或者:

# nmcli conneciton

或者:

# nmcli con show

或者:

# nmcli con
2.1.2 显示被激活的网络设备
# nmcli connection show --active

或者:

# nmcli conneciton --active

或者:

# nmcli con show --active

或者:

# nmcli con --active

2.2 显示某一个网络设备是否激活

# nmcli device connect <network device name>

或者:

# nmcli dev con <network device name>

2.3 显示网络设备的联通状态

# nmcli device status

或者:

# nmcli dev status

2.4 添加网络设备

# nmcli connection add con-name <custom network card alias> ifname <network device name> type ethernet

(补充:这里 con-name 是指要指定一个自定义的网卡别名,ifname 是指要指明网络设备名)

或者:

# nmcli con add con-name <custom network card alias> ifname <network device name> type ethernet

(补充:这里 con-name 是指要指定一个自定义的网卡别名,ifname 是指要指明网络设备名)

2.5 删除网络设备

# nmcli connection delete <custom network card alias>

或者:

# nmcli con del <custom network card alias>

2.6 激活一个网络设备

# nmcli device connect <network device name>

或者:

# nmcli dev con <network device name>

2.7 取消激活一个网络设备

# nmcli device disconnect <network device name>

或者:

# nmcli dev dis <network device name>

内容三:IP 地址管理

3.1 设置 IP 地址

3.1.1 设置 IP 地址的格式
# nmcli connection modify <custom network card alias> ipv4.address <IP address>/<subnet mask> ipv4.gateway <gateway IP address> ipv4.dns <DNS IP address> autoconnect yes
3.1.2 设置 IP 地址的案例
# nmcli connection modify eth0 ipv4.address 192.168.1.1/24 ipv4.gateway 192.168.1.1 ipv4.dns 192.168.1.254 autoconnect yes

(补充:这里以添加给 eth0 网卡添加静态 IP 地址 192.168.1.1/24,网关 IP 地址 192.168.1.1,DNS 192.168.1.254 并开机自启为例)

3.2 让 IP 地址生效

3.2.1 让 IP 地址生效的格式
# nmcli connection up <custom network card alias>
3.2.2 让 IP 地址生效的案例
# nmcli connection down eth0

3.3 添加或删除额外的 IP 地址

3.3.1 添加额外的 IP 地址
3.3.1.1 添加额外的 IP 地址的格式
# nmcli connection modify <custom network card alias> +ipv4.address <IP address>/<subnet mask>
3.3.1.2 添加额外的 IP 地址的案例
# nmcli connection modify eth0 +ipv4.addresses 192.168.0.100/24

(补充:这里以添加给 eth0 网卡额外添加 IP 地址 192.168.1.1/24 为例)

3.3.2 删除额外的 IP 地址
3.3.2.1 删除额外的 IP 地址的格式
# nmcli connection modify <custom network card alias> -ipv4.address <IP address>/<subnet mask>
3.3.2.2 删除额外的 IP 地址的案例
# nmcli connection modify eth0 -ipv4.addresses 192.168.0.100/24

(补充:这里以删除 eth0 网卡上的额外 IP 地址 192.168.1.1/24 为例)

3.4 添加或删除网关的 IP 地址 (添加或删除网关)

3.4.1 添加网关的 IP 地址 (添加网关)
3.4.1.1 添加网关的 IP 地址 (添加网关)
3.4.1.1.1 添加网关 IP 地址的格式 (添加网关)
# nmcli connection modify <custom network card alias> ipv4.gateway <gateway IP address>
3.4.1.1.2 添加网关 IP 地址的案例 (添加网关)
# nmcli connection modify eth0 ipv4.gateway 192.168.1.1

(补充:这里以给 eth0 网卡添加网关 IP 地址 192.168.1.1 为例)

3.4.1.2 让添加的网关 IP 地址生效 (添加网关)
3.4.1.2.1 让添加的网关 IP 地址生效的格式 (添加网关)
# nmcli connection up <custom network card alias>
3.4.1.2.2 让添加的网关 IP 地址生效的案例 (添加网关)
# nmcli connection up eth0

(补充:这里以让给 eth0 网卡添加的网关 IP 生效为例)

3.4.2 删除网关的 IP 地址 (删除网关)
3.4.2.1 删除网关的 IP 地址 (删除网关)
3.4.2.1.1 删除网关的 IP 地址格式 (删除网关)
# nmcli connection modify <custom network card alias> ipv4.gateway ""
3.4.2.1.2 删除网关的 IP 地址的案例 (删除网关)
# nmcli connection modify eth0 ipv4.gateway ""

(补充:这里以给 eth0 网卡删除网关的 IP 地址 192.168.1.1 为例)

3.4.2.2 让删除网关的操作生效 (删除网关)
3.4.2.2.1 让删除网关的操作生效的格式 (删除网关)
# nmcli connection up <custom network card alias>
3.4.2.2.2 让删除网关的操作生效的案例 (删除网关)
# nmcli connection up eth0

(补充:这里以让 eth0 网卡删除网关的操作生效为例)

内容四:路由管理

4.1 添加路由

4.1.1 添加路由的格式
# nmcli con mod <custom network card alias> ipv4.routes "<network segment> <gateway IP address>"
4.1.2 添加路由的案例
# nmcli con mod eth0 ipv4.routes "192.168.2.0/24 192.168.3.1"

(补充:这里以给 eth0 网卡添加 192.168.2.0/24 通过 192.168.3.1 的路由为例)

(注意:以后指向 192.168.2.0/24 的流量都会通过网卡 eth0)

4.2 让路由生效

4.2.1 让路由生效的格式
# nmcli connection up <custom network card alias>
4.2.2 让路由生效的案例
# nmcli connection up eth0

(补充:这里以让 eth0 网卡生效为例)

[步骤] team 网卡捆绑组的添加 (CentOS Linux & RHEL 版)

步骤一:显示现有的网卡有哪些

# nmcli connection show

步骤二:添加网卡捆绑组

2.1 添加网卡捆绑组

2.1.1 添加网卡捆绑组的命令格式
# nmcli connection add type team con-name <connection name of network card binding group> ifname <name of network card binding group> config ‘{“runner”:{“name”:”activebackup”}}’
2.1.2 添加网卡捆绑组的案例
# nmcli connection add type team con-name team0 ifname team0 config ‘{“runner”:{“name”:”activebackup”}}’

2.2 添加网卡捆绑组的子网卡

2.2.1 添加网卡捆绑组子网卡的命令格式
# nmcli connection add type team-slave con-name <network card connection name> ifname <subnet card name> master <name of network card binding group>
2.2.2 添加网卡捆绑组子网卡的案例
# nmcli con add type team-slave con-name team0-port0 ifname eth0 master team0
# nmcli con add type team-slave con-name team0-port1 ifname eth1 master team0

步骤三:给网卡捆绑组配置 IP 地址

# nmcli connection modify team0 ipv4.addresses 192.168.100.5/24 ipv4.gateway 192.168.100.1 ipv4.method manual autoconnect yes

步骤四:启动网卡捆绑组

4.1 显示现有的网卡捆绑组和对应的子网卡有哪些

# nmcli connection show

4.2 启动网卡捆绑组里的子网卡

4.2.1 启动网卡捆绑组里子网卡的命令格式
# nmcli connection up <subnet card name>
4.2.2 启动网卡捆绑组里的子网卡
# nmcli connection up team0-port0
# nmcli connection up team0-port1

或者:

# nmcli connection reload

4.3 启动网卡捆绑组

4.3.1 启动网卡捆绑组的命令格式
# nmcli connection up <name of network card binding group>
4.3.2 启动网卡捆绑组的案例
# nmcli connection up team0
4.3.3 显示网卡捆绑组的状态
# teamdctl team1 status

步骤五:确认网卡捆绑组的 IP 地址配置成功

# ip address show 

(补充:如果网卡组里出现了我们配置的 IP 地址,则代表 IP 地址配置成功)

步骤六:测试 team 网卡捆包组实现了主从互备

6.1 检查第 2 张子网卡是否工作正常

6.1.1 停用第 1 张子网卡
# ifconfig team0-eth0 down

(补充:这里以停用子网卡 team0-eth0 为例)

6.1.2 检查现在网络是否正常

(步骤略)

6.1.3 启动第 1 张子网卡
# ifconfig team0-eth0 up

(补充:这里以启用子网卡 team0-eth0 为例)

6.2 检查第 1 张子网卡是否工作正常

6.2.1 停用第 2 张子网卡
# ifconfig team0-eth1 down

(补充:这里以停用子网卡 team0-eth1 为例)

6.2.2 检查现在网络是否正常

(步骤略)

6.2.3 启动第 2 张子网卡
# ifconfig team0-eth1 up

(补充:这里以启用子网卡 team0-eth1 为例)

[内容] Linux 网卡速率的显示

方法一:通过网卡当前的工作状态得知

# ethtool ens192
Settings for ens192:
        Supported ports: [ TP ]
        Supported link modes:   1000baseT/Full 
                                10000baseT/Full 
        Supported pause frame use: No
        Supports auto-negotiation: No
        Supported FEC modes: Not reported
        Advertised link modes:  Not reported
        Advertised pause frame use: No
        Advertised auto-negotiation: No
        Advertised FEC modes: Not reported
        Speed: 10000Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: off
        MDI-X: Unknown
        Supports Wake-on: uag
        Wake-on: d
        Link detected: yes

(补充:由上面的输出结果可以得知 ens192 网卡目前工作在 1000baseT/Full 状态)

方法二:通过网卡的型号得知

# lspci -vvv | grep Ethernet
0b:00.0 Ethernet controller: VMware VMXNET3 Ethernet Controller (rev 01)
        Subsystem: VMware VMXNET3 Ethernet Controller

(补充:由上面的输出结果可以得知,网卡设备为 VMware VMXNET3 Ethernet Controller (rev 01) ,我们可以在网上搜索此设备名以得知此网卡的速率)

[命令] Linux IP 命令 ip (管理和显示 IP 地址)

内容一:通过 ip 命令显示网卡信息

1.1 通过 ip 命令显示所有网卡的信息

# ip address show

或者:

# ip a s

1.2 通过 ip 命令显示某一张网卡的信息

1.2.1 通过 ip 命令显示某一张网卡的信息的格式
# ip address show <network card name>

或者:

# ip a s eth0 <network card name>
1.2.2 通过 ip 命令显示某一张网卡的信息的案例
# ip address show  eth0

或者:

# ip a s  eth0

(补充:这里以显示 eth0 网卡为例)

内容二:通过 ip 命令显示瞬间网络流量

2.1 通过 ip 命令显示所有网卡的瞬间网络流量

# ip -s link show

或者:

# ip -s -s link show

或者:

# ip -s -h link show

(补充:这里的 -h 参数作用是以人类可读的方式进行显示)

2.2 通过 ip 命令显示某一张网卡瞬间网络流量

2.2.1 通过 ip 命令显示某一张网卡瞬间网络流量的格式
# ip -s link show <network card name>

或者:

# ip -s -s link show <network card name>

或者:

# ip -s -h link show <network card name>

(补充:这里的 -h 参数作用是以人类可读的方式进行显示)

2.2.2 通过 ip 命令显示某一张网卡瞬间网络流量的案例
# ip -s link show eth0

或者:

# ip -s -s link show eth0

或者:

# ip -s -h link show eth0


补充:
1) 这里以显示 eth0 网卡为例
2) 这里的 -h 参数作用是以人类可读的方式进行显示

内容三:通过 ip 命令显示网关 IP 地址

# ip route show

或者:

# ip route

内容四:通过 ip 命令显示同网段里的网络邻居

# ip neighbour show

或者:

# ip neighbor show

内容五:使用 ip 命令管理 IP 地址

5.1 使用 ip 命令添加临时 IP 地址

5.1.1 使用 ip 命令添加临时 IP 地址的格式
# ip a add <static IP address>/<subnet mask> dev <network card name>

或者:

# ip addr add <static IP address>/<subnet mask> dev <network card name>

或者:

# ip address add <static IP address>/<subnet mask> dev <network card name>
5.1.2 使用 ip 命令给网卡添加临时 IP 地址的案例
# ip a add 10.0.0.1/24 dev eth0

(补充:这里以给 eth0 网卡添加 10.0.0.1/24 IP 地址为例)

5.1.3 使用 ip 命令给子网卡添加临时 IP 地址的案例
# ip address add 10.0.0.1/24 dev eth0:1

(补充:这里以给 eth0:1 网卡添加 10.0.0.1/24 IP 地址为例)

5.1.4 使用 ip 命令启动网卡上的 IP 地址
# ip link set eth0 up

(补充:这里以启动 eth0 网卡为例)

5.2 使用 ip 命令临时删除 IP 地址

5.2.1 临时删除 ip 地址的格式
# ip a del <static IP address>/<subnet mask> dev <network card name>

或者:

# ip addr delete <static IP address>/<subnet mask> dev <network card name>

或者:

# ip address delete <static IP address>/<subnet mask> dev <network card name>
5.2.2 临时删除网卡 ip 地址的案例
# ip address delete 10.0.0.1/24 dev eth0

(补充:这里以删除 eth0 网卡的 10.0.0.1/24 IP 地址为例)

5.2.3 临时删除子网卡 ip 地址的案例
# ip address del 10.0.0.1/24 dev eth0:1

(补充:这里以删除 eth0:1 网卡的 10.0.0.1/24 IP 地址为例)

5.2.4 补充:使用 ip 命令关闭网卡上的 IP 地址(只关闭不删除)
# ip link set eth0 down

(补充:这里以关闭 eth0 网卡为例)

内容六:使用 ip 命令管理临时路由表

6.1 添加临时路由表

6.1.1 添加临时路由表的格式
# ip route add <IP address>/<subnet mask> via <network gateway address> dev <network card name>
6.1.2 添加临时路由表的案例
# ip route add 10.10.10.0/24 via 10.10.10.1 dev eth0

(补充:这里以在 eth0 网卡上让所有 10.10.10.0/24 网段的 IP 地址通过 10.10.10.1 网关 IP 地址为例)

6.2 临时删除路由表

6.2.1 临时删除路由表的格式
# ip route del <IP address>/<subnet mask> via <network gateway address> dev <network cart name>
6.2.2 临时删除路由表的案例
# ip route del 10.10.10.0/24 via 10.10.10.1 dev eth0

(补充:这里以删除在 eth0 网卡上让所有 10.10.10.0/24 网段的 IP 地址通过 10.10.10.1 网关 IP 地址为例)

6.3 添加临时默认网关

6.3.1 添加临时默认网关的格式
# ip route add default via <network gateway address> dev <network card name>
6.3.2 添加临时默认网关的案例
# ip route add default via 10.10.10.1 dev eth0

(补充:这里以将默认网关设置成通过 eth0 网卡 IP 地址为 10.10.10.1 为例)