-1
系统说明
我这用云上最小化安装的openEuler23.03系统为例,其他细版本同理
bash复制代码
[root@openeuler ~]# cat /etc/openEuler-release
openEuler release 23.03
[root@openeuler ~]#
openEuler23.03系统手动配置ip流程
修改名称
- 新创建的虚拟机,nmcli con命令看到的NAME和网卡名称可能不是一致的,此时就需要将NAME手动修改为和DEVICE一致,否则可能会出问题
bash复制代码
[root@openeuler ~]# nmcli con show
NAME UUID TYPE DEVICE
cloud-init ens3 fbc49833-4cdb-548b-a293-c38b39836fdb ethernet ens3
[root@openeuler ~]# nmcli con modify 'cloud-init ens3' con-name ens3
[root@openeuler ~]# nmcli con show
NAME UUID TYPE DEVICE
ens3 fbc49833-4cdb-548b-a293-c38b39836fdb ethernet ens3
[root@openeuler ~]#
- 可以看到,默认情况下,网卡配置文件中没有网卡文件,如果手动直接vi添加,可能会出各种问题,需要用nmcli命令添加
bash复制代码
[root@openeuler ~]# cd /etc/sysconfig/network-scripts/
[root@openeuler network-scripts]# ls
[root@openeuler network-scripts]#
- 我这做了上面操作以后,没几分钟ssh掉了,后台查看发现ip丢了,重启了下网络服务恢复正常。
经过排查,是因为虚拟机没有固定IP,所以过一会ip就会掉,固定IP以后该问题消失。
生成网卡配置文件【openEuler23.03系统添加网卡文件配置流程】
- 我们用nmcli命令创建一个自命名的网卡文件,这样网卡配置文件下就会自动生成一个文件了
bash复制代码
root@openeuler network-scripts]# nmcli con
NAME UUID TYPE DEVICE
ens3 fbc49833-4cdb-548b-a293-c38b39836fdb ethernet ens3
[root@openeuler network-scripts]#
[root@openeuler network-scripts]# nmcli con add type ethernet con-name ens3.bak ifname eth3.bak
Connection 'ens3.bak' (8f62c526-ff97-4706-983d-7a071be677cc) successfully added.
[root@openeuler network-scripts]# nmcli con
NAME UUID TYPE DEVICE
ens3 fbc49833-4cdb-548b-a293-c38b39836fdb ethernet ens3
ens3.bak 8f62c526-ff97-4706-983d-7a071be677cc ethernet --
[root@openeuler network-scripts]# ls
ifcfg-ens3.bak
[root@openeuler network-scripts]# cat ifcfg-ens3.bak
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=ens3.bak
UUID=8f62c526-ff97-4706-983d-7a071be677cc
DEVICE=eth3.bak
ONBOOT=yes
[root@openeuler network-scripts]#
手动指定ip
给刚才创建的配置文件手动指定ip,直接用nmcli命令简单些
bash复制代码
[root@openeuler network-scripts]#
[root@openeuler network-scripts]# nmcli con modify ens3.bak ipv4.addresses "11.22.33.82/24" ipv4.gateway "11.22.33.254" ipv4.method manual
[root@openeuler network-scripts]# ls
ifcfg-ens3.bak
[root@openeuler network-scripts]# cat ifcfg-ens3.bak
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=ens3.bak
UUID=8f62c526-ff97-4706-983d-7a071be677cc
DEVICE=eth3.bak
ONBOOT=yes
IPADDR=11.22.33.82
PREFIX=24
GATEWAY=11.22.33.254
[root@openeuler network-scripts]#
添加ipv6地址
- 直接vi刚才的配置文件,在最后面添加v6的配置信息即可【bclinux添加v6信息也一样,都是下面新增部分内容】
- v6地址:
IPV6ADDR=2409:818e:38cc:114::219
- v6网关:
IPV6_DEFAULTGW=2409:818e:38cc:114::201
- v6地址:
bash复制代码
[root@openeuler network-scripts]# vi ifcfg-ens3.bak
[root@openeuler network-scripts]# cat ifcfg-ens3.bak
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=ens3.bak
UUID=b232667c-c868-4bd5-91cb-0847fa6e3768
DEVICE=ens3.bak
ONBOOT=yes
IPADDR=11.22.33.82
PREFIX=24
GATEWAY=11.22.33.254
#-----IPv6------
IPV6_AUTOCONF=no
IPV6INIT=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6ADDR=2409:818e:38cc:114::219
IPV6_DEFAULTGW=2409:818e:38cc:114::201
DHCPV6C=none
[root@openeuler network-scripts]#
修改配置文件信息和名称
- 执行nmcli复制真实网卡的uuid名称。
- 配置文件修改3个地方
NAME=ens3.bak
【去掉.bak,和真实的保持一致】UUID=b232667c-c868-4bd5-91cb-0847fa6e3768
【修改为真实的uuid】DEVICE=ens3
【去掉.bak,和真实的保持一致】
- 修改后如下【uuid不要注释后加一行,执行当行修改,我是为了让你们容易理解才新增一行的】
bash复制代码
[root@openeuler network-scripts]# nmcli con
NAME UUID TYPE DEVICE
ens3 fbc49833-4cdb-548b-a293-c38b39836fdb ethernet ens3
ens3.bak aa6cbcde-5a9a-4870-b879-37ab51ea05b2 ethernet --
[root@openeuler network-scripts]# vi ifcfg-ens3.bak
[root@openeuler network-scripts]# mv ifcfg-ens3.bak ifcfg-ens3
[root@openeuler network-scripts]# cat ifcfg-ens3
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=ens3
#UUID=b232667c-c868-4bd5-91cb-0847fa6e3768
UUID=fbc49833-4cdb-548b-a293-c38b39836fdb
DEVICE=ens3
ONBOOT=yes
IPADDR=11.22.33.82
PREFIX=24
GATEWAY=11.22.33.254
#-----IPv6------
IPV6_AUTOCONF=no
IPV6INIT=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6ADDR=2409:818e:38cc:114::219
IPV6_DEFAULTGW=2409:818e:38cc:114::201
DHCPV6C=none
[root@openeuler network-scripts]#
删除创建的网卡信息
如下,直接删除
bash复制代码
[root@openeuler ~]# nmcli con
NAME UUID TYPE DEVICE
ens3 fbc49833-4cdb-548b-a293-c38b39836fdb ethernet ens3
ens3.bak aa6cbcde-5a9a-4870-b879-37ab51ea05b2 ethernet --
[root@openeuler ~]#
[root@openeuler ~]#
[root@openeuler ~]# nmcli con delete ens3.bak
Connection 'ens3.bak' (aa6cbcde-5a9a-4870-b879-37ab51ea05b2) successfully deleted.
[root@openeuler ~]# nmcli con
NAME UUID TYPE DEVICE
ens3 fbc49833-4cdb-548b-a293-c38b39836fdb ethernet ens3
[root@openeuler ~]#
重启网卡生效并测试
- 重启命令有2个
- 方式1:
systemctl restart NetworkManager
- 方式2:
nmcli con down ens3 && nmcli con up ens3
- 方式1:
bash复制代码
[root@openeuler network-scripts]# 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: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether fa:16:3e:45:76:52 brd ff:ff:ff:ff:ff:ff
inet 11.22.33.82/24 brd 11.22.33.255 scope global noprefixroute ens3
valid_lft forever preferred_lft forever
inet6 fe80::8c94:3fab:23a7:89/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@openeuler network-scripts]#
[root@openeuler network-scripts]# systemctl restart NetworkManager
[root@openeuler network-scripts]#
[root@openeuler network-scripts]# 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: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether fa:16:3e:45:76:52 brd ff:ff:ff:ff:ff:ff
inet 11.22.33.82/24 brd 11.22.33.255 scope global noprefixroute ens3
valid_lft forever preferred_lft forever
inet6 2409:818e:38cc:114::219/64 scope global noprefixroute
valid_lft forever preferred_lft forever
inet6 fe80::8c94:3fab:23a7:89/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@openeuler network-scripts]#
[root@openeuler network-scripts]# nmcli con down ens3 && nmcli con up ens3
Connection 'ens3' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/1)
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)
[root@openeuler network-scripts]#
[root@openeuler network-scripts]# 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: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether fa:16:3e:45:76:52 brd ff:ff:ff:ff:ff:ff
inet 11.22.33.82/24 brd 11.22.33.255 scope global noprefixroute ens3
valid_lft forever preferred_lft forever
inet6 2409:818e:38cc:114::219/64 scope global noprefixroute
valid_lft forever preferred_lft forever
inet6 fe80::8c94:3fab:23a7:89/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@openeuler network-scripts]#
[root@openeuler network-scripts]# ping6 2409:818e:38cc:114::201
PING 2409:818e:38cc:114::201(2409:818e:38cc:114::201) 56 data bytes
64 bytes from 2409:818e:38cc:114::201: icmp_seq=1 ttl=64 time=17.9 ms
64 bytes from 2409:818e:38cc:114::201: icmp_seq=2 ttl=64 time=2.31 ms
^C
--- 2409:818e:38cc:114::201 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 2.311/10.080/17.850/7.769 ms
[root@openeuler network-scripts]#
nmcli 是 NetworkManager 的命令行工具,用于管理和配置网络设置。它允许用户查看网络状态、管理网络连接和设备。以下是一些 nmcli 的基本命令和用法。
基本命令
- 查看NetworkManager状态: systemctl status NetworkManager 这个命令用于检查 NetworkManager 的运行状态。如果需要启动或停止 NetworkManager,可以使用 systemctl start NetworkManager 或 systemctl stop NetworkManager。
- 查看网络连接状态: nmcli n connectivity 这个命令显示网络连接的状态,可能的状态包括 full(完全连接)、limited(连接但无法上网)、portal(连接但需要认证登录后才能上网)、none(未连接)和 unknown。
- 显示所有网络连接信息: nmcli connection show 或者简写为 nmcli c。这个命令列出所有已配置的网络连接。
- 管理网络连接: 启动指定连接: nmcli c up <connection-name> 如果指定的连接已经处于连接状态,该命令将重启该连接。 关闭指定连接: nmcli c down <connection-name> 关闭连接后,使用 nmcli c 命令,设备项将显示为 –。
- 修改连接: nmcli c modify <connection-name> <option> <value> 例如,修改 IP 地址和子网掩码可以使用 nmcli c m <connection-name> ipv4.address <IP-address>/<subnet-mask>。
- 显示所有网络接口设备状态: nmcli device status 或者简写为 nmcli d。这个命令显示所有网络接口设备的状态。
- 管理设备: 连接设备: nmcli d connect <device-name> 如果设备已经处于连接状态,该命令将重启该设备。 断开设备: nmcli d disconnect <device-name> 断开设备的网络连接。
高级命令
- 添加新的网络连接: nmcli connection add type ethernet con-name <connection-name> ifname <interface-name> ipv4.method manual ipv4.address “<IP-address>/<subnet-mask>” gw4 <gateway> 这个命令用于添加一个新的网络连接,并设置为手动配置 IPv4 地址。
- 修改现有连接: nmcli connection modify <connection-name> ipv4.addresses “<new-IP-address>/<subnet-mask>” ipv4.gateway “<new-gateway>” 修改现有连接的 IPv4 地址和网关。
- 激活和停用连接: 激活连接: nmcli connection up <connection-name> 激活指定的网络连接。 停用连接: nmcli connection down <connection-name> 停用指定的网络连接。
- 删除连接: nmcli connection delete <connection-name> 删除指定的网络连接。
- 显示详细信息: 显示连接的详细信息: nmcli connection show <connection-name> 显示指定连接的详细信息。 显示设备的详细信息: nmcli device show <device-name> 显示指定设备的详细信息。
nmcli 命令提供了丰富的选项和参数,可以通过 man nmcli 或 nmcli –help 获取更多帮助信息。在使用 nmcli 时,建议先查看当前的网络设置和状态,然后根据需要进行修改。修改网络设置后,通常需要重启 NetworkManager 或相应的网络连接来使更改生效
一、nmtui命令概述
- 定义与组成
nmtui是NetworkManager服务的文本用户界面工具(TUI),名称由nm
(NetworkManager缩写)和tui
(Text User Interface)组成。
核心功能:提供基于光标的交互界面,简化终端环境下的网络配置,适合不熟悉命令行的用户。 - 安装与启动
- 需安装
NetworkManager-tui
子软件包(部分系统如RHEL 8已预装)。 - 启动命令:终端直接输入
nmtui
。
- 需安装
二、主要功能与操作步骤
- 核心功能
- 查看网络状态:显示接口、IP地址、网关等当前配置。
- 配置连接:支持有线(Wired)和无线(Wireless)网络的IP、子网掩码、DNS等参数设置。
- 管理连接:添加/删除连接、调整优先级,配置文件保存在
/etc/NetworkManager/system-connections/
目录。
- 配置静态IP示例
- 启动后选择
Edit a connection
→ 目标网卡 →Edit
。 - 将IPv4配置改为
Manual
,填写IP、网关、DNS等信息。 - 保存后需执行
nmcli connection reload <网卡名>
和nmcli connection up <网卡名>
使配置生效。
- 启动后选择
三、与其他工具对比
- 与nmcli的关系:
nmtui是图形化前端,适合交互操作;nmcli是命令行工具,更适合脚本化管理和高级功能(如网络会话切换)。 - 持久性:两者配置均直接写入服务文件,重启后仍有效。
四、注意事项
- 权限要求:需root或具备NetworkManager操作权限的用户执行。
- 无线网络配置:需在
Activate a connection
中选择Wireless
并输入SSID及密码。 - 兼容性:适用于大多数Linux发行版,但部分旧版本可能需要额外安装组件。
文章部分内容来自CSDN技术博主