DNS搭建和使用

DNS搭建和使用

DNS搭建

  1. 安装工具
yum install -y bind-*
  1. 修改配置文件
vim /etc/named.conf
options {
        listen-on port 53 { any; }; #修改为any;
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; }; #修改为any;
};
# 省略...

# 新增正向和反向解析配置
zone "xxx.com" IN{
        type master;
        file "up.zone";
};
zone "1.168.192.in-addr.arpa" IN{
        type master;
        file "down.zone";
};
  1. 检测语法错误
named-checkconf /etc/named.conf
  1. 配置正向解析文件
cd /var/named
cp named.localhost up.zone -p  #复制正向解析文件模板
 
vim up.zone   #配置文件
 
$TTL 1D
@       IN SOA  xxx.com. root.xxx.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns.xxx.com.
dns     A       192.168.1.3
a       A       192.168.1.4

# 判断正向解析文件:
named-checkzone up.zone /var/named/up.zone 
  1. 配置反向解析文件
cp up.zone down.zone -p //复制反向解析文件模板
vim down.zone  //配置反向解析文件模板

$TTL 1D
@       IN SOA  xxx.com. root.xxx.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns.xxx.com.
3       PTR     a.xxx.com.

# 判断反向解析文件
named-checkzone down.zone /var/named/down.zone
  1. 重启生效和测试
systemctl restart named
nslookup 

DNS使用

配置全局dns解析

vi /etc/reslov.conf

添加配置
nameserver 8.8.8.8
nameserver 8.8.4.4
注意多个dns会随机使用

linux系统下为每个网卡配置特定的dns

判断网络管理工具
  • NetworkManager:
systemctl status NetworkManager

如果命令显示 “Active: active”,则表示您的系统正在使用 NetworkManager。

  • systemd-networkd:
systemctl status systemd-networkd

如果命令显示 “Active: active”,则表示您的系统正在使用 systemd-networkd。

  • ifupdown (ifconfig):
ifconfig

如果您在命令输出中看到网卡接口信息(例如 “eth0” 或 “wlan0”),则表示您的系统可能在使用 ifupdown 工具。

  • netplan:
ls /etc/netplan/

如果输出中显示了网络配置文件(以 .yaml 结尾),则表示您的系统使用了 netplan。

systemd-networkd 为网卡设置特定DNS
  1. 使用本地dns
nameserver 127.0.0.53 #表示使用本地 DNS 解析器来解析域名。在这种情况下,任何向该系统发送的 DNS 查询都会由本地 DNS 解析器(systemd-resolved 服务)处理,并将查询发送到正确的 DNS 服务器进行处理
options edns0 trust-ad # 指示 DNS 解析器在使用 EDNS0 协议发送 DNS 查询时,启用 AD(授权数据)标志,并信任 DNS 响应中的 AD 标志。这可以帮助防止 DNS 缓存污染等攻击
search . # 表示 DNS 解析器应该搜索的默认域名列表。在这种情况下,没有提供任何默认域名。如果您想使用默认的域名搜索列表,可以在此处输入一个或多个域名,每个域名之间用空格分隔
  1. 打开终端,并使用文本编辑器(如 nano 或 vim)创建或编辑一个名为 your-interface.network 的文件,其中 your-interface 是您要配置的网卡接口的名称。例如,如果要配置 eth0 网卡,可以运行以下命令:
sudo nano /etc/systemd/network/your-interface.network
  1. 在打开的文件中,添加以下内容:
[Match]
Name=your-interface

[Network]
DNS=your-dns-server-ip

将 your-interface 替换为您要配置的网卡接口的名称,将 your-dns-server-ip 替换为您要使用的 DNS 服务器的 IP 地址。您还可以指定多个 DNS 服务器,将它们以逗号分隔。

例如,如果要将 eth0 网卡的 DNS 服务器设置为 8.8.8.8 和 8.8.4.4,则配置文件的内容如下:

[Match]
Name=ztld2duimp
[Network]
DNS=10.191.167.1
DHCP=ipv4
LinkLocalAddressing=ipv6

[DHCP]
RouteMetric=100
UseMTU=true
  1. 保存并关闭文件。

  2. 重启 systemd-networkd 服务以应用更改:

sudo systemctl restart systemd-networkd
networkctl status <interface>
systemctl status systemd-resolved
NetworkManager 为网卡设置特定DNS
  1. 配置全局dns解析,使用dnsmasq作为内部dns工具
