首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Linux上手动设置DNS?

问如何在Linux上手动设置DNS?
EN

Unix & Linux用户
提问于 2019-01-14 00:09:14
回答 2查看 51.5K关注 0票数 6

在Linux中,由于管理/etc/resolv.conf服务器的程序很多,所以当我们设置DNS时,DNS经常会被覆盖。

如何正确设置DNS?

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2019-01-14 00:09:14

Linux下的

DNS

DNS在linux上的使用是通过C库中的一组例程完成的,这些例程提供对Internet域名系统(DNS)的访问。解析器配置文件(resolv.conf)包含解析器例程第一次被进程调用时读取的信息。简而言之,请求DNS的每个进程都将通过库读取/etc/resolv.conf。The NSS是在此基础上分层的,并由/etc/nsswitch.conf配置。

Linux DNS配置位于/etc/resolv.conf 文件中,但有许多程序/服务希望在/etc/resolv.conf自动管理和处理DNS配置文件。在某些情况下,您可能希望自己管理该文件。管理DNS的每个程序/服务都有自己的配置文件,如/etc/dnsmasq.conf (对于dnsmasq服务),并在连接更改和/或其他事件上追加DNS配置。一种快速的解决方案是用chattr +i /etc/resolv.conf锁定DNS配置文件,但在某些情况下不推荐这样做,更好的解决方案是使用DNS类(dnsmasq/network/resolvconf/等)正确地设置所有程序/服务。

恢复DNS

的控制

下面是一个完整的setups列表- <#>to

1. Resolvconf:

配置文件

代码语言:javascript
复制
cat /etc/resolvconf/resolv.conf.d/head
nameserver 8.8.4.4
cat /etc/resolvconf/resolv.conf.d/base
nameserver 8.8.4.4

更新配置

代码语言:javascript
复制
sudo resolvconf -u

禁用解决方案

代码语言:javascript
复制
systemctl disable --now resolvconf.service 

2. Dnsmasq服务:

配置文件

代码语言:javascript
复制
cat /etc/dnsmasq.conf
server=1.1.1.1
server=8.8.4.4

更新配置

代码语言:javascript
复制
sudo systemctl restart dnsmasq.service

3.网络管理器:

配置文件

代码语言:javascript
复制
/etc/NetworkManager/*

禁用DNS

代码语言:javascript
复制
$ cat /etc/NetworkManager/conf.d/no-dns.conf
[main]
dns=none

启用DNS

代码语言:javascript
复制
$ cat /etc/NetworkManager/conf.d/dns.conf
[main]
dns=default

[global-dns]
searches=example.com

[global-dns-domain-*]

使用解析服务

代码语言:javascript
复制
$ cat /usr/lib/NetworkManager/conf.d/resolved.conf 
[main]
dns=systemd-resolved

使用解析

代码语言:javascript
复制
$ cat /usr/lib/NetworkManager/conf.d/resolvconf.conf 
[main]
rc-manager=resolvconf

更新配置

代码语言:javascript
复制
systemctl restart NetworkManager.service

4.网络接口:

配置文件

代码语言:javascript
复制
$ cat /etc/network/interfaces
#nameservers
# or dns-search like so
# dns-search x.y 
dns-nameservers 4.4.4.4 8.8.8.8

更新Config

代码语言:javascript
复制
reboot

5. DHCP客户端:

配置文件

代码语言:javascript
复制
$ cat /etc/dhcp3/dhclient.conf
supersede domain-name-servers ,;

更新Config

代码语言:javascript
复制
reboot

6. Rdnssd服务:

禁用rdnssd

代码语言:javascript
复制
systemctl disable --now rdnssd.service

7.解决服务:

禁用已解决

代码语言:javascript
复制
systemctl disable --now systemd-resolved.service

8. Netconfig:

配置文件

代码语言:javascript
复制
/etc/sysconfig/network/config

禁用netconfig

代码语言:javascript
复制
cat /etc/sysconfig/network/config
NETCONFIG_DNS_POLICY=""

更新Config

代码语言:javascript
复制
reboot

设置DNS服务器

/etc/resolv.conf配置示例

代码语言:javascript
复制
#Cloudflare
nameserver 1.0.0.1

#Google
#nameserver 8.8.8.8
#nameserver 8.8.4.4

#Cloudflare 
#nameserver 1.1.1.1

#Classic Config
#nameserver 192.168.1.1
#search lan
票数 13
EN

Unix & Linux用户

发布于 2022-11-01 05:38:00

在36岁的Fedora上我做了:

代码语言:javascript
复制
# print existing DNS settings for all interfaces
$ resolvectl dns

# set new DNS
$ resolvectl dns enp0s22f6 8.8.8.8 8.8.4.4

# check again
$ resolvectl dns
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/494324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档