参考了如下文章:
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,类似如下: (这步比较关键,找到对应的网络设备和配置文件)
[email protected]_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:
[[email protected]_AAA ~]# chkconfig network on
[[email protected]_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的一个上层包装好了。