sudo yum install dnsmasq
sudo systemctl start dnsmasq
sudo systemctl enable dnsmasq
vi /etc/99-custom-dns.conf
[main]
dns=dnsmasq

[dnsmasq]
servers=100.125.1.250,10.191.167.1

需要注意的是,/etc/NetworkManager/system-connections 中配置的 DNS 服务器将优先于 /etc/NetworkManager/conf.d 中的全局配置。因此,如果特定网络连接在 .nmconnection 文件中有指定 DNS 服务器,那么它将覆盖全局配置。

使用dnsmasq转发特定域名到其他dns服务器

要使用 dnsmasq 将 xxx.lan 域名和其子域名转发到特定的 DNS 服务器(例如 10.191.167.1),您可以执行以下步骤:

打开 dnsmasq 配置文件。

sudo nano /etc/NetworkManager/dnsmasq.conf

在文件中添加以下行,配置转发规则。

server=/xxx.lan/10.191.167.1

这将指示 dnsmasq 将 ljp.lan 域名及其所有子域名转发到 10.191.167.1。

保存并关闭文件。

重启 dnsmasq 服务,以使配置更改生效。

sudo systemctl restart NetworkManager
NetworkManager使用dnsmasq时会启用内置的dnsmasq,不用单独启动dnsmasq;
现在,当您在本地网络中使用 dnsmasq 作为 DNS 服务器时,它将把 ljp.lan 域名和其子域名的解析请求转发到 10.191.167.1。

请注意,您需要确保已正确设置 dnsmasq 作为您网络中的 DNS 服务器,并已将其配置为本地网络上的 DNS 解析器。此外,确保 10.191.167.1 是有效的 DNS 服务器地址并可正常访问。

使用system-connections为特定网卡配置dns(实测对zerotier无效)
  1. 打开终端并运行以下命令来查看当前可用的网络连接和网卡名称:
nmcli device

这将显示所有可用的网络设备以及它们的名称,如 eth0 或 wlan0。

  1. 找到您要设置 DNS 的网卡名称,并运行以下命令来编辑该网卡的连接文件:
nmcli connection modify <connection-name> ipv4.dns <DNS_IP_ADDRESS>

或者

sudo nano /etc/NetworkManager/system-connections/<connection-name>

将 替换为您要编辑的网卡连接文件的名称。

  1. 找到 [ipv4] 或 [ipv6] 段,在其下方添加 dns 行,指定要使用的 DNS 服务器的 IP 地址。例如:
[connection]
id=connection-name

[ipv4]
method=auto
dns=100.125.1.250;10.191.167.1;

  1. 保存并关闭文件。

  2. 重启 NetworkManager 服务以应用更改:

sudo systemctl restart NetworkManager

完成以上步骤后,您已经成功为特定网卡设置了DNS服务器。您可以运行以下命令检查新的DNS配置是否已应用:

nmcli device show <interface>

将 替换为您要查看的网卡接口的名称,例如 eth0 或 wlan0。

/var/run/NetworkManager/system-connections目录说明

/var/run/NetworkManager/system-connections 目录下的文件是 NetworkManager 存储已经配置的网络连接的位置,在使用 NetworkManager 配置网络连接时会自动生成。

如果您手动修改了该目录下的文件,重启 NetworkManager 后该文件可能会被 NetworkManager 重新生成,而您所做的更改将丢失。

如果您想修改或定制一个现有的连接,可以将该连接文件复制到 /etc/NetworkManager/system-connections 目录下,然后在新的文件中进行修改。这样即使重启 NetworkManager,您的修改也不会丢失。

例如,要修改名为 “myconnection” 的连接文件,可以执行以下命令:

sudo cp /var/run/NetworkManager/system-connections/myconnection /etc/NetworkManager/system-connections/
sudo nano /etc/NetworkManager/system-connections/myconnection

然后使用文本编辑器对 “myconnection” 文件进行必要的修改。您可能需要使用管理员权限来打开编辑器,例如 sudo nano 或类似的命令。修改后,使用以下命令重新启动 NetworkManager:

sudo systemctl restart NetworkManager.service

这样,您的更改就会生效。

netplan 为网卡设置特定DNS
  1. 打开终端并进入 /etc/netplan 目录:
cd /etc/netplan
  1. 找到正在使用的网络配置文件,它通常以 .yaml 扩展名结尾。例如,可以是 01-network-manager-all.yaml

  2. 使用文本编辑器(如 nanovim)打开配置文件:

