Linux基础—nmcli命令

一、基础知识

在CentOS7 / Redhat7中默认使用 NetworkManager 守护进程来监控和管理网络设置。nmcli是命令行的NetworkManager工具,自动把配置写到/etc/sysconfig/network-scripts/目录下面。

CentOS7 / Redhat7之前的网络管理是通过 ifcfg 文件配置管理接口(device),而现在是通过NetworkManager服务管理连接(connection)。一个接口(device)可以有多个连接(connection),但是同时只允许一个连接(connection)处于激活(active)状态。

简单理解就是,一个连接就是(connection)就是/etc/sysconfig/network-scripts/目录下的一个配置文件,接口(device)是物理设备,一个物理设置可以拥有多个配置文件,但只能有一个配置文件属于使用(active)状态;配置文件的生成与使用状态均由NetworkManager控制。

二、nmcli命令详解

1、查看接口设备(device)信息
nmcli device status                   # 简单信息
nmcli device show                     # 详细的接口信息
nmcli device show interface-name      #接口的详细信息
  • 简单信息
    在这里插入图片描述
  • 详细接口信息
    在这里插入图片描述
  • 接口的详细信息
    在这里插入图片描述
2、查看连接(connection)的信息
nmcli connection show                   # 详细的连接信息
nmcli connection show connection-name   # 某个连接的详细信息
  • 详细的连接信息
    在这里插入图片描述
  • 某个连接的信息
    在这里插入图片描述
3、启动和停止接口
nmcli connection down connection-name 
nmcli connection up connection-name 
nmcli device disconnect interface-name 
nmcli device connect interface-name

注意:建议使用 nmcli dev disconnect interface-name 命令,而不是 nmcli con down connection-name 命令,因为连接断开可将该接口放到“手动”模式,这样做用户让 NetworkManager 启动某个连接前,或发生外部事件(比如载波变化、休眠或睡眠)前,不会启动任何自动连接。

4、创建连接
nmcli connection add type ethernet con-name connection-name ifname interface-name 
nmcli connection add type ethernet con-name connection-name ifname interface-name ip4 address gw4 address

注意:创建连接后,NetworkManager 自动将 connection.autoconnect 设定为 yes。还会将设置保存到 /etc/sysconfig/network-scripts/ connection-name 文件中,且自动将 ONBOOT 参数设定为 yes。

5、激活连接
nmcli connection up connection-name
6、修改连接的IP地址
nmcli connection modify "connection-name" ipv4.addresses newip/24
7、配置连接的DNS
nmcli connection modify static-eth1 ipv4.dns DNS1          # 设定单个DNS
nmcli connection modify static-eth1 ipv4.dns "DNS1 DNS2"   # 设定多个DNS
nmcli connection modify static-eth1 +ipv4.dns DNS3         # 添加某个连接的DNS,需要使用前缀“+”
8、设置主机名
nmcli general hostname               # 查询当前主机名
nmcli general hostname my-hostname   # 更改主机名
systemctl restart systemd-hostnamed  # 重启hostnamed服务

注意:CentOS7 / Redhat7 下的主机名管理是基于系统服务systemd-hostnamed,服务自身提供了hostnamectl命令用于修改主机名,推荐这种方式进行修改;
使用nmcli命令更改主机名时,systemd-hostnamed服务并不知晓 /etc/hostname 文件被修改,因此需要重启服务去读取配置;

9、接口绑定
CentOS7 / Redhat7 下新增了一种特性team,用于取代bond。
接口绑定步骤是:创建一个组接口(Team interface), 创建一个接口连接,指定网卡接口(device)到组接口里
nmcli connection add type team con-name connection-name ifname interface-name [config JSON]
nmcli connection add type team-slave con-name connection-name ifname interface-name master team-name
  • 5
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值