Ubuntu中静态DNS配置的方法详解

DNS服务的简介:

DNS(Domain Name Server,域名服务器)是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器。DNS中保存了一张域名(domain name)和与之相对应的IP地址 (IP address)的表,以解析消息的域名。

因为实验室实现的拟态存储系统需要实现动态变更ip地址,所以需要搭建一个dns服务器,并且将需要查询变更ip地址的服务器都绑定到同一台dns服务器之上。通常在RedHat系列(eg:Fedora,Centos)的系统之中,当我们需要变更dns服务器是一件很简单的事情,可以直接修改对应的/etc/resolv.conf文件。添加或修改nameserver后面的ip地址就可以了。但是我傻乎乎的以为在Debian系列(eg:Ubuntu,Mint)之下也是这样的设置的,似乎一改也能用,我就没有细究了。

某天断电重启之后,Ubuntu系统上DNS服务集体失效,而后排查发现/etc/resolv.conf文件被覆盖写了,原先配置的dns信息全部消失。如下图所示:

囧rz! Ubuntu都告诉你了,DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN。

系统环境:

系统平台:Ubuntu 14.04

我们来梳理一遍Ubuntu下对resolv.conf的编辑规则,就可以总结出来怎么对症下药去处理静态dns的配置重启失效的问题了。

流程分析:

1.在Ubuntu系统网络设备启动的流程中,会依赖/etc/network/interface的配置文件初始化网络接口,所以直接在/etc/network/interface之中配置好对应的dns服务器会最先写入/etc/resolv.conf。所以我们可以在其中添加如下内容:

dns-nameservers 180.76.76.76 //支持一下,百度的DNS服务器

2.接下来NetworkManager会接力填充/etc/resolv.conf。依赖配置文件/etc/NetworkManager/NetworkManager.conf通过修改这个配置文件中的dns项,我们也可以实现静态dns配置的目的:

 dns=119.29.29.29 //腾讯的DNS服务器

3.如果你错过了前面两步,没关系,我们还有机会补救。接下来resolv会读取自己的dns配置文件,写入/etc/resolv.conf。依赖的配置文件是/etc/resolvconf/resolv.conf.d/tail。通过添加dns服务器的方式,我们也可以实现写入我们静态配置的dns服务器。

 nameserver=223.5.5.5 //阿里的DNS服务器

静态IP配置

Ubuntu 的网络配置信息放在 /etc/network/interfaces 中,如果配置动态获取ip,则在上述文件中加入以下内容:

使用如下命令打开网络配置信息文件:

sudo gedit /etc/network/interfaces

编辑文件(注意检察你的getway是否正确。):

   auto eth0
   iface eth0 inet static
   address 192.168.8.119
   netmask 255.255.255.0
   gateway 192.168.8.1

配置完成之后重启网络:

sudo /etc/init.d/networking restart

这时查看的就修改好的配置信息了

总结

详细梳理了在Debian系列发行版之下Linux静态DNS服务器的绑定流程,我们可以使用上述三种方法的任意一种。(囧rz,每种方法语法都不一样,坑爹的Linux)当然RedHat系列的发行版可以参考上述的内容,静态配置dns服务器流程应该也是大同小异。

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

您可能感兴趣的文章:

  • ubuntu 设置静态IP的实现方法
  • Ubuntu16.04 静态IP地址设置(NAT方式)
  • 详解ubuntu14.04如何设置静态IP的方法
(0)

