NetworkManager 是红帽官方推荐的一个网络配置软件,用来代替老的网络配置脚本。这里介绍一些基本的网络配置命令,来完成静态ip配置以及网络连接的管理。
前言
centos7 系统安装完成之后,默认启用 NetworkManager ,但是同时也支持老的脚本管理方式,脚本可以通过:systemctl cat network.service
来查看:
NetworkManager 会读取 /etc/sysconfig/network-scripts/ 目录下面的配置文件,这是为了兼容,也可以直接用它自带的 nmcli 命令行配置。
还有两个概念需要明确,connection 和 device;device 很好理解,就是设备,在这里就是网卡,实体网卡或者虚拟玩卡都可以;connection 我们可以将为一个设备配置多个连接,就像一个无线网卡能连接到不同的 WIFI 信号,这里的 WIFI 信号就是 connection.
直接用 nmcli 管理
我们拿到一台机器,网卡设备一般都会有,而且第一个设备的名字都会是 eth0 ,那么就可以直接创建一个连接:
先启动 NetworkManager
systemctl start NetworkManager
创建一个连接:
nmcli c add type ethernet con-name CNNCT1 ifname eth0 ipv4.addr 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns 198.168.1.1 ipv4.method manual
默认启用了ipv6,如果没有ipv6的路由,可以关闭:
nmcli c CNNCT1 modify ipv6.method "disabled"
直接 up 就会生效(当你配置了多个连接,也可以用这个命令来切换连接):
nmcli c up CNNCT1
如果你还想在这个连接上添加策略路由:
nmcli c modify CNNCT1 ipv4.routes "10.0.0.0/24 192.168.1.2 table=100" ipv4.routing-rules "priority 5 fwmark1 table 100"
上面的命令添加了一条源地址为 10.0.0.0 网段的路由,还有一条优先级为 5 的ip rule;因为直接用 ip 命令的话,机器重启配置就没了,所以这样更好。
注意: 上面的命令可能 centos7 版本的 NetworkManager 版本并不支持。
修改配置文件
对于 centos7 也直接修改配置文件,目录在 /etc/sysconfig/network-scripts/
vim ifcfg-eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.73
GATEWAY=192.168.1.1
NETMASK=255.255.255.0
DNS1=8.8.8.8
这里是一些基本的配置,然后
nmcli c reload
nmcli con down eth0
nmcli con up eth0
配置生效
如果你不想用 NetworkManager, 那么修改配置文件以后,直接 systemctl restart network
.
nmcli 的基本命令
connection
nmcli c delete <c_name>
nmcli c show <c_name>
device
nmcli d show
nmcli d connect <d_name>
nmcli n