Linux网络管理
-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

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

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命令概述‌

  1. 定义与组成
    nmtui是NetworkManager服务的文本用户界面工具(TUI),名称由nm(NetworkManager缩写)和tui(Text User Interface)组成。
    核心功能:提供基于光标的交互界面,简化终端环境下的网络配置,适合不熟悉命令行的用户。
  2. 安装与启动
    • 需安装NetworkManager-tui子软件包(部分系统如RHEL 8已预装)。
    • 启动命令:终端直接输入nmtui

二、主要功能与操作步骤

  1. 核心功能
    • 查看网络状态:显示接口、IP地址、网关等当前配置。
    • 配置连接:支持有线(Wired)和无线(Wireless)网络的IP、子网掩码、DNS等参数设置。
    • 管理连接:添加/删除连接、调整优先级,配置文件保存在/etc/NetworkManager/system-connections/目录。
  2. 配置静态IP示例
    1. 启动后选择Edit a connection → 目标网卡 → Edit
    2. 将IPv4配置改为Manual,填写IP、网关、DNS等信息。
    3. 保存后需执行nmcli connection reload <网卡名>nmcli connection up <网卡名>使配置生效。

三、与其他工具对比

  • 与nmcli的关系
    nmtui是图形化前端,适合交互操作;nmcli是命令行工具,更适合脚本化管理和高级功能(如网络会话切换)。
  • 持久性:两者配置均直接写入服务文件,重启后仍有效。

四、注意事项

  • 权限要求:需root或具备NetworkManager操作权限的用户执行。
  • 无线网络配置:需在Activate a connection中选择Wireless并输入SSID及密码。
  • 兼容性:适用于大多数Linux发行版,但部分旧版本可能需要额外安装组件。

文章部分内容来自CSDN技术博主

Linux网络管理
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