31DNS设置

news2024/11/16 22:58:00

每天五分钟学Linux | 第三十一课:DNS设置

大家好!欢迎再次来到我们的“每天五分钟学Linux”系列教程。在前面的课程中,我们学习了如何配置Linux系统的IP地址。今天,我们将探讨如何设置DNS(域名系统),这是确保你的计算机能够正确解析域名成为IP地址的基础。正确配置DNS不仅有助于提高网络访问的速度,还能提升网络的安全性。

DNS设置的重要性

DNS(Domain Name System,域名系统)是互联网中的一项重要技术,它负责将人们容易记忆的域名(例如 www.example.com)转换成计算机可以直接识别的IP地址(例如 192.0.2.1)。通过正确的DNS设置,可以确保你的计算机能够顺利访问互联网上的网站和服务。

DNS配置文件

在Linux系统中,DNS服务器的配置通常保存在/etc/resolv.conf文件中。这个文件包含了系统用来解析域名的DNS服务器地址。在某些Linux发行版中,如Ubuntu和Debian,/etc/resolv.conf文件可能是由resolvconf工具动态管理的。

设置DNS服务器
1. 直接编辑/etc/resolv.conf

在某些情况下,你可以直接编辑/etc/resolv.conf文件来设置DNS服务器。但是需要注意的是,在某些Linux发行版中,这个文件可能会被网络管理工具重写,因此最好通过网络配置文件间接设置DNS服务器。

注意:直接编辑/etc/resolv.conf可能会导致设置被覆盖,因为这个文件可能会被网络管理工具动态更新。

示例

sudo nano /etc/resolv.conf

然后添加或修改DNS服务器地址:

nameserver 8.8.8.8
nameserver 8.8.4.4
2. 通过网络配置文件设置DNS

对于使用ifupdownsystemd-networkd工具管理网络的系统,应该通过网络配置文件设置DNS服务器。

使用ifupdown的配置文件示例

# /etc/network/interfaces

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp
    dns-nameservers 8.8.8.8 8.8.4.4

使用systemd-networkd的配置文件示例

# /etc/systemd/network/eth0.network

[Match]
Name=eth0

[Network]
DHCP=yes
DNS=8.8.8.8;8.8.4.4
3. 使用resolvconf工具

如果你的系统使用resolvconf工具管理DNS设置,可以使用以下命令:

sudo resolvconf -u

然后编辑/etc/resolvconf/resolv.conf.d/base文件:

sudo nano /etc/resolvconf/resolv.conf.d/base

添加DNS服务器地址:

nameserver 8.8.8.8
nameserver 8.8.4.4

接着更新resolv.conf文件:

sudo resolvconf -u
自动获取DNS服务器

如果你希望系统自动从网络提供商处获取DNS服务器地址,可以使用DHCP协议。在这种情况下,不需要手动设置DNS服务器,只需要确保网络接口配置为自动获取IP地址即可。

示例

对于使用ifupdown的系统:

# /etc/network/interfaces

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

对于使用systemd-networkd的系统:

# /etc/systemd/network/eth0.network

[Match]
Name=eth0

[Network]
DHCP=yes
查看DNS设置

设置完成后,可以通过以下命令查看DNS服务器配置:

cat /etc/resolv.conf
实例演示

让我们通过一些具体的例子来练习如何设置DNS服务器:

示例1:手动设置DNS服务器
  1. 编辑网络配置文件

    对于使用ifupdown的系统:

    sudo nano /etc/network/interfaces
    

    对于使用systemd-networkd的系统:

    sudo nano /etc/systemd/network/eth0.network
    
  2. 添加DNS服务器地址

    对于使用ifupdown的系统:

    auto eth0
    iface eth0 inet dhcp
        dns-nameservers 8.8.8.8 8.8.4.4
    

    对于使用systemd-networkd的系统:

    [Match]
    Name=eth0
    
    [Network]
    DHCP=yes
    DNS=8.8.8.8;8.8.4.4
    
  3. 重启网络服务

    对于使用ifupdown的系统:

    sudo service networking restart
    

    对于使用systemd-networkd的系统:

    sudo systemctl restart systemd-networkd
    
