Linux有很多方法配置网络,比如GUI的界面,CentOS 7里面的nmtui,或者直接命令行等等,不过归根结底都是在修改配置文件。
修改配置文件前先了解一下结构,Linux中将每个物理网卡称作设备(device),每个设备上面可以有多个逻辑接口,我们修改的配置文件也就是接口文件,CentOS 7中称作连接(connection)。
以CentOS 7 为例,可以用nmcli命令查看设备和连接
查看设备
nmcli dev show
查看连接
nmcli con show
可以看到我的网卡叫enp5s0,连接名称也叫enp5s0,连接可以创建多个,一个设备可以对应多个连接,创建多个连接后,可以随便切换使用。
添加连接(比如添加一个名词是eth-my的连接)
nmcli con add type ethernet con-name eth-my ifname enp5s0
删除连接(比如删除一个名词是eth-my的连接)
nmcli con delete id eth-my
查看设备状态
nmcli dev status
我的enp5s0这个连接正在工作
了解结构了来看看如何配置网络,修改ip这些,每个连接都有一个配置文件与之对应,我们修改这个配置文件即可。
文件位置:/etc/sysconfig/network-scripts/ifcfg-连接名称
一般Linux都是/etc/sysconfig/network-scripts/ifcfg-eth0这样,但是CentOS7有所变化,比如我的就叫enp5s0,也可以通过ls命令查看一下
直接修改这个文件即可,参数值不区分大小写,不区分单引号和双引号,甚至可以不用引号,key=value格式
配置参数说明:
TYPE:配置文件接口类型。在/etc/sysconfig/network-scripts/目录有多种网络配置文件,有Ethernet 、IPsec等类型,网络接口类型为Ethernet。
DEVICE:设备名称
BOOTPROTO:系统启动地址协议,none:不使用启动地址协议,bootp:BOOTP协议,dhcp:DHCP动态地址协议,static:静态地址协议
ONBOOT:系统启动时是否激活,yes:系统启动时激活该网络接口,no:系统启动时不激活该网络接口
IPADDR:IP地址
NETMASK:子网掩码
GATEWAY:网关地址
BROADCAST:广播地址
HWADDR/MACADDR:MAC地址,只需设置其中一个。
PEERDNS:是否指定DNS。如果使用DHCP协议,默认为yes,yes:如果DNS设置,修改/etc/resolv.conf中的DNS,no:不修改/etc/resolv.conf中的DNS
DNS{1, 2}:DNS地址。当PEERDNS为yes时会被写入/etc/resolv.conf中。
NM_CONTROLLED:是否由Network Manager控制该网络接口。修改保存后立即生效,无需重启。被其坑过几次,建议一般设为no。yes:由Network Manager控制
USERCTL:用户权限控制,yes:非root用户允许控制该网络接口,no:非root用户不运行控制该网络接口
IPV6INIT:是否执行IPv6,yes:支持IPv6,no:不支持IPv6
IPV6ADDR:IPv6地址/前缀长度
CentOS 7和传统的参数有所变化,比如静态IP时的子网掩码,使用了PREFIX来表示
PREFIX0=24 --> 前缀24位(相当于子网掩码共24为,即子网掩码为255.255.255.0)
CentOS 7的IP地址、子网掩码、网关地址都要在后面加一个0,如果多个加1、2这样。
配置文件修改完毕后,两种办法生效:
1、执行service network restart命令,重启网络服务(推荐)
2、重启计算机
生效后可以使用ifconfig查看