说明:在网上给的教程上面通常会有这样的一个误导思路,按照配置文件设置后会不生效的问题,甚至没有一点效果,经过排查发现Linux下设置IP这个话题的入口线索应该分为两种:1为Server版,2为Desktop版,这两种版本的设置方式有很大区别,主要在于软件的问题。Service版按常规版设置即可,但是Desktop版的有一个Network-manager的软件,这个软件是简化IP的设置,所以很多时候按照网上的配置教程设置后会造成不生效的问题;一般情况如果按照Server版的设置后,重启之后Network-manager就会失效,这一点很重要,而不是重启服务生效。这些设置对于Ubuntu和CentOS 6同样生效。
设置步骤:
一、Server版:
对于Ubuntu和CentOS 6配置都适用。
1、修改IP地址
打开/etc/network/interfaces
sudo vim /etc/network/interfaces
加入以下语句:
auto eth0 #要设置的网卡
iface eth0 inet static #设置静态IP;如果是使用自动IP用dhcp,后面的不用设置,一般少用
addressxxx.xxx.xxx.xxx #IP地址
netmaskxxx.xxx.xxx.xxx #子网掩码
gatewayxxx.xxx.xxx.xxx #网关
2、修改DNS
打开/etc/resolv.conf
sudo vim /etc/resolv.conf
注意:上面设置的文件重启后会覆盖,如果要持久的保存,需要修改:/etc/resolvconf/resolv.conf.d/base
改为如下内容:
search localdomain #如果本Server为DNS服务器,可以加上这一句,如果不是,可以不加
nameserver172.16.3.4#希望修改成的DNS
nameserver172.16.3.3 #希望修改成的DNS
3、重启服务生效
先运行一次,然后在rc.local里加入这个重启网络配置的命令:
sudo /etc/init.d/networking restart #使网卡配置生效sudo /etc/init.d/resolvconf restart #使DNS生效
二、Desktop版:
Desktop下有一个Network-manager的软件,这个软件如果上面设置了,那么默认会以上面的配置为准,Network-manager会失效,但是这个设置只有在重启电脑才会生效。
如果不重启时,那么需要停止这个服务再去设置
sudo service network-manager stop
接下来通过上面的配置即可。
但是这样的做法有点麻烦,既然用了Desktop的,倒不如直接用Network-manager来设置快一些(也就是设置里面的网络设置)。
同样,如果要设置无线网卡的IP时,用这个配置也是最快的,没必要使用上面的配置进行配置。
三、命令行快速设置:
这种方式重启后会失效。
1、先停止Network-manager的服务
sudo service network-manager stop
2、设置IP和子网掩码
sudo ifconfig ens33 192.168.199.31 netmask 255.255.255.0
3、设置网关
sudo route add default gw 192.168.199.1
4、设置DNS
sudo su
echo "nameserver 192.168.199.1" >> /etc/resolv.conf
完成后,输入exit退出,上面的只是是即时生效的。但重启后会失效,持久方式使用第一种方法。
四、总结:
上面几种方法都是最常用的方式,没有更深入的做法,比如arp这些等等,如果要深入可以再找一下这方面的方法,下面有参考教程。
如果是CentOS,修改的文件就是:/etc/sysconfig/network-scripts,可以通过这个线索去查找。
参考: