【Linux】网络连接配置——nmcli工具配置连接增删改查实例

(一)网络连接配置基本项目

1.网络接口配置

  • Linux支持多种网络接口设备类型,一般情况下,Linux均能自动检测和识别网络接口设备(如网卡)。

在实际应用中主要是网卡配置,包括IP地址、子网掩码、默认网关等。设置IP地址和子网掩码后,主机就可与同网段的其他主机进行通信,但是要与不同网段的主机进行通信,还必须设置默认网关地址。默认网关地址是一个本地路由器地址,用于与本网段之外的主机进行通信。

2.主机名配置

主机名是用于标识一台主机的名称,在网络中主机名具有唯一性

3.DNS服务器配置

主机作为DNS客户端,访问DNS服务器来进行域名解析,使用目标主机的域名与目标主机进行通讯。

(二)网络连接配置文件

  • /etc/hosts:

存储主机名和IP地址映射,用来解析无法用其他方法解析的主机名。

  • /etc/resolv.conf:

与域名解析有关的设置

  • /etc/sysconfig/network-scripts/ifcfg-<接口名>

对每个网络接口,都有一个相应的接口配置文件,提供该网络接口的特定信息。如果启用NetworkManager,则接口名称为网络连接名。

  • /etc/NetworkManager/system-connections/

保存VPN、移动宽带、PPPoE连接配置信息。

网卡的设备名、IP地址、于网掩码及默认网关等配置信息是保存在网卡的配置文件中的,一块网卡对应一个配置文件,该配置文件位于/etc/sysconfig/network-scripts目录中,其配置文名的格式为ifcfg-<接口名称>。

例如,一个网卡配置文件的主要内容如下:

TYPE=Ethemet		##网卡类型
BOOTPROTO=dhcp		##自动获得P地址)
DEFROUTE=yes 
PEERDNS=yes		##是否允许自动修改/ctc/resolv.conf文件
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes		##是否支持IPv6	
IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes
IPV6_ PEERROUTES=yes IPV6_FAILURE_FATAL=no
NAME=eno16777736		##该网卡设备名称	
UUID=bb75c9b2-fbd6-4c1d-8455-al1e0b7ee967
DEVICE=eno16777736		##该网卡设备名称	
ONBOOT=no		##计算机启动时是否启用(激活)该网卡

(三)网络配置方法

  • 使用命令行工具进行配置
  • 直接编辑网络相关文件
  • 在图形界面使用网络配置工具进行配置

无论是什么配置,实际上都是通过修改相关的配置文件来实现的。

参考文章网络配置及ssh服务

(四)nmcli工具配置连接管理

连接是对网络接口的配置。一个网络接口可以有多个连接配置,但同时一个连接配置生效。配置和管理连接是一项最基本的网络配置工作。

  • 实例:
    增加defualt、NET01、NET02三个连接
连接名称 IP 修改后的IP
defualt 10.0.0.110 10.0.0.210
NET01 10.0.0.111 10.0.0.211
NET02 10.0.0.112 10.0.0.212

1.增

在增加连接前先确定系统的网络接口设备名是什么输入:nmcli d(显示网络接口设备)可跳转到2的查看了解更多。

# nmcli connection add con-name default autoconnect no type ethernet ifname ens160 ip4 10.0.0.110/24 gw4 10.0.0.2 
# nmcli connection add con-name NET01 autoconnect no type ethernet ifname ens160 ip4 10.0.0.111/24 gw4 10.0.0.2 

其中:
con-name 用于定义连接名称(该名称也可以用双引号括起来)
type 定义连接类型
ifname 指定网络接口
ip4 指定IPv4的地址
gw4指定网关

如果没有带任何IP参数如ip、gw,则IP地址会通过DHCP自动获取。

nmcli connection add con-name NET02 autoconnect no type ethernet ifname ens160
  • 激活与禁用连接
    创建连接后没有绑定网络接口,该连接并没有生效。可执行以下命令启动(激活)指定连接:
//nmcli connection up 连接名
# nmcli connection up default   //激活default连接
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)
通过输入ip a 查看
// nmcli connection down 连接名   禁用某连接

在这里插入图片描述

同一时间只能有一个连接绑定在一个网络接口上。可以多创建几个连接,以便设置几套配置文件,需要时进行临时切换。

2.查

//显示所有连接
# nmcli connection show
NAME     UUID                                  TYPE      DEVICE 
default  417fd184-fe46-4d3e-a8af-1406ea2a561f  ethernet  ens160 
ens160   92b911a4-0722-3fdc-b501-41871539cbf6  ethernet  --     
NET01    cd4146d9-f5b4-4e0a-b359-40eae0254620  ethernet  --     
NET02    cd11168e-f69a-4147-9d1f-64fbc635b248  ethernet  --     

# nmcli d			//显示网络接口设备
DEVICE  TYPE      STATE      CONNECTION 
ens160  ethernet  connected  ens160     
lo      loopback  unmanaged  --   

