使用nmcli命令配置网络
NetworkManager是管理和监控网络设置的守护进程,设备既就是网络接口,连接是对网络接口的配置,一个网络接口可以有多个连接配置,但同时只有一个连接配置生效。
1 配置主机名
CentOS6 之前主机配置文件:/etc/sysconfig/network
CentOS7主机名配置文件:/etc/hostname,默认没有这个文件,通过DNS反向解析获取主机名,主机名默认为:localhost.localdomain
显示主机名信息
hostname
hostnamectl status
hostnamectl set-hostname deskX.example.com
[root@centos73 ~]# hostnamectl set-hostname centos7.3.com
[root@centos73 ~]# hostname
centos7.3.com
[root@centos73 ~]# cat /etc/hostname
centos7.3.com
可以看到已经修改成功。
删除文件。回复默认主机名localhost.localdomain
2 常用命令
nmcli connection show 显示所有连接
nmcli connection show --active 显示所有活动的连接状态
nmcli connection show "ens33" 显示网络连接配置
nmcli device status 显示设备状态
nmcli device show ens33 显示网络接口属性
nmcli connection add help 查看帮助
nmcli connection reload 重新加载配置
nmcli connection down test2 禁用test2的配置,注意一个网卡可以有多个配置。
nmcli connection up test2 启用test2的配置
nmcli device disconnect ens33 禁用ens33网卡,物理网卡
nmcli device disconnect ens33 启用ens33网卡
图形工具
nm-connection-editor
字符工具
nmtui
nmtui-connect
nmtui-edit
nmtui-hostname
3 创建新连接配置
(1)创建新连接配置default,IP通过DHCP自动获取
[root@centos73 ~]# nmcli connection add con-name default type Ethernet ifname eth0
Connection 'default' (d62f98af-86ed-4735-80aa-2d80351765b2) successfully added.
删除连接
[root@centos73 ~]# nmcli connection delete default
Connection 'default' (d62f98af-86ed-4735-80aa-2d80351765b2) successfully deleted.
(2)创建新的连接配置test2,指定静态IP,不自动连接
[root@centos73 ~]# nmcli connection add con-name test2 ipv4.method manual ifname ens33 autoconnect no type Ethernet ipv4.addresses 172.25.100.100/24 gw4 172.25.100.1
Connection 'test2' (98385bf5-8cc3-47e3-a5f2-51e2d736be6d) successfully added.
参数说明:
con-name 指定连接名字,没有特殊要求,
ipv4.methmod 指定获取IP地址的方式
ifname 指定网卡设被名,既就是次配置所生效的网卡
autoconnect 指定是否自动启动
ipv4.addresses 指定IPv4地址
gw4指定网关
4查看/etc/sysconfig/network-scripts/目录
会看到多出一个文件ifcfg-test2。说明添加确实生效了。
/etc/sysconfig/network-scripts/ifcfg-test2
[root@centos73 ~]# ls /etc/sysconfig/network-scripts/ifcfg-*
/etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-lo
/etc/sysconfig/network-scripts/ifcfg-ens34 /etc/sysconfig/network-scripts/ifcfg-test2
5 启用test2连接配置
[root@centos73 ~]# nmcli connection up test2
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)
[root@centos73 ~]# systemctl restart network
看下是否生效
[root@centos73 ~]# nmcli device show ens33
GENERAL.DEVICE: ens33
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 00:0C:29:3A:00:82
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected)
GENERAL.CONNECTION: test2
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/7
WIRED-PROPERTIES.CARRIER: on
IP4.ADDRESS[1]: 172.25.100.100/24
IP4.GATEWAY: 172.25.100.1
IP6.ADDRESS[1]: fe80::5a5b:2cc3:a448:e2e1/64
IP6.GATEWAY:
好了,基本的IP地址配置成功
6 修改连接设置
[root@centos73 ~]# nmcli connection modify test2 connection.autoconnect yes
(2)修改DNS为172.25.1.1
[root@centos73 ~]# nmcli connection modify test2 ipv4.dns 172.25.1.1
(3)添加DNS 114.114.114.114
[root@centos73 ~]# nmcli connection modify test2 +ipv4.dns 114.114.114.114
看下是否成功
[root@centos73 ~]# cat /etc/sysconfig/network-scripts/ifcfg-test2
TYPE=Ethernet
[……]
NAME=test2
UUID=98385bf5-8cc3-47e3-a5f2-51e2d736be6d
DEVICE=ens33
ONBOOT=yes
DNS1=172.25.1.1
IPADDR=172.25.100.100
PREFIX=24
GATEWAY=172.25.100.1
DNS2=114.114.114.114
可以看到均已生效
(4)删除DNS
[root@centos73 ~]# nmcli connection modify test2 -ipv4.dns 114.114.114.114
(5)修改IP地址
[root@centos73 ~]# nmcli connection modify test2 ipv4.addresses 200.100.100.100/24 gw4 200.100.100.1
(6)还可以添加多个IP
[root@centos73 ~]# nmcli connection modify test2 +ipv4.addresses 10.10.10.10/8
7 nmcli 命令和/etc/sysconfig/network-scripts/ifcfg-*文件的对应关系
ipv4.method manual BOOTPROTO=none
ipv4.method auto BOOTPROTO=dhcp
ipv4.addresses "192.0.2.1/24 IPADDR=192.0.2.1
PREFIX=24
gw4 192.0.2.254" GATEWAY=192.0.2.254
ipv4.dns 8.8.8.8 DNS0=8.8.8.8
ipv4.dns-search example.com DOMAIN=example.com
ipv4.ignore-auto-dns true PEERDNS=no
connection.autoconnect yes ONBOOT=yes
connection.id eth0 NAME=eth0
connection.interface-name eth0 DEVICE=eth0
802-3-ethernet.mac-address . . . HWADDR= . . .