一、系统环境说明
演示系统环境是银河麒麟KylinV10服务器系统 系统ISO文件版本Kylin-Server-V10-SP3-2403-Release-20240426-x86_64
二、linux命令行配置网卡信息
2.1、nmtui 命令linux下是可视化配置网卡信息
选择==编辑链接==就是配置网卡信息:
2.2、ifconfig命令
ifconfig命令是linux下网卡临时配置命令,重启网卡服务,网卡配置的IP就消失了
ifconfig ens33:1 10.0.0.20 netmask 255.255.255.0
给ens33网卡绑定2个IP地址
[root@kylin-v10 ~]# ip a s|grep ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
inet 10.0.0.10/22 brd 10.0.3.255 scope global noprefixroute ens33
inet 10.0.0.20/24 brd 10.0.0.255 scope global ens33:1
ifup ens33 启动网卡 ifdown ens33关闭网卡
下面的配置文件只是演示IPV4的网卡信息:
[root@kylin-v10 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=ens33
UUID=74d78651-06ba-4c92-88a6-8c6d4dca5d76
DEVICE=ens33
ONBOOT=yes
IPADDR=10.0.0.10
PREFIX=22
GATEWAY=10.0.0.2
DNS1=114.114.114.114
重启网卡服务
# systemctl restart network
2.3、nmcli 配置网卡命令
查看帮助信息:
nmcli connection --help|less
nmcli device --help|less
让网卡永久的生效的办法是写入到配置文件 或者是采用nmcli命令来配置网卡
查看当前网卡设备的状态:
[root@kylin-v10 ~]# nmcli device status
DEVICE TYPE STATE CONNECTION
ens33 ethernet 已连接 ens33
lo loopback 未托管 --
[root@kylin-v10 ~]# nmcli general status
STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN
已连接 完全 已启用 已启用 已启用 已启用
查看网卡链接信息:
[root@kylin-v10 ~]# nmcli connection show
NAME UUID TYPE DEVICE
ens33 74d78651-06ba-4c92-88a6-8c6d4dca5d76 ethernet ens33
查看网卡ens33具体配置信息:
nmcli connection show ens33
可以看到ens33是绑定了2个IP,以及网关和路由信息:
[root@kylin-v10 ~]# nmcli connection show ens33 |tee > 1.ens33
[root@kylin-v10 ~]#
[root@kylin-v10 ~]# grep IP4 1.ens33
IP4.ADDRESS[1]: 10.0.0.10/22
IP4.ADDRESS[2]: 10.0.0.20/24
IP4.GATEWAY: 10.0.0.2
IP4.ROUTE[1]: dst = 10.0.0.0/24, nh = 0.0.0.0, mt = 0
IP4.ROUTE[2]: dst = 10.0.0.0/22, nh = 0.0.0.0, mt = 100
IP4.ROUTE[3]: dst = 0.0.0.0/0, nh = 10.0.0.2, mt = 100
IP4.DNS[1]: 114.114.114.114
查看设备的详细信息:
nmcli device show ens33
[root@kylin-v10 ~]# nmcli device show ens33
GENERAL.DEVICE: ens33
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 00:0C:29:E8:4A:7A
GENERAL.MTU: 1500
GENERAL.STATE: 100(已连接)
GENERAL.CONNECTION: ens33
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1
WIRED-PROPERTIES.CARRIER: 开
IP4.ADDRESS[1]: 10.0.0.10/22
IP4.GATEWAY: 10.0.0.2
IP4.ROUTE[1]: dst = 10.0.0.0/22, nh = 0.0.0.0, mt = 100
IP4.ROUTE[2]: dst = 0.0.0.0/0, nh = 10.0.0.2, mt = 100
IP4.DNS[1]: 114.114.114.114
IP6.ADDRESS[1]: fe80::20c:29ff:fee8:4a7a/64
IP6.GATEWAY: --
IP6.ROUTE[1]: dst = fe80::/64, nh = ::, mt = 256
[root@kylin-v10 ~]#
使用命令cmcli添加一块新网卡:
nmcli connection add con-name ens44 ifname ens44 type ethernet
给新网卡ens44配置IP信息:
nmcli connection modify ens44 ipv4.method manual ipv4.addresses 10.0.0.30/24 ipv4.gateway 10.0.0.2 ipv4.dns 114.114.114.114 connection.autoconnect yes
具体执行过程如下:
[root@kylin-v10 ~]# nmcli connection add con-name ens44 ifname ens44 type ethernet
连接 "ens44" (2b472e6a-86ca-402c-b8ea-8a02bb0e1bd7) 已成功添加。
[root@kylin-v10 ~]# nmcli connection modify ens44 ipv4.method manual ipv4.addresses 10.0.0.30/24 ipv4.gateway 10.0.0.2 ipv4.dns 114.114.114.114 connection.autoconnect yes
[root@kylin-v10 ~]#
[root@kylin-v10 ~]# nmcli connection down ens44
错误:"ens44" 不是活动的连接。
错误:未提供活动连接。
[root@kylin-v10 ~]#
[root@kylin-v10 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:e8:4a:7a brd ff:ff:ff:ff:ff:ff
inet 10.0.0.10/22 brd 10.0.3.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet 10.0.0.20/24 brd 10.0.0.255 scope global ens33:1
valid_lft forever preferred_lft forever
[root@kylin-v10 ~]# nmcli connection up ens44
错误:连接激活失败:No suitable device found for this connection (device ens33 not available because profile is not compatible with device (mismatching interface name)).
[root@kylin-v10 ~]#
执行过程中发现在up和down 新网卡ens44时报错,原因是演示环境虚拟机没有新增硬件网卡设备,需要在虚拟机端创建一个网卡
查看网卡链接信息,发现虚拟机端新增网卡设备时,默认已经生成一块新的网卡ens38
[root@kylin-v10 network-scripts]# nmcli connection show
NAME UUID TYPE DEVICE
ens33 74d78651-06ba-4c92-88a6-8c6d4dca5d76 ethernet ens33
ens38 1cdc22aa-180b-4a47-bf3b-773d3a2bf7d9 ethernet --
ens44 2b472e6a-86ca-402c-b8ea-8a02bb0e1bd7 ethernet --
[root@kylin-v10 network-scripts]#
先删除刚才新配置ens44网卡信息:
[root@kylin-v10 network-scripts]# nmcli connection del con-name ens44 ifname ens44 type ethernet
错误:未知的连接 "con-name"。
错误:未知的连接 "ifname"。
错误:未知的连接 "type"。
错误:未知的连接 "ethernet"。
成功删除连接 "ens44" (2b472e6a-86ca-402c-b8ea-8a02bb0e1bd7)。
错误:无法删除未知连接:'con-name', 'ifname', 'type', 'ethernet'。
[root@kylin-v10 network-scripts]# nmcli connection del ens39
成功删除连接 "ens39" (45531c67-5b52-4888-9c8d-fc003084aefe)。
[root@kylin-v10 network-scripts]# nmcli connection show
NAME UUID TYPE DEVICE
ens33 74d78651-06ba-4c92-88a6-8c6d4dca5d76 ethernet ens33
ens38 1cdc22aa-180b-4a47-bf3b-773d3a2bf7d9 ethernet --
使用命令nmcli添加一块名称为ens38新网卡:
nmcli connection add con-name ens38 ifname ens38 type ethernet
[root@kylin-v10 network-scripts]# nmcli connection add con-name ens38 ifname ens38 type ethernet
连接 "ens38" (c7562876-b295-4f01-9151-00125864f39e) 已成功添加。
**会生成一个文件ifcfg-ens38: **
[root@kylin-v10 network-scripts]# ll /etc/sysconfig/network-scripts/ifcfg-ens38
-rw-r--r-- 1 root root 280 3月 7 22:20 /etc/sysconfig/network-scripts/ifcfg-ens38
文件内容:ifcfg-ens38 如下:
[root@kylin-v10 network-scripts]# cat /etc/sysconfig/network-scripts/ifcfg-ens38
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens38
UUID=c7562876-b295-4f01-9151-00125864f39e
DEVICE=ens38
ONBOOT=yes
给新网卡ens38配置IP信息:
nmcli connection modify ens38 ipv4.method manual ipv4.addresses 10.0.0.30/24 ipv4.gateway 10.0.0.2 ipv4.dns 114.114.114.114 connection.autoconnect yes
此时网卡内容如下:
[root@kylin-v10 network-scripts]# cat ifcfg-ens38
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens38
UUID=c7562876-b295-4f01-9151-00125864f39e
DEVICE=ens38
ONBOOT=yes
IPADDR=10.0.0.30
PREFIX=24
GATEWAY=10.0.0.2
DNS1=114.114.114.114
特别提示: 执行完成上面的指令,网卡配置信息立即生效
查看网卡信息:
nmcli connection show
ip a s|grep ens38
nmcli device show ens38
关闭网卡ens38:
nmcli connection down ens38
ip a s |grep ens38
[root@kylin-v10 network-scripts]# nmcli connection down ens38
成功停用连接 "ens38"(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/17)
[root@kylin-v10 network-scripts]# ip a s |grep ens38
5: ens38: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
启动ens38网卡:
nmcli connection up ens38
ip a s |grep ens38
[root@kylin-v10 network-scripts]# nmcli connection up ens38
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/18)
[root@kylin-v10 network-scripts]# ip a s |grep ens38
5: ens38: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
inet 10.0.0.30/24 brd 10.0.0.255 scope global noprefixroute ens38
配置给网卡ens38添加IPV6的地址:
nmcli connection modify ens38 ipv6.method manual ipv6.addresses 2002::8 connection.autoconnect yes
重新激活:
nmcli connection down ens38
nmcli connection up ens38
ping 2002::8
ifconfig ens38
此时ens38网卡配置文件如下:
[root@kylin-v10 network-scripts]# cat ifcfg-ens38
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=no
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens38
UUID=c7562876-b295-4f01-9151-00125864f39e
DEVICE=ens38
ONBOOT=yes
IPADDR=10.0.0.30
PREFIX=24
GATEWAY=10.0.0.2
DNS1=114.114.114.114
IPV6ADDR=2002::8/128
2.4、修改网卡配置信息执行下面的命令不会生效
修改ens38网卡配置文件,执行下面的命令是不会生效的:
nmcli connection down ens38
nmcli connection up ens38
nmcli connection reload ens38
systemctl restart network
当然重启系统,修改网卡配置文件会立马生效,那有没有不需要重启系统就能使修改网卡配置生效呢?当然是有的,下面就是不需要重启系统也能生效的命令
2.5、举例演示2.4的提问
[root@kylin-v10 network-scripts]# ip a s|grep ens38
3: ens38: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
inet 10.0.0.31/24 brd 10.0.0.255 scope global noprefixroute ens38
###修改网卡配置文件 ifcfg-ens38中的IP 10.0.0.31为10.0.0.30:
[root@kylin-v10 network-scripts]# sed -i 's#10.0.0.31#10.0.0.30#g' ifcfg-ens38
[root@kylin-v10 network-scripts]# grep 10.0.0.30 ifcfg-ens38
IPADDR=10.0.0.30
###但是IP还是10.0.0.31:
[root@kylin-v10 network-scripts]# ip a s|grep 10.0.0.31
inet 10.0.0.31/24 brd 10.0.0.255 scope global noprefixroute ens38
执行下面的命令就可以生效:
nmcli connection reload ens38
nmcli device reapply ens38
nmcli device connect ens38
验证修改的IP已经生效了:
[root@kylin-v10 network-scripts]# ip a s|grep 10.0.0.31
[root@kylin-v10 network-scripts]# ip a s|grep 10.0.0.30
inet 10.0.0.30/24 brd 10.0.0.255 scope global noprefixroute ens38