如何在Ubuntu系统中配置和管理DNS设置?

Ubuntu中,可以通过修改/etc/systemd/resolved.conf文件来设置DNS服务器。

Ubuntu DNS详细内容

一、DNS简介

1 什么是DNS?

DNS(Domain Name System,域名系统)是互联网中用于将域名解析为IP地址的系统,就是将人类可读的域名(example.com)转换为计算机可识别的IP地址(192.0.2.1),DNS是互联网基础设施的一部分,它使得用户可以通过易记的域名来访问互联网上的各种服务,而不必记住复杂的IP地址。

2 DNS的工作原理

DNS使用分层的树状结构进行域名解析,其中顶级域名(TLD)如.com、.org等由全球管理机构负责管理,而次级域名则由注册商或组织管理,DNS查询流程通常如下:

1、用户发起请求:用户在浏览器中输入域名并发起请求。

2、本地缓存检查:用户的计算机首先检查本地缓存中是否有该域名对应的IP地址。

3、递归查询:如果本地缓存没有结果,本地域名服务器会代表用户向根域名服务器发起请求。

4、迭代查询:根域名服务器返回顶级域名服务器的信息,本地域名服务器继续向下查询,直到获得最终的IP地址。

5、返回结果:本地域名服务器将获取到的IP地址返回给用户,并缓存该结果以备后续使用。

二、Ubuntu系统中的DNS配置

1 查看当前的DNS配置

在Ubuntu系统中,可以使用以下命令查看当前的DNS配置:

cat /etc/resolv.conf

该文件包含了当前系统的DNS服务器地址和搜索域名。

2 修改DNS配置

要修改Ubuntu系统的DNS配置,可以编辑/etc/netplan/01netcfg.yaml文件:

sudo nano /etc/netplan/01netcfg.yaml

在文件中添加或修改DNS服务器地址:

network:
  version: 2
  renderer: NetworkManager
  ethernets:
    ens33:
      dhcp4: no
      addresses: [192.168.1.100/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]

保存并退出后,应用新的网络配置:

sudo netplan apply

3 验证DNS配置

可以使用nslookupdig命令验证DNS配置是否正确:

nslookup www.google.com

dig google.com

这些命令会返回指定域名的IP地址,确保DNS解析正常。

三、搭建DNS服务器

1 安装Bind9

在Ubuntu上安装Bind9的命令如下:

sudo aptget update
sudo aptget install bind9 bind9utils bind9doc

安装完成后,Bind9会自动启动。

2 配置Bind9

3.2.1 主配置文件named.conf

Bind9的主配置文件位于/etc/bind/named.conf,可以对其进行编辑以调整服务器的行为,设置监听地址和允许查询的IP地址范围:

options {
    directory "/var/cache/bind";
    recursion yes;
    allowquery { any; };
    listenon { any; };
};

3.2.2 区域文件db.yourdomain.com

/etc/bind/目录下创建区域文件,例如db.nyc3.example.com,并定义域名的A记录、CNAME记录、MX记录等:

$TTL    604800
@       IN      SOA     ns1.nyc3.example.com. root.localhost. (
                             2         ; Serial
                        604800     ; Refresh
                         86400      ; Retry
                        2419200     ; Expire
                         604800 )   ; Negative Cache TTL
;
@       IN      NS      ns1.nyc3.example.com.
@       IN      A       192.168.1.10
ns1     IN      A       192.168.1.10
www     IN      A       192.168.1.11
mail    IN      A       192.168.1.12

3.2.3 反向解析文件db.192.168.1

/etc/bind/目录下创建反向解析文件,例如db.192.168.1,并定义IP地址到域名的映射:

$TTL    604800
@       IN      SOA     ns1.nyc3.example.com. root.localhost. (
                             2         ; Serial
                            604800     ; Refresh
                           86400      ; Retry
                          2419200     ; Expire
                          604800 )   ; Negative Cache TTL
;
@       IN      NS      ns1.nyc3.example.com.
1       IN      PTR     ns1.nyc3.example.com.
10      IN      PTR     www.nyc3.example.com.
11      IN      PTR     mail.nyc3.example.com.
12      IN      PTR     ftp.nyc3.example.com.

3.2.4 配置选项文件named.conf.options

打开/etc/bind/named.conf.options文件,进行如下配置:

options {
    directory "/var/bind";
    recursion yes;
    allowquery { any; };
    listenon { any; };
};

3 启动并验证Bind9

重新启动Bind9服务以应用更改:

sudo systemctl restart bind9

使用以下命令检查配置文件和区域文件的语法是否正确:

sudo namedcheckconf
sudo namedcheckzone nyc3.example.com /etc/bind/db.nyc3.example.com

在Windows或其他客户端设备上,将DNS服务器地址设置为Bind9服务器的IP地址,并进行测试以确保DNS解析正常。

四、常见问题与解答栏目

4.1 如何更改Ubuntu系统中的DNS服务器?

答:可以通过编辑/etc/netplan/01netcfg.yaml文件来更改Ubuntu系统中的DNS服务器,在文件中添加或修改nameservers字段,然后运行sudo netplan apply命令应用更改,示例如下:

network:
  version: 2
  renderer: NetworkManager
  ethernets:
    ens33:
      dhcp4: no
      addresses: [192.168.1.100/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]

4.2 如何在Ubuntu中验证DNS配置?

答:可以使用nslookupdig命令验证DNS配置,运行以下命令查看www.google.com的IP地址:

nslookup www.google.com

dig google.com

这些命令会返回指定域名的IP地址,确保DNS解析正常。

4.3 如何在Ubuntu上搭建DNS服务器?

答:可以通过以下步骤在Ubuntu上搭建DNS服务器:

1、安装Bind9:

sudo aptget update
sudo aptget install bind9 bind9utils bind9doc

2、配置主配置文件named.conf、区域文件db.yourdomain.com和反向解析文件db.192.168.1

3、修改选项文件named.conf.options

4、重新启动Bind9服务并验证配置。

来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/82399.html

Like (0)
小编小编
Previous 2024年12月4日 01:42
Next 2024年12月4日 01:54

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注