centos6和centos7网络之网卡及网关DNS概述

这里比较一下centos6和centos7的网络部分的知识

1. 主机名:

1) centos6
hostname test //临时生效,至于为什么临时生效,可以参考/etc/rc.d/rc.sysinit中的hostname的部分。
主机名的配置文件/etc/sysconfig/network,修改HOSTNAME=test 即可(注意,这里修改后并不能通过重启网卡的操作是主机名生效,只能重启机器或者hostname test命令生效)
2)centos7
三种定义的主机名:static、transient、pretty
static:是永久生效的,对于内核来说的,配置文件/etc/hostname

[root@docker ~]# more /etc/hostname
docker

transient:临时的,通过DHCP或mDNS服务器分配的。
pretty:灵活的,只是展示给终端用户的。
这里我们一般将三种都定义成同一个主机名。
查看主机名的相关设置

[root@docker ~]# hostnamectl status
   Static hostname: docker
         Icon name: computer-server
           Chassis: server
        Machine ID: dd04c7696dd445628d974deb19d2debe
           Boot ID: 9d06a005956342a6900705627fdcab1d
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-229.el7.x86_64
      Architecture: x86-64
    定义主机名:

[root@docker ~]# hostnamectl set-hostname docker
注意:只要更改了主机名,就会自动更改/etc/hostname文件
但是上述命令并未修改/etc/hosts中的名字解析。所以需要手动修改。//一定要进行host解析,否则会出现访问慢或者程序调用慢的原因。

2. 网卡配置

1) centos6
安装后默认都是eth0、eth1之类的
配置文件:/etc/sysconfig/network-scripts/ifcfg-eth0

[root@nagios-server ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 
TYPE=Ethernet                //网卡类型
BOOTPROTO=static            //static为固态ip,dhcp为动态分配ip
DEVICE=eth0                 //设备名称
ONBOOT=yes                 //是否开机自启动
BROADCAST=192.168.56.255        //广播地址,一般是网络中的最后一个地址
HWADDR=00:0C:29:0E:5F:63    //mac地址,这里必须是唯一的
NM_CONTROLLED=yes         
USERCTL=no
PEERDNS=yes
IPV6INIT=no
IPADDR=192.168.56.7            //IP地址
NETMASK=255.255.255.0         //子网掩码/24
GATEWAY=192.168.56.2          //网关配置,也可以使用route命令添加
DNS=8.8.8.8                   //DNS

2) centos7
系统安装后网卡名称不是eth0或eth1
eno16777984之类的名称。其中,这种命名方式解决了centos6网卡损坏,更换时,网卡名变成eth2,而不是eth0的问题。但是如果想要自动化,最好使用统一的名称。

[root@yunying-docker ~]# cat /etc/sysconfig/network-scripts/ifcfg-eno16777984 
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777984
UUID=eaa877df-f133-4cd7-93ce-8969aca18753
HWADDR=00:0C:29:0E:5F:65
DEVICE=eno16777984
ONBOOT=yes
IPADDR=172.16.9.203
GATEWAY=172.16.9.1
NETMASK=255.255.0.0          //子网掩码/12
DNS1=202.106.0.20
DNS2=8.8.8.8

3. DNS配置

1) centos6
直接在网卡配置文件中更改GATEWAY和DNS
同时修改/etc/resolv.conf

[root@yunying ~]# more /etc/resolv.conf 
## Generated by NetworkManager
nameserver 202.106.0.20
nameserver 8.8.8.8

重启网卡才能生效
2) centos7
centos7中使用的是networkmanger来管理网络,也就是说原先的修改/etc/resolv.conf,
已经不能生效。
a. 使用命令行更改nmcli
#显示当前网络连接
#nmcli connection show

#修改当前网络连接对应的DNS服务器,这里的网络连接可以用名称或者UUID来标识
#nmcli con mod eno1 ipv4.dns "114.114.114.114 8.8.8.8"

#将dns配置生效
#nmcli con up eno1
b. 修改配置文件(一般情况下我们不用NetworkManager来管理网络,在系统初始优化时会将其关闭,如果没有关闭,则需要考虑如下步骤,如已关闭则直接修改/etc/resolv.conf即可)
修改 /etc/NetworkManager/NetworkManager.conf 文件,在main部分添加 “dns=none” 选项:

[main]
plugins=ifcfg-rh
dns=none

重启NetworkManager
systemctl restart NetworkManager
修改/etc/resolv.conf

nameserver 114.114.114.114
nameserver 8.8.8.8

4. 网关配置

什么是网关:你上外网,就需要网关。
至于网络知识可以参考我的网络篇的文章。
1) centos6
法一:修改/etc/sysconfig/network-scripts/ifcfg-eth0(外网网卡的如果是动态获取的可以不设置网关,如果是静态的需要配置。)
GATEWAY=10.0.0.254
重启网卡即可生效
法二:当然也可以使用命令行来添加网关(注意这只是临时添加,一般不采用法二)

route -n                          //查看路由表
route del default gw 10.0.0.254     //删除默认路由
route add default gw 10.0.0.254          //添加默认网关

永久生效:修改/etc/sysconfig/network中添加如下:
NETWORKING=yes #表示系统是否使用网络,一般设置为yes。如果设为no,则不能使用网络。
HOSTNAME=centos #设置本机的主机名,这里设置的主机名要和/etc/hosts中设置的主机名对应
GATEWAY=192.168.1.1 #设置本机连接的网关的IP地址。

2) centos7
同centos6没有多大的区别,只是需要将NetworkManager关闭。

来源:https://blog.51cto.com/laodou/2065015