示例2:自动获取DNS服务器
  1. 编辑网络配置文件

    对于使用ifupdown的系统:

    sudo nano /etc/network/interfaces
    

    对于使用systemd-networkd的系统:

    sudo nano /etc/systemd/network/eth0.network
    
  2. 设置网络接口为自动获取IP地址

    对于使用ifupdown的系统:

    auto eth0
    iface eth0 inet dhcp
    

    对于使用systemd-networkd的系统:

    [Match]
    Name=eth0
    
    [Network]
    DHCP=yes
    
  3. 重启网络服务

    对于使用ifupdown的系统:

    sudo service networking restart
    

    对于使用systemd-networkd的系统:

    sudo systemctl restart systemd-networkd
    
结语

通过今天的课程,你学习了如何在Linux系统中设置DNS服务器,包括手动设置和自动获取DNS服务器地址。掌握了这些基本技能后,你可以更好地管理你的Linux系统的网络设置,并确保其能够在网络环境中正确解析域名。

如果你有任何问题或需要进一步的帮助,请随时留言。我们下节课将继续带你深入了解Linux的更多知识。再见!


这篇文章旨在帮助读者了解如何在Linux中设置DNS服务器,并通过具体的示例演示DNS设置的基本操作。通过学习这些基本操作,即使是非IT专业的读者也能轻松上手,并为进一步的实战和工作打下坚实的基础。希望这篇文章能够帮助你更好地理解和使用Linux操作系统。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2241800.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu 的 ROS 2 操作系统 turtlebot3 gazebo仿真

引言 TurtleBot3 Gazebo仿真环境是一个非常强大的工具,能够帮助开发者在虚拟环境中测试和验证机器人算法。 Gazebo是一个开源的3D机器人仿真平台,它能支持物理引擎,允许机器人在虚拟环境中模拟和测试。结合ROS,它能提供一个完整的…

前后端交互之动态列

一. 情景 在做项目时,有时候后会遇到后端使用了聚合函数,导致生成的对象的属性数量或数量不固定,因此无法建立一个与之对应的对象来向前端传递数据,这时可以采用NameDataListVO向前端传递数据。 Data Builder AllArgsConstructo…

json转excel,读取json文件写入到excel中【rust语言】

一、rust代码 将json文件写入到 excel中。(保持json :key原始顺序) 可执行程序: 「json2excel.exe」 链接:https://pan.quark.cn/s/fe851c86c659 use indexmap::IndexMap; use serde::Deserialize; use serde_json::{Value,…

【python系列】python数据类型之数字类型

1.定义 数字类型是编程中最常用的数据类型。什么是数字类型,下面是数字类型官方文档的解释:https://docs.python.org/zh-cn/3.10/library/stdtypes.html?highlightstr%20join#numeric-types-int-float-complex 以上可以知道: 数字类型包…

[Redis] Redis服务集群

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏: 🧊 Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 🍕 Collection与…

LLaMA-Factory全流程训练模型

🤗本文主要讲述在docker下使用LLaMA-Factory训练推理模型。 🫡拉取镜像 首先需要启动docker,然后在终端中输入: docker run -tid --gpus all -p 8000:8000 --name LLM -e NVIDIA_DRIVER_CAPABILITIEScompute,utility -e NVIDIA…

计算机组成原理对于学习嵌入式开发的意义

计算机组成原理对于学习嵌入式开发的意义 前言 最近有位同学向我咨询,问学习嵌入式开发需不需要学习硬件?进而引申到了需不需要学习计算机组成原理呢? 正文 首先计算机组成原理是计算机科学与技术专业的一门核心基础课程,它深入…

Python学习从0到1 day27 Python 高阶技巧 ③ 设计模式 — 单例模式

此去经年,再难同游 —— 24.11.11 一、什么是设计模式 设计模式是一种编程套路,可以极大的方便程序的开发最常见、最经典的设计模式,就是我们所学习的面向对象了。 除了面向对象外,在编程中也有很多既定的套路可以方便开发,我们称之为设计模…

算法---解决“汉诺塔”问题

# 初始化步骤计数器 i 1 # 定义移动盘子的函数 def move(n, mfrom, mto): global i # 使用全局变量i来跟踪步骤 print("第%d步:将%d号盘子从%s->%s" % (i, n, mfrom, mto)) # 打印移动步骤 i 1 # 步骤计数器加1 #第一种方法 # 定义汉诺塔问题的递归…

