关于linux常见的DNS解析问题

wangchunlin 2022-8-12 122 8/12

首先,需要确定DNS是通过哪种方法确定的,简单的可以通过cat /etc/resolve.conf来确定,以下方法都是永久改,临时直接改/etc/resolve.conf即可,可以分为几种情况:

1. 直接配置/etc/resolve.conf

关于linux常见的DNS解析问题
  1. 直接改/etc/resolve.conf

这种比较简单,直接改了就行,重启也不会被覆盖或重置。

其他情况通过直接修改此文件,仅仅当时有用,重启服务或者系统都会消失。

2. 使用systemd-resolve服务来管理

关于linux常见的DNS解析问题
  1. 修改/etc/systemd/resolve.conf文件
  2. 把网卡配置文件中每个网卡单独的dns配置改了,或者删了

由于确定/etc/systemd/resolved.conf是优先于网卡配置文件的,所以或者

  1. 直接改/etc/systemd/resolved.conf文件,全局就会生成
  2. systemd-resolve --set-dns --interface来设置单网卡(不清楚全局和单网卡哪个优先还是同时)

可以通过systemctl启动该服务

配置地点为/etc/systemd/resolve.conf中,为全局配置

systemd-resolve命令可以对其设置,常用的有--status查看状态

默认情况下每个网卡配置的dns会成为systemd-resolve的网卡配置,由于我也不确定全局和各个网卡dns哪个优先,或者是同时请求,所以最好还是连/etc/network中的网卡配置一起改了,另外我也不确定systemd-resolve对单网卡的配置会不会覆盖网卡配置文件中dns,总之都改了就对了。

确定这种方式是以/etc/systemd/resolved.conf该文件优先

3. 配置文件自动生成

关于linux常见的DNS解析问题
  1. 修改网卡配置文件,更改或者删了
  2. 修改/etc/resolvconf/resolv.conf.d/base这个文件,加入nameserver 1.1.1.1

如果只修改base文件,dns的顺位可能还是网卡优先,除了head还有几个文件,可以改了试试,我没试,修改各个网卡配置文件位置,根据系统和版本不尽相同,见文末。

4. 通过dnsmasq管理

关于linux常见的DNS解析问题
关于linux常见的DNS解析问题
一般dnsmasq会监听53端口,iptables会把所有目标53端口的重定向到本机53(污染dns)
  1. 还是改网卡配置比较好

在openwrt系统中,位置在dnsmsaq的配置中,比如/tmp/resolv.conf.d/resolv.conf.auto

* 各个网卡配置文件位置

  1. /etc/network/interfaces
  2. /etc/network/interfaces.d/*
  3. /etc/netplan/*.yaml

肯定没有全,光是ubuntu14到22就一直在改,反正/etc/network算是核心

- THE END -

wangchunlin

8月27日16:08

最后修改:2022年8月27日
0

非特殊说明,本博所有文章均为博主原创。

共有 0 条评论