为UBUNTU服务器设置静态IP
安装UBUNTU服务器时,注意力集中在安装工作上,网络设置要么就跳过,要么选择DHCP从路由器自动获取IP,然而实际部署的服务器必须有固定的IP,以便完成一些必须的配置,如端口映射、安全策略、QoS等需要。当然,如果路由器本身支持MAC地址绑定IP,那么恭喜你,直接用DHCP就能解决问题,但如果像小卓这样遇到了不支持此功能的路由器,就不得不为服务器设置静态IP了。
那么,如何为UBUNTU服务器设置静态IP呢?百度上一搜就一大堆,然而小卓发现很多文章都是互相抄的,以致于DNS设置部分错得都是一样的,实在让人汗颜。无奈之下,只得上国外网站调查一番,并将正确的设置方法奉上。顺便提一下,小卓是在UBUNTU16.04的环境下配置的。
步骤一:设置网络接口配置文件
网络接口配置文件是/etc/network/interfaces,你可以用vi或者nano打开,默认网络是为DHCP方式获取IP地址的,所以你看到的文件内容应该类似这样:
- auto lo eth0
- iface lo inet loopback
- iface eth0 inet dynamic
其中的“dynamic”就表明当前是以DHCP方式获取路由器分配的动态IP。把“dynamic”改成“static”,就变更为静态IP了,当然此时还需要指定你要设置的静态IP地址、子网掩码、网关。
- auto lo eth0
- iface lo inet loopback
- iface eth0 inet static
- address xxx.xxx.xxx.xxx(enter your ip here)
- netmask xxx.xxx.xxx.xxx
- gateway xxx.xxx.xxx.xxx(enter gateway ip here,usually the address of the router)
这是一个填完后的样例:
- auto lo eth0
- iface lo inet loopback
- iface eth0 inet static
- address 192.168.1.101
- netmask 255.255.255.0
- gateway 192.168.1.1
如果你只是要在局域网使用静态IP,那么填完后可以用下面的命令重启网络来使上面的配置立即生效,否则可以完成步骤二后再重启。
- sudo service networking restart
步骤二:设置域名解析服务器DNS
完成步骤一并重启网络后,如果所设IP没被别人占用的话,通过ifconfig可以看到服务器已经使用了设置的静态IP地址。然而,此时的服务器还不能访问外网,nslookup一下,会看到如下结果:
- jy@JYTech:~$ nslookup baidu.com
- ;; connection timed out; no servers could be reached
要让服务器能访问外网,还需要设置域名解析服务器DNS。上面提到百度搜到的很多犯同样的错误文章就是域名解析服务器DNS设置这一步不正确,后面再讲错误的设置是怎样,这里先介绍正确的设置方法。
正确的域名解析服务器DNS设置方法有两种:
方法一:
在文件夹/etc/resolvconf/resolv.conf.d/中新建一个名为tail的文件,并填入DNS的配置,如下:
- nameserver 8.8.8.8
- nameserver 8.8.4.4
方法二:
在步骤一的网络设置文件(/etc/network/interfaces)末尾中增加如下域名解析服务器的配置内容(注:据说此方法对UBUNTU14.04及以上版本有效,UBUNTU16.04下,小卓亲测有效)
- auto lo eth0
- iface lo inet loopback
- iface eth0 inet static
- address xxx.xxx.xxx.xxx(enter your ip here)
- netmask xxx.xxx.xxx.xxx
- gateway xxx.xxx.xxx.xxx(enter gateway ip here,usually the address of the router)
- dns-nameservers 8.8.8.8
无论您选择的是方法一还是方法二,记得配置完后记得重启网络服务让配置生效。重启后,再nslookup一下,你应该能看到类似这样的结果:
- jy@JYTech:~$ nslookup baidu.com
- Server: 8.8.8.8
- Address: 8.8.8.8#53
- Non-authoritative answer:
- Name: baidu.com
- Address: 111.13.101.208
- Name: baidu.com
- Address: 123.125.114.144
- Name: baidu.com
- Address: 180.149.132.47
- Name: baidu.com
- Address: 220.181.57.217
说完了正确的方法,再来说说网上流传最广的错误设置方法,至少在UBUNTU14.04上是明显错误的。也许以前老的UBUNTU上可以这么设置。那就是直接填加域名解析服务器配置到/etc/resolv.conf 中。
在UBUNTU14.04及以上,如果你打开/etc/resolv.conf文件,会看到文件头是这样的英文提示:
- # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
- # DO NOT EDIT THIS FILE BY HAND — YOUR CHANGES WILL BE OVERWRITTEN
上面英文的意思是resolv.conf文件的配置内容是通过resolvconf自动生成的,不要手工编辑此文件,因为你的修改会被覆盖(重启后)。也就是说直接修改这个文件,可以临时得到正确的解析,但这是临时的。只要服务器重启,你填入的DNS配置将不复存在。