2024游戏陪玩app源码的功能介绍/线上陪玩交友上线即可运营软件平台源码搭建流程

一个完整的陪玩交友系统从概念到实现再到维护的全过程得以清晰展现。每一步都需要团队的紧密协作与细致规划,以确保系统既满足用户需求,又具备良好的稳定性和可扩展性。 基础框架 移动端开发框架:如uniapp,它支持多平台开发&…

AGI自学分享,简单有用的理论与实践

开始必备 谷歌邮箱 没有谷歌邮箱简直“寸步难行”。 GitHub Build and ship software on a single, collaborative platform GitHub GitHub上有所有开源项目的源代码,当然还有许许多多资源的分享。 huggingface huggingface上的space可以试用许多模型demo&a…

基于stm32的智能变频电冰箱系统

基于stm32的智能变频电冰箱系统 持续更新,欢迎关注!!! 基于stm32的智能变频电冰箱系统 随着集成电路技术的发展,单片微型计算机的功能也不断增强,许多高性能的新型机种不断涌现出来。单片机以其功能强、体积小、可靠性高、造价低和开发周期短…

[OpenGL]使用OpenGL实现透明效果

一、简介 本文介绍了如何使用OpenGL实现透明效果(transparent),并在最后给出了全部的代码。 在实现透明效果时,使用OpenGL中的混合(Blend)功能,根据纹理贴图的 alpha 分量将各像素(…

ABAP关于PS模块CJ20N中项目物料的屏幕和字段增强CI_RSADD

网上搜关于CJ20N的屏幕增强,基本都是关于项目定义(CI_PROJ)、项目WBS(CI_PRPS)、项目网络活动工序(CI_AFVU)的字段与屏幕增强,几乎没有关于项目物料(CI_RSADD)的字段屏幕增强,我在这里做一个分享。 主要逻辑:实现badi增强,并自建一个函数组后创建屏幕,在badi里面调用…

Android setTheme设置透明主题无效

【问题现象】 1、首先&#xff0c;你在AndroidManifest.xml中声明一个activity&#xff0c;不给application或者activity设置android:theme, 例如这样&#xff1a; <applicationandroid:allowBackup"true"android:icon"mipmap/ic_launcher"android:lab…

windows下git和TortoiseGit(小乌龟)和putty安装配置对github进行操作

本次安装版本如下&#xff1a; 1&#xff0c;先下载安装tortoiseGit一路下载安装即可一直到在桌面上右键可以看到有git的选项出现为止&#xff0c;注意在第一步的时候选择使用putty还是ssh建立网络连接决定后面的步骤&#xff0c;本次以选择putty为例。 2&#xff0c;安装git&a…

Flutter:input输入框

输入框&#xff1a; // 是否显示关闭按钮 bool _showClear false; // 文字编辑控制器&#xff0c;监听搜索框的变化。 final TextEditingController _controller TextEditingController(); // 输入框发生变化事件 void _onChange(String value){if(value.length > 0){setS…

Ubuntu相关指令

1、查看 Ubuntu 系统的版本信息&#xff0c;在终端输入&#xff1a; lsb_release -a该命令会输出类似如下的信息&#xff1a; No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04.4 LTS Release: 22.04 Codename: jammy 在 Re…

Unity教程(十八)战斗系统 攻击逻辑

Unity开发2D类银河恶魔城游戏学习笔记 Unity教程&#xff08;零&#xff09;Unity和VS的使用相关内容 Unity教程&#xff08;一&#xff09;开始学习状态机 Unity教程&#xff08;二&#xff09;角色移动的实现 Unity教程&#xff08;三&#xff09;角色跳跃的实现 Unity教程&…

【软件测试】设计测试用例的方法(正交法、判定表法、错误猜测法),测试文档的写法

文章目录 正交法正交表设计正交表 判定表法判定表 设计测试用例的步骤 错误猜测法测试文档 正交法 正交试验设计(Orthogonal experimentaldesign)是研究多因素多⽔平的⼀种设计⽅法&#xff0c;它是根据正交性&#xff0c;由试验因素的全部⽔平组合中挑选出部分有代表性的点进…