一、 CentOS 7 网络设置
- 使用
CentOS 7 Minimal ISO
(最小安装盘)安装的CentOS默认是没有配置网络的,可以使用ping
试一下,结果肯定是不能执行的,ping 指定ip不通是没有网络,ping域名不通是因为没有DNS无法解析域名,如下图所示:
使用ip address
也可以看到,是没有网卡和网络IP的,如下图:
- 在 CentOS 6 中, 网络设置及静态IP配置在
/etc/sysconfig/network-scripts/ifcfg-eth0
文件中配置,CentOS 7 网卡命令规则变化,命名规则根据系统固件和硬件来命名为ifcfg-en*
类型,只有新的命名规则找不到的情况下才使用类似eth0
这样的样式(系统之所以做出这样的改变肯定是有利于兼容硬件,感兴趣的可以自己深入了解,这里不做展开,我的电脑网卡是/etc/sysconfig/network-scripts/ifcfg-enp0s3
) ,使用vi
打开这个文件(最小安装默认只有vi
而没有vim
),修改如下内容:
BOOTPROTO=dhcp #保持默认的dhcp,dhcp会在联网之后自动获取到IP,dhcp获取的ip地址可能会因为网络重连发生变化
ONBOOT=yes #开启自动启用网络连接
DNS1=8.8.8.8 #第一个dns服务器,可设置多个,不指定也可以
# 8.8.8.8 是Google提供的一个免费DNS服务器ip
:wq
保存退出之后,service network restart
重启网络,再次ping baidu.com
,能够ping通就表示网络已经启用了;
这里补充一点知识扩展:
- 一般生产环境服务器通常是在
/etc/resolv.conf
文件下配置nameserver
或search
来指定DNS,在fcfg-enp0s3
中配置的DNS,重启网络服务后,DNS1、DNS2 配置会自动同步到/etc/resolv.conf
的nameserver
- 如果
fcfg-enp0s3
中不指定DNS,且BOOTPROTO=dhcp
的时候,重启网络会自动生成距离网络最近的DNSsearch
和nameserver
到/etc/resolv.conf
文件下,实现DNS解析,所以fcfg-enp0s3
中的DNS不指定也是可以的。我在公司网络环境下配置,自动将我公司内网的DNS写入/etc/resolv.conf
文件,如下图所示(擦除了铭感信息):
- CentOS 7 网络配置还有一个有趣的现象,我们都习惯使用
ifconfig
命令查看自己的网络信息和IP地址,但是在 CentOS 7 是无法执行的,如下图所示: - 原因是 CentOS 7 使用
ip
命令代替了ifconfig
命令,ifconfig
是 net-tools 中已被废弃使用的一个命令,多年前就已经没有维护了,新的 iproute2 提供了比 net-tools 更强大的命令,CentOS 7 预装的是 iproute2 ,ip
命令属于iproute2,功能自然也比ifconfig
会更强大,如果习惯了用ifconfig
命令的可以手动安装一下net-tools:yum install -y net-tools
ip
命令常用的命令:
ip link show
显示网络接口状态信息ip address
查看网络接口IP地址相关,发现网络接口enp0s3没有分配IP地址
二、 CentOS 7 静态IP配置
dhcp 网络模式会在联网之后自动获取到IP地址,dhcp 获取的ip地址可能会因为网络重连发生变化,实际网络中,我们希望自己的IP地址是唯一的,以便于通过IP进行通讯访问,采用配置静态IP方式是最好的一种方式,静态IP配置方式:
vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
打开编辑,修改如下内容:
BOOTPROTO=static #默认dhcp,改为static,表示启用静态IP地址
ONBOOT=yes #开启自动启用网络连接
IPADDR=192.168.1.73 #静态IP地址,如果使用虚拟机桥接模式,静态IP一定要和主机在同一个网段,且IP唯一未被使用
GATEWAY=192.168.1.1 #网关,需和公网主机配置的网关一致
NETMASK=255.255.255.0 #子网掩码,需和公网主机配置的网关一致
DNS1=8.8.8.8 #第一个dns服务器,BOOTPROTO=static 的时候不会自动生成DNS解析,最好在这里也一并配置上
:wq
保存退出之后,service network restart
或/etc/init.d/network restart
重启网络之后就生效了