为UBUNTU服务器设置静态IP

安装UBUNTU服务器时,注意力集中在安装工作上,网络设置要么就跳过,要么选择DHCP从路由器自动获取IP,然而实际部署的服务器必须有固定的IP,以便完成一些必须的配置,如端口映射、安全策略、QoS等需要。当然,如果路由器本身支持MAC地址绑定IP,那么恭喜你,直接用DHCP就能解决问题,但如果像小卓这样遇到了不支持此功能的路由器,就不得不为服务器设置静态IP了。

服务器

那么,如何为UBUNTU服务器设置静态IP呢?百度上一搜就一大堆,然而小卓发现很多文章都是互相抄的,以致于DNS设置部分错得都是一样的,实在让人汗颜。无奈之下,只得上国外网站调查一番,并将正确的设置方法奉上。顺便提一下,小卓是在UBUNTU16.04的环境下配置的。

步骤一:设置网络接口配置文件

网络接口配置文件是/etc/network/interfaces,你可以用vi或者nano打开,默认网络是为DHCP方式获取IP地址的,所以你看到的文件内容应该类似这样:

  1. auto lo eth0
  2. iface lo inet loopback
  3. iface eth0 inet dynamic

其中的“dynamic”就表明当前是以DHCP方式获取路由器分配的动态IP。把“dynamic”改成“static”,就变更为静态IP了,当然此时还需要指定你要设置的静态IP地址、子网掩码、网关。

  1. auto lo eth0
  2. iface lo inet loopback
  3. iface eth0 inet static
  4.         address xxx.xxx.xxx.xxx(enter your ip here)   
  5.         netmask xxx.xxx.xxx.xxx   
  6.         gateway xxx.xxx.xxx.xxx(enter gateway ip here,usually the address of the router)  

这是一个填完后的样例:

  1. auto lo eth0
  2. iface lo inet loopback
  3. iface eth0 inet static
  4.     address 192.168.1.101
  5.     netmask 255.255.255.0
  6.     gateway 192.168.1.1

如果你只是要在局域网使用静态IP,那么填完后可以用下面的命令重启网络来使上面的配置立即生效,否则可以完成步骤二后再重启。

  1. sudo service networking restart

步骤二:设置域名解析服务器DNS

完成步骤一并重启网络后,如果所设IP没被别人占用的话,通过ifconfig可以看到服务器已经使用了设置的静态IP地址。然而,此时的服务器还不能访问外网,nslookup一下,会看到如下结果:

  1. jy@JYTech:~$ nslookup baidu.com
  2. ;; connection timed out; no servers could be reached

要让服务器能访问外网,还需要设置域名解析服务器DNS。上面提到百度搜到的很多犯同样的错误文章就是域名解析服务器DNS设置这一步不正确,后面再讲错误的设置是怎样,这里先介绍正确的设置方法。

正确的域名解析服务器DNS设置方法有两种:

方法一:

在文件夹/etc/resolvconf/resolv.conf.d/中新建一个名为tail的文件,并填入DNS的配置,如下:

  1. nameserver 8.8.8.8
  2. nameserver 8.8.4.4

方法二:

在步骤一的网络设置文件(/etc/network/interfaces)末尾中增加如下域名解析服务器的配置内容(注:据说此方法对UBUNTU14.04及以上版本有效,UBUNTU16.04下,小卓亲测有效)

  1. auto lo eth0
  2. iface lo inet loopback
  3. iface eth0 inet static
  4.         address xxx.xxx.xxx.xxx(enter your ip here)
  5.         netmask xxx.xxx.xxx.xxx
  6.         gateway xxx.xxx.xxx.xxx(enter gateway ip here,usually the address of the router)
  7.         dns-nameservers 8.8.8.8  

无论您选择的是方法一还是方法二,记得配置完后记得重启网络服务让配置生效。重启后,再nslookup一下,你应该能看到类似这样的结果:

  1. jy@JYTech:~$ nslookup baidu.com
  2. Server:         8.8.8.8
  3. Address:        8.8.8.8#53
  4. Non-authoritative answer:
  5. Name:   baidu.com
  6. Address: 111.13.101.208
  7. Name:   baidu.com
  8. Address: 123.125.114.144
  9. Name:   baidu.com
  10. Address: 180.149.132.47
  11. Name:   baidu.com
  12. Address: 220.181.57.217

说完了正确的方法,再来说说网上流传最广的错误设置方法,至少在UBUNTU14.04上是明显错误的。也许以前老的UBUNTU上可以这么设置。那就是直接填加域名解析服务器配置到/etc/resolv.conf 中。

在UBUNTU14.04及以上,如果你打开/etc/resolv.conf文件,会看到文件头是这样的英文提示:

  1. # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
  2. #     DO NOT EDIT THIS FILE BY HAND — YOUR CHANGES WILL BE OVERWRITTEN

上面英文的意思是resolv.conf文件的配置内容是通过resolvconf自动生成的,不要手工编辑此文件,因为你的修改会被覆盖(重启后)。也就是说直接修改这个文件,可以临时得到正确的解析,但这是临时的。只要服务器重启,你填入的DNS配置将不复存在。

>>原创文章,欢迎转载。转载请注明:转载自惠州市卓优互联科技有限公司,谢谢!
>>原文链接地址:为UBUNTU服务器设置静态IP


关于作者

留下您的回复