在这里插入图片描述

其中:
name 网络接口名

3.改

可以根据需求使用子命令modify修改连接配置

尝试激活NET02连接,输入:

# nmcli c up NET02
Error: Connection activation failed: IP configuration could not be reserved (no available address, timeout, etc.)
Hint: use 'journalctl -xe NM_CONNECTION=cd11168e-f69a-4147-9d1f-64fbc635b248 + NM_DEVICE=ens160' to get more details.

报错!!!

网络连接激活失败,具体原因是IP配置无法被预留(可能是因为没有可用的地址、超时等原因)。

在这里插入图片描述

那么就要为NET02连接增加IP

//因为刚开始NET02设置的就是自动获取IP,而自动获取IP失败,所以要为连接配置手动IP
# nmcli connection modify NET02 ipv4.method manual
//为连接增加一个IP
# nmcli connection modify NET02 +ipv4.addresses 10.0.0.112/24
//为连接增加一个网关
# nmcli connection modify NET02 ipv4.gateway 10.0.0.2
//激活NET02,成功!!!
# nmcli c up NET02
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5)

在这里插入图片描述

  • 三个连接都激活成功后,来修改三个连接的IP,修改命令如下:
# nmcli connection modify default ipv4.addr 10.0.0.210
# nmcli connection modify NET01 ipv4.addr 10.0.0.211
# nmcli connection modify NET02 ipv4.addr 10.0.0.212
//记得一定要重启网络服务
# systemctl restart NetworkManager
//也可以重新加载配置
# nmcli connection reload

4.删

对不需要的连接可以执行删除命令:

# nmcli connection delete 连接名

5.配置DNS域名解析器

三个连接都能激活成功,来尝试ping外网一下,看看能否访问外网

# ping 10.0.0.2
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
64 bytes from 10.0.0.2: icmp_seq=1 ttl=128 time=14.6 ms
64 bytes from 10.0.0.2: icmp_seq=2 ttl=128 time=0.266 ms
64 bytes from 10.0.0.2: icmp_seq=3 ttl=128 time=0.315 ms
^Z
[3]+  Stopped                 ping 10.0.0.2
# ping www.baidu.com
ping: www.baidu.com: Name or service not known
//显然外网访问失败

所以要配置DNS域名解析器,命令如下:

# nmcli con mod default ipv4.dns "114.114.114.114 8.8.8.8"
# nmcli con mod NET01 ipv4.dns "114.114.114.114 8.8.8.8"
# nmcli con mod NET02 ipv4.dns "114.114.114.114 8.8.8.8"
//记得一定要重启网络服务
# systemctl restart NetworkManager
# ping www.baidu.com
PING www.a.shifen.com (153.3.238.110) 56(84) bytes of data.
64 bytes from 153.3.238.110 (153.3.238.110): icmp_seq=1 ttl=128 time=35.7 ms
64 bytes from 153.3.238.110 (153.3.238.110): icmp_seq=2 ttl=128 time=274 ms
^Z
[4]+  Stopped                 ping www.baidu.com

更多nmcli工具的详细操作可以参考Linux中命令行界面nmcli工具

相关推荐

  1. OpenEuler虚拟机配置网络连接

    2024-05-02 17:16:01       38 阅读
  2. springboot-mongodb-连接配置

    2024-05-02 17:16:01       50 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-02 17:16:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-02 17:16:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-05-02 17:16:01       82 阅读
  4. Python语言-面向对象

    2024-05-02 17:16:01       91 阅读

热门阅读

  1. boost::asio::ip::tcp::acceptor::reuse_address

    2024-05-02 17:16:01       28 阅读
  2. 网络相关概念

    2024-05-02 17:16:01       31 阅读
  3. 笨蛋学C++【C++基础第十弹】

    2024-05-02 17:16:01       25 阅读
  4. 类与对象(中):类的6个默认成员函数

    2024-05-02 17:16:01       32 阅读
  5. 达梦数据库使用-外部表

    2024-05-02 17:16:01       38 阅读
  6. C++ P1115 最大子段和

    2024-05-02 17:16:01       29 阅读
  7. C++ -- Array 学习

    2024-05-02 17:16:01       31 阅读
  8. C++ 类对象初始化

    2024-05-02 17:16:01       34 阅读
  9. SQL中为什么不要使用1=1?

    2024-05-02 17:16:01       36 阅读
  10. 知识图谱与大语言模型的协同(RAG)——MindMap

    2024-05-02 17:16:01       37 阅读
  11. 23种设计模式

    2024-05-02 17:16:01       35 阅读
  12. 速盾:高防cdn-为您的网站防御cc/ddos

    2024-05-02 17:16:01       36 阅读
  13. tomca打不开index.html的解决方案

    2024-05-02 17:16:01       33 阅读
  14. 【LeetCode刷题记录】简单篇-88-合并两个有序数组

    2024-05-02 17:16:01       33 阅读