> CentOS > CentOS教程 >

Centos6.2设置静态ip和dns

参考了如下文章:

https://gist.github.com/fernandoaleman/2172388

http://www.lifelinux.com/how-to-configure-static-ip-address-on-centos/

http://www.ehowstuff.com/how-to-configure-static-ip-address-on-centos-6-2-linux-server/

http://www.liurongxing.com/centos-dns-ifcfg-resolv.html

http://bbs.csdn.net/topics/390162805

http://www.cnblogs.com/shawnloong/archive/2011/11/23/2260757.html

 

1) 一开始系统是dhcp自动获得ip,查看系统的ip,类似如下: (这步比较关键,找到对应的网络设备和配置文件)

root@Centos_AAA ~]# ifconfig
eth6 Link encap:Ethernet HWaddr 08:00:27:C1:E4:3D
inet addr:192.168.0.103  Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fec1:e43d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:108 errors:0 dropped:0 overruns:0 frame:0
TX packets:32 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:12689 (12.3 KiB) TX bytes:5908 (5.7 KiB)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:480 (480.0 b) TX bytes:480 (480.0 b)

2) 修改对应的/etc/sysconfig/network-scripts/ifcfg-eth6,但是我的下面这个文件并不存在,所以直接创建此文件,文件的内容修改如下:

DEVICE=eth6
HWADDR="08:00:27:C1:E4:3D"
NM_CONTROLLED=yes
ONBOOT=yes
TYPE=Ethernet
IPADDR=192.168.0.120
BOOTPRO=static
NETMASK=255.255.255.0
DNS1=192.168.0.1
NETWORKING_IPV6=no
IPV6INIT=no
IPV6_AUTOCONF=no
GATEWAY=192.168.0.1

3)修改/etc/sysconfig/network文件如下:

NETWORKING=yes
NETWORKING_IPV6=no
IPV6INIT=no
HOSTNAME=Centos_AAA
GATWAY=192.168.0.1

4)重启service network restart
5)重启系统shutdown -r now
6) 查看新的ip: ipconfig 

 

7)但是这个时候发现问题,可以访问内网,但是不能访问外网。

貌似在/etc/resolv.conf中配置dns不起作用,打开提示如下: 

# Generated by NetworkManager

# No nameservers found; try putting DNS servers into your
# ifcfg files in /etc/sysconfig/network-scripts like so:
#
# DNS1=xxx.xxx.xxx.xxx
# DNS2=xxx.xxx.xxx.xxx
# DOMAIN=lab.foo.com bar.foo.com

查资料说必须将dns的配置加入到/etc/sysconfig/network-scripts/ifcfg-eth6, 增加DNS1=192.168.0.1。

但是这个时候还是不行,最后查的资料是缺少默认的路由设置,需要增加如下文件/etc/sysconfig/network-scripts/route-eth6,内容为:via 192.168.0.1。

然后重启网络就可以了。

 

8) /etc/hosts文件设置如下:但是应该是跟ip和dns的配置问题没有关系的

27.0.0.1 localhost.localdomain localhost
192.168.0.120 Centos_AAA Centos_AAA
::1 localhost6.localdomain6 localhost6

9) 但是发现静态ip在关机重启后就不起作用了,原因是没有将network service设置为自动随机器启动,修改如下:

需要启动network service:

[root@Centos_AAA ~]# chkconfig network on
[root@Centos_AAA ~]# chkconfig --list | less
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off 

10)在重启机器后只有ipv6,没有ipv4, 需要手动执行service network start才可以进入固定的ip4状态。 这个问题如何解决???(原因为network和NetworkManager两个services冲突)

先停止ipv6,在/etc/sysctl.conf的最后加入:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

然后再停止networkmanager service:

chkconfig --level123456 NetworkManager off

 个人觉得为了避免两个service类似的功能冲突,NetworkManager不应该是个service,只应该是对network service的一个上层包装好了。



(责任编辑:IT)