nmcli工具配置连接增删改查实例
- (一)网络连接配置基本项目
- 1.网络接口配置
- 2.主机名配置
- 3.DNS服务器配置
- (二)网络连接配置文件
- (三)网络配置方法
- (四)nmcli工具配置连接管理
- 1.增
- 2.查
- 3.改
- 4.删
- 5.配置DNS域名解析器
(一)网络连接配置基本项目
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工具