sudo nano 01-network-manager-all.yaml
  1. 在文件中,找到您要设置 DNS 的网卡的配置块。通常,每个网卡都在 network 字段下进行定义。

  2. 在要设置的网卡的配置块中,添加 nameservers 字段,并指定要使用的 DNS 服务器的 IP 地址。例如:

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
      addresses: [192.168.0.2/24]  # 设置静态IP地址
      gateway4: 192.168.0.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]  # 设置DNS服务器
  1. 保存并关闭文件。

  2. 运行以下命令以应用新的网络配置:

sudo netplan apply

NetworkManager 和 network 是两个不同的网络管理工具。它们具有不同的特点和用途。

network:

network 是一个传统的网络管理工具,最常见于使用 systemd 系统的 Linux 发行版中。它使用配置文件来定义和管理网络接口和网络连接。这些配置文件通常存储在 /etc/sysconfig/network-scripts/ 目录下,以接口名称命名。

network 工具需要手动编辑和配置网络接口文件,并重新启动网络服务才能应用更改。它提供了一些基本的网络配置选项,如 IP 地址、子网掩码、网关、DNS 等。

network 工具适用于具有简单网络需求的系统,也适合那些不使用 GUI 界面进行网络配置的环境。

NetworkManager:

NetworkManager 是一个更高级和动态的网络管理工具,设计用于在桌面和移动设备上提供更灵活的网络配置。大多数现代的桌面 Linux 发行版都使用 NetworkManager 作为默认的网络管理工具。

NetworkManager 具有一个图形界面(GNOME 和 KDE 桌面环境提供了对应的前端),同时还有命令行工具 nmcli。NetworkManager 在连接到网络时自动检测可用的网络接口,并根据网络环境的变化动态调整网络配置。

NetworkManager 支持各种网络连接类型,例如有线连接、无线连接、VPN 和移动宽带等。它还提供了高级的功能,如网络配置文件、自动连接管理、多个配置文件、优先级设置等。

NetworkManager 更适合那些需要自动管理网络连接并处理复杂网络环境的系统,特别是桌面和移动设备。

总结来说,NetworkManager 是一个用于桌面和移动设备的动态网络管理工具,而 network 是一个更传统的网络管理工具,适用于那些不需要自动网络连接和复杂网络环境的系统。选择使用哪个工具取决于您的需求和系统环境。

network 和 NetworkManager 可以一起使用吗?

在一台 Linux 系统中,可以同时安装和使用 network 和 NetworkManager,但是一般情况下它们不会同时使用同一个网络接口。一般情况下,使用其中一个网络管理工具即可满足大部分网络需求。

如果您希望在一台系统中同时使用 network 和 NetworkManager,可以为每个网络接口选择使用的网络管理工具。例如,对于无线网络接口,一般情况下会使用 NetworkManager 管理,而对于有线网络接口则可以使用 network 管理。

需要注意的是,如果您尝试同时在同一网络接口上使用两个网络管理工具,可能会导致冲突和错误。这是因为它们可能会尝试同时配置相同的网络设置(如 IP 地址、网关和 DNS 等),从而产生冲突。因此,在同一网络接口上最好只选择一个网络管理工具来管理网络配置。

总之,如果您需要管理多个网络接口或连接多种类型的网络,可以同时安装和使用 network 和 NetworkManager 等多个网络管理工具。但是,在单个网络接口上最好只使用一个网络管理工具。

network配置方法

以下是一些步骤,可以帮助您配置单个网卡的 DNS 服务器:

  1. 打开网络接口文件:

您可以使用类似以下命令的文本编辑器打开此文件:

sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0

这里假设您想要配置的网卡是 eth0。

  1. 添加 DNS 服务器:

在打开的文件的末尾,添加以下命令来配置 DNS 服务器(请替换为您要使用的真实地址):

DNS1=8.8.8.8
DNS2=8.8.4.4

这里添加两个 DNS 地址。如果仅需要使用一个 DNS 服务器,只需添加 DNS1 即可。

  1. 保存并关闭文件。

  2. 重启网络接口:

在保存更改后,您需要重启该网卡的网络接口,以更新 DNS 配置。您可以使用以下命令来重启网络接口:

sudo ifdown eth0 && sudo ifup eth0

这将使该网卡的网络接口断开连接并重新连接。

自测发现作用于虚拟网卡上不能正常运行,配置的dns会修改resolev.conf,即全局修改

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值