网卡配置

要想使我们的主机能够连上Internet,我们需要设定DNS、IP、mask、gateway等各项参数,但是如果主机的网卡没有被内核识别、配置文件错误等,所有的IP参数的设定都是无事于补,所以要想使我们的主机能够上网,网卡配置的准备工作就显得尤为重要。




大体流程

  • 加载网卡模块

  • 配置网卡IP

  • 配置DNS服务器IP

  • 建立主机名与IP的对应


一、网卡驱动模块

网卡是一个硬件,我们不能直接对其进行操控,需要内核加载网卡的驱动模块(.ko),完成内核对网卡的识别和生成相关的网卡配置文件,我们依据配置文件的修改来设定网卡参数。

dmesg |grep -in eth0         # 查看网卡是否被内核识别,并显示网卡的驱动模块

lspci |grep -i ethernet         # 查看网卡的数据信息

lsmod |grep e1000            # 查看内核是否加载e1000驱动模块

modinfo e1000                  # 查看e1000驱动模块的具体信息

CentOS 6网卡配置_第1张图片

e1000是我们在安装Linux的时候默认安装的,假如现在我们的系统没有加载e1000模块,那要怎么办呢(把e1000移除来模拟系统没有加载e1000的解决办法)

rmmod e1000                    # 移除模块

modprobe e1000              # 加载模块

CentOS 6网卡配置_第2张图片

如果想要设定开机自动启动模块,我们需要添加文件/etc/modprobe.d/ether.conf,然后编辑

vim /etc/modprobe.d/ether.conf

alias eth0 e1000

虽然内核可以识别网卡的驱动模块,但是有时候网卡并不是处于激活状态,因此需要开启对应的网卡

ifup eth0          # 开启网卡eth0

ifdown eth0    # 关闭网卡eth0

其实这两个命令会读取/etc/sysconfig/network-scripts/ifcfg-ethX配置文件中的内容,这个文件下边会说到。


二、给网卡设定IP

手动设定网卡IP,然后ping 网段内其他主机测试

ifconfig eth0 172.18.253.78

ping 172.18.250.183

使用ifconfig命令设置ip的时候,如果没有指定netmask的话,会自动计算ip的网段的子网掩码。


CentOS 6网卡配置_第3张图片

CentOS 6网卡配置_第4张图片

但是手动配置IP会在下次重启的时候恢复默认,那么我们就需要学习对应的配置文件了。

修改网卡的默认设置的配置文件/etc/sysconfig/network-scripts/ifcfg-ethX,该配置文件的各项参数的含义如下图:

另外需要注意的是,选项必须大写;配置文件名必须和DEVICE选项设定的参数一致;HWADDR选项在只有一个网卡的情况可以省略;对于NM_CONTROLLED选项,额外的软件大部分为NetworkManager,CentOS 6建议设置为no;除了图中的基本选项之外,还可以加入其它的一些可忽略的选项:NETWORK(网段)、BROADCAST(广播地址)、MTU(最大传输单元,默认1500)。

BOOTPROTO选项,自动获取IP为dhcp;静态IP为static或者none,如果为静态IP的话,需要添加IPADDR、NETMASK、GATEWAY三个项目,对应的参数分别为:

 
IPADDR IP地址
NETMASK 子网掩码
GATEWAY

网关

GATEWAY设定的时候要注意,当有两个网卡的时候,只需要在其中一个网卡配置文件中设定该选项即可,不要每一个网卡配置文件都设置不同的GATEWAY。

CentOS 6网卡配置_第5张图片

我们自定义修改了配置文件参数之后,可以重启网络服务查看修改效果

/etc/init.d/network restart          # 重启网络服务,该服务名为network

原本我的主机启动的时候不会默认开启eth0,每次都需要手动输入命令ifup eth0来开启网卡

CentOS 6网卡配置_第6张图片


三、设定DNS服务器IP

设定DNS服务器IP的相关配置文件为/etc/resolv.conf,文件选项参数格式如下:

nameservice  DNS服务器IP

blob.png

设定完成之后使用dig命令测试是否成功

dig www.baidu.com        # dig是一个域名查询工具,出现如下结果表示DNS服务器ip设置成功

[root@CentOS6-lvm etc]# dig www.baidu.com
…
;; QUESTION SECTION: ;www.baidu.com.            IN    A
;; ANSWER SECTION: www.baidu.com.        829    IN    CNAME    www.a.shifen.com. 
www.a.shifen.com.    171    IN    A    61.135.169.121             # 这里是查询到的域名对应的IP 
www.a.shifen.com.    171    IN    A    61.135.169.125
…
;; Query time: 1 msec ;; SERVER: 172.18.0.1#53(172.18.0.1)        # 这里是本机设置的DNS服务器IP 
;; WHEN: Tue Mar 27 21:08:31 2018 ;; MSG SIZE  rcvd: 226


四、主机名的修改

主机名的修改涉及到俩个配置文件,分别是/etc/sysconfig/network、/etc/hosts

修改对应的主机名的配置文件/etc/sysconfig/network,该文件会在重启之后生效,该配置文件的各项参数如下图:

blob.png

配置文件/etc/hosts,设定私有IP对应的主机名,格式为”私有IP   主机名   别名“,之后我们可以直接使用主机名来完成ping命令,例如ping CentOS6-lvm

blob.png

CentOS 6网卡配置_第7张图片