关于centos网络配置的方法,网上文档很多,但基本上都是一些操作命令,原理和解释则很少提到,而且某些文章有些地方还是需要商量的(估计是转载的,作者自己也没有实践过)。故,重新总结一下,分三个部分:理论基础、上机实践和原因阐述。 注: 实践环境:虚拟机 登陆方式:PuTTY OS版本:centOS6.3 上网方式:bridge 一、理论基础(急于解决问题的读者这个部分可以略过,直接看”上机实践“ 部分): google关键词:centos网络配置,则会得到很多。下面挑出51cto在centos版面的文章(相对而言,讲的较清晰和详细),总结如下: 1.CentOS网络配置之基本关键字: *IP *netmask *gateway *hostname *domainname *DNS 以上key都是网络设置所必须知晓的,应该是通用的。 2. CentOS网络配置之配置文件 文章中提到了有关配置文件的概念:“无论是通过网络配置命令(下文将提到)来配置网络,还是通过图形化的配置界面,最终的配置信息都将写入到某某的文件中,也就是说一旦我们知道了这些信息都写到了什么文件中或哪儿个文件中,我们就可以通过直接的修改某某文件来直接进行配置”,即我们(相对于程序而言是用户)只需通过修改配置文件就能引导程序按着目标方式运行(这里也体现了linux中“一切即文件“的思想)。 关于配置文件:下面统一以key和value的形式进行说明(如:IPADDR=10.3.7.202,则key为IPADDR;value为10.3.7.202)。 在CentOS中关于网络的配置文件有: (1)/etc/sysconfig/network 说明:有关系统网络的整体性文件(不涉及具体网络设备)---全局性 有关的key: NETWORKING 是否利用网络 HOSTNAME 主机名 GATEWAY 默认网关 IPGATEWAYDEV 默认网关的接口名 DOMIAN 域名 (2)/etc/sysconfig/network-scripts/ifcf-eth*(0,1,2,..) 说明:有关网络接口卡(具体网络设备)的配置文件----局部性 有关的key: DEVICE 接口名(设备,网卡) BOOTPROTO ip的配置方法(value:static代表固定IP;dhcp代表动态获取;none:手动) HWADDR硬件地址(即MAC地址) ONBOOT 系统启动时网络接口是否有效(value:yes/no) TYPE 网络类型(通常为Ethernet:以太网) NETMASK 网络掩码 IPADDRIP 地址 GATEWAY 默认网关地址 注:文章中只介绍了以上八种,其实应该再加上DNS,后面会讲到 (3)/etc/resolv.conf 说明:有关主机DNS服务器信息的配置文件(详细内容,可参考:http://www.kernel.org/doc/man-pages/online/pages/man5/resolv.conf.5.html) 有关的key: domain 本地域名 search 域名和搜索列表 nameserver 本机所参照的DNS服务器的IP地址(最多可指定三个) (4)/etc/hosts 说明:ip和hostname的映射配置文件,这里ip为局域网内部与本机有通信的其他主机的IP地址。即映射后,通过对方hostname也可访问局域网内对应主机。 有关的key:ip地址 (value:对应主机的hostname) 二、上机实践 1.配置文件:/etc/sysconfig/network vim /etc/sysconfig/network
2.配置文件:/etc/sysconfig/network-scripts/ifcf-eth0 vim /etc/sysconfig/network-scripts/ifcf-eth0
疑问1:注意截图中的红色方框的部分:DNS,为什么要在这里设置? 3.配置文件:/etc/resolv.conf vim /etc/resolv.conf
疑问2:为什么这里也有DNS设置(nameserver的值即对应DNS ip地址)? 4. 重启网络: service network restart 操作结束! 三、原因阐述 疑问1和疑问2是相互关联的,前者为原因后者是结果。 现象:一般情况下,会在/etc/resolv.conf配置文件中设置DNS,然而一旦重启网络,resolv.conf文件中的DNS设置的内容均会被“洗掉”。 原因是:每次重启网络时,/etc/resolv.conf文件均会获得最新的DNS地址,其来源为(一般情况,至少在这里):/etc/sysconfig/network-scripts/ifcf-eth0即网卡配置中的DNS的值。 也即是说关于DNS的设置,只需在/etc/sysconfig/network-scripts/ifcf-eth0文件中设置即可,重启网络后,其配置自动“刷新”到/etc/resolv.conf文件中。那么进一步提问:为什么会这样呢?它的内在机制又是怎样的呢? 内在机制: 背景:在一台计算机连接到外网的资源(如web server)之前,它必须能通过某种方法将任何文字混合数字的域名(www.baidu.com)转换为纯数字式的网络地址(如 220.181.111.148)(因为Internet规定使用这些结构化的IP地址作为网络地址)。 下面先重温一下resolv.conf配置文件: 定义:resolv.conf 即resolver configuration file,它通常包含域名服务器(DNS:域名-->IP(对任何节点上可用网络))的IP地址信息。 作用:解析器(resolver)程序通过读取resolv.conf配置文件的内容,找到Internet上的DNS。 注:resolver:是一套C库中的常规程序,调用它可以访问到Internet上的DNS。同时C库和其他的resolver库均依赖于/etc/resolv.conf配置文件寻找到域名服务器列表。 在最简单的情况下,resolv.conf文件可用于编辑和设置域名服务器列表。然而:当计算机中同时存在其他需要动态配置的程序时,这些程序的配置文件将会重写resolv.conf文件。这些程序包括以下三种: (1)The resolvconf program (2)The network-manager deamon (3)DHCP clients
其中(2)The network-manager deamon的配置文件即为/etc/sysconfig/network-scripts/ifcf-eth0(1,2...)。
故:这就解释了前面的DNS需在网卡配置文件:/etc/sysconfig/network-scripts/ifcf-eth0中设置。
注:由于本文的主题是CentOS的网络配置,故(1)The resolvconf和(3)DHCP clinets情况在此,不解释,还有一些专有名词背后的原理,读者均可通过给出的参考文献自行查阅。 参考文献: (1) 最基本的CentOS网络配置: http://os.51cto.com/art/201003/191114.htm (2) NetworkConfiguration : http://wiki.debian.org/NetworkConfiguration (3) RESOLV.CONF(5) : http://www.kernel.org/doc/man-pages/online/pages/man5/resolver.5.html (4) resolvconf : http://en.wikipedia.org/wiki/Resolvconf (责任编辑:IT) |