相关推荐

  • 详解ubuntu14.04如何设置静态IP的方法

    本文详细的介绍了如何使用ubuntu14.04设置静态IP的方法,可以快速的设置静态ip,不用每次都需要修改一些SSH链接.所以特将在ubuntu14.04系统下设置静态IP的方法记录一下. 第一步: 配置静态IP地址: 打开/etc/network/interfaces文件,内容为 auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp 以上表示默认使用DHCP分配IP,如果想指定静态IP,则需要如下的修改 auto lo i

  • Ubuntu16.04 静态IP地址设置(NAT方式)

    为VMware虚拟机内安装的Ubuntu 16.04设置静态IP地址NAT方式 1.安装环境 VMware 12 Ubuntu 16.04 x86_64 2.在VMware中,配置网络环境 VMware在默认安装完成之后,会创建三个虚拟的网络环境:VMnet0.VMnet1和VMnet8.其类型分别为:桥接网络,Host-only和NAT.其中,NAT表示VMWware内安装的Ubuntu将会在一个子网中,VMware通过网络地址转换,通过物理机的IP上网. 这里,我们选择NAT方式,来实现Ub

  • ubuntu 设置静态IP的实现方法

    Ubuntu 设定静态IP: 切换到root用户,然后进入/etc/network目录.备份interfaces文件(备份文件是一个好习惯) 下面编辑interfaces文件,添加如下语句: 1 # Assgin static IP by eric on 26-SEP-2012 2 iface eth0 inet static 3 address 192.168.196.135 #change to your static IP 4 netmask 255.255.255.0 #change t

  • Ubuntu中静态DNS配置的方法详解

    DNS服务的简介: DNS(Domain Name Server,域名服务器)是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器.DNS中保存了一张域名(domain name)和与之相对应的IP地址 (IP address)的表,以解析消息的域名. 因为实验室实现的拟态存储系统需要实现动态变更ip地址,所以需要搭建一个dns服务器,并且将需要查询变更ip地址的服务器都绑定到同一台dns服务器之上.通常在RedHat系列(eg:Fedora,Cent

  • struts2中使用注解配置Action方法详解

    使用注解来配置Action可以实现零配置,零配置将从基于纯XML的配置转化为基于注解的配置.使用注解,可以在大多数情况下避免使用struts.xml文件来进行配置. struts2框架提供了四个与Action相关的注解类型,分别为ParentPackage.Namespace.Result和Action. ParentPackage:ParentPackage注解用于指定Action所在的包要继承的父包.该注解只有一个value参数.用于指定要继承的父包. 示例: 使用ParentPackage

  • Spring Boot项目中定制拦截器的方法详解

    这篇文章主要介绍了Spring Boot项目中定制拦截器的方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Servlet 过滤器属于Servlet API,和Spring关系不大.除了使用过滤器包装web请求,Spring MVC还提供HandlerInterceptor(拦截器)工具.根据文档,HandlerInterceptor的功能跟过滤器类似,但拦截器提供更精细的控制能力:在request被响应之前.request被响应之后.视

  • python中Django文件上传方法详解

    Django上传文件最简单最官方的方法 1.配置media路径 在settings.py中添加如下代码: MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 2.定义数据表 import os from django.db import models from django.utils.timezone import now as timezone_now def upload_to(instance, filename):     now = timezo

  • Python 在 VSCode 中使用 IPython Kernel 的方法详解

    本文介绍,在 VSCode 使用 IPython Kernel的设置方法,详细介绍如下所示: 要达到的效果: 只需按下 Ctrl+:,选中的几行代码,就会自动发送到 IPython Kernel,并运行,得到结果!当然,快捷键也可以另行设置! 为什么要这么做: 首先,这种配置方式,比较轻量快速: 主要用于,增加写代码时的"互动性",可以边写代码,边测试:例如,在写代码时候,快速测试下,一行或几行代码,看看效果: 所以,非常适合新手,边写边学习,或者,需要写个几十行代码,迅速解决问题,的

  • Spring中自定义数据类型转换的方法详解

    目录 类型转换服务 实现Converter接口 实现ConverterFactory接口 实现GenericConverter接口 环境:Spring5.3.12.RELEASE. Spring 3引入了一个core.onvert包,提供一个通用类型转换系统.系统定义了一个SPI来实现类型转换逻辑,以及一个API来在运行时执行类型转换.在Spring容器中,可以使用这个系统作为PropertyEditor实现的替代,将外部化的bean属性值字符串转换为所需的属性类型.还可以在应用程序中需要类型转

  • SpringBoot配置绑定方法详解

    目录 配置绑定 @Value基础类型配置 @ConfigurationProperties注解 @PropertySource 配置绑定 所谓“配置绑定”就是把配置文件中的值与 JavaBean 中对应的属性进行绑定.通常,我们会把一些配置信息(例如,数据库配置)放在配置文件中,然后通过 Java 代码去读取该配置文件,并且把配置文件中指定的配置封装到 JavaBean(实体类)中. SpringBoot提供了以下两种方式进行配置绑定: 使用@Value注解 使用@ConfigurationPr

  • JavaScript 中有关数组对象的方法(详解)

    JS 处理数组多种方法 js 中的数据类型分为两大类:原始类型和对象类型. 原始类型包括:数值.字符串.布尔值.null.undefined 对象类型包括:对象即是属性的集合,当然这里又两个特殊的对象----函数(js中的一等对象).数组(键值的有序集合). 数组元素的添加 arrayObj.push([item1 [item2 [. . . [itemN ]]]]); 将一个或多个新元素添加到数组结尾,并返回数组新长度 arrayObj.unshift([item1 [item2 [. . .

  • Mongodb中MapReduce实现数据聚合方法详解

    Mongodb是针对大数据量环境下诞生的用于保存大数据量的非关系型数据库,针对大量的数据,如何进行统计操作至关重要,那么如何从Mongodb中统计一些数据呢? 在Mongodb中,给我们提供了三种用于数据聚合的方式: (1)简单的用户聚合函数: (2)使用aggregate进行统计: (3)使用mapReduce进行统计: 今天我们首先来讲讲mapReduce是如何统计,在后续的文章中,将另起文章进行相关说明. MapReduce是啥呢?以我的理解,其实就是对集合中的各个满足条件的文档进行预处理

  • Javascript中的迭代、归并方法详解

    迭代方法 在Javascript中迭代方法个人觉得尤为重要,在很多时候都会有实际上的需求,javascript提供了5个迭代方法来供我们操作,它们分别为: every() 对数组中的每一个项运用给定的函数,如果每项都返回true,那么就会返回true filter() 对数组中的每一个项运用给定的函数,把返回true的项组成一个新数组并返回 forEach() 对数组中的每一项运用给定的函数,但是没有任何的返回值 map() 对数组中的每一个项运用给定的函数并返回每次函数调用的结果组成新的数组

随机推荐