首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >改变resolv.conf

改变resolv.conf
EN

Unix & Linux用户
提问于 2020-11-08 22:35:37
回答 1查看 5.5K关注 0票数 0

bug: resolv.conf自动填充搜索和名称服务器查找:永久或临时(每次系统启动时运行)。

推荐解决方案:解决程序包解决了自动填充问题(不要与resolv.conf混淆)

代码语言:javascript
复制
-https://www.youtube.com/watch?v=NEyXDdBrw2c
-https://unix.stackexchange.com/q/209760/441088
-https://unix.stackexchange.com/q/362587/441088

我的问题与最后一个(441088)相同,只是需要resolv.conf不再更新(自动填充)搜索和名称服务器。

#sudo vi resolv.conf

代码语言:javascript
复制
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by    resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual   nameservers.
nameserver 84.200.70.40
nameserver 84.200.69.80
nameserver 192.168.4.1 
nameserver 192.168.4.1
nameserver 192.168.1.1
nameserver 1.1.1.1
search autopopulated-isp-router 1.1.1.1

显然,它只是在已经存在的名称服务器下面添加了更多的自动填充名称服务器。(这有点偷偷摸摸,所以您必须继续检查resolv.conf,以捕获名称服务器和搜索服务器的自动填充,这些名称服务器和搜索服务器是自动附加到解析器设置的)

如何更改resolv.conf以防止名称服务器的自动填充和使用isp ip地址进行搜索?

试过:

代码语言:javascript
复制
# service networking stop && service network-manager start
# service networking start && service network-manager stop

网络管理器: Wicd具有网络连接和网络管理器停止,则没有wicd,只有nmtui与网络开始,然后网络管理器启动。 可在Debian10.1和kali 2020上复制(任何版本都试过了),可以用dhcp或静态配置复制(是的,可以在网络上平平本地网关、网络路由器和其他ip)

代码语言:javascript
复制
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed,     try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         files systemd
group:          files systemd
shadow:         files
gshadow:        files

hosts:          files mdns4_minimal [NOTFOUND=return] dns myhostname     mymachines
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis
EN

回答 1

Unix & Linux用户

发布于 2020-11-08 23:01:40

我认为这里的问题在于正在填充NetworkManager文件的resolv.conf。

若要禁用dns更新,请执行以下操作。

1-用编辑器打开conf文件:

代码语言:javascript
复制
sudo vi /etc/NetworkManager/NetworkManager.conf

2-将上述内容添加到main部分:dns=none

3-重新启动NetworkManager:

代码语言:javascript
复制
sudo service network-manager restart

因为您上次编辑:

正如我在这里看到的,您使用的是NetworkManager.service:

A-如果您使用dhcp作为您的接口,那么通过您的DHCP服务器检查DNS设置:

代码语言:javascript
复制
cat /var/lib/NetworkManager/*.lease | grep 'domain-name-servers'

在这种情况下,您可以直接设置所需的dns条目,并禁用DHCP,使其无法提供:

代码语言:javascript
复制
# Edit dhclient configuration file
vi /etc/dhcp/dhclient.conf
# Set the fixed your dns server entries
supersede domain-name-servers 84.200.69.80, 84.200.70.40;

这里很清楚,您的/etc/rupv.conf显然是由systemd解析的服务管理的。

因此,您可以禁用此服务或让它在/etc/systemd/ can中运行和编辑其配置,因此禁用它:

1-首先检查当前systemd的输出是否已解析. check文件和check systemd已解析的文件正在运行:

代码语言:javascript
复制
sudo cat /run/systemd/resolve/resolv.conf
sudo systemd-resolve status

2-停止/禁用服务:

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

3-在NetworkManager中设置DNS处理模式,使系统解析或NetworKService不再管理它(编辑/etc/NetworkManager/NetworkManager.conf ):

代码语言:javascript
复制
  [main]
  dns=none

4-销毁符号链接/etc/surv.conf -> /run/systemd//:

代码语言:javascript
复制
sudo unlink /etc/resolv.conf

5-重新启动NetworkManager:

代码语言:javascript
复制
sudo systemctl restart NetworkManager

6-重新创建resolv.conf文件:

代码语言:javascript
复制
sudo touch /etc/resolv.conf
sudo chown root:root /etc/resolv.conf
sudo chmod 644 /etc/resolv.conf

7-手动填充resolv.conf文件:

代码语言:javascript
复制
echo 'nameserver 84.200.70.40
nameserver 84.200.69.80
nameserver 192.168.4.1 
nameserver 192.168.4.1
nameserver 192.168.1.1
nameserver 1.1.1.1' > /etc/resolv.conf
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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