Qwe*_*tie 6 networking dns 16.04
我一直在尝试将我的 dns 更改为,8.8.8.8
8.8.4.4
但似乎无法做到。
在/etc/resolv.conf
我有
# 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
nameserver 127.0.0.1
Run Code Online (Sandbox Code Playgroud)
在/etc/resolvconf/resolv.conf.d/base
我添加
nameserver 8.8.8.8
nameserver 8.8.4.4
Run Code Online (Sandbox Code Playgroud)
并重新加载 sudo resolvconf -u
但没有任何变化 /etc/resolv.conf
如果我拼错了一些东西,/etc/resolvconf/resolv.conf.d/base
例如添加ameserver 8.8.8.8
和重新加载cat /etc/resolv.conf
现在显示。
# 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
nameserver 127.0.0.1
ameserver 8.8.8.8
Run Code Online (Sandbox Code Playgroud)
我应该怎么做才能更改 dns 以及如何检查它是否有效?
首先恢复我们在评论中所做的一切。
使用:
$ nmcli device
Run Code Online (Sandbox Code Playgroud)
获取网络管理员的状态:
DEVICE TYPE STATE CONNECTION
enp3s0 ethernet connected myConnection
Run Code Online (Sandbox Code Playgroud)
所以我的接口是enp3s0
,我的连接名称是myConnection
。
我可以检查我的连接正在使用哪个 DNS 服务器:
$ nmcli -f IP4.DNS connection show myConnection
Run Code Online (Sandbox Code Playgroud)
对于你来说,我想它会显示:
ipv4.dns: 127.0.0.1
Run Code Online (Sandbox Code Playgroud)
现在让我们设置您想要的 DNS 服务:
nmcli connection modify myConnecion ipv4.dns "8.8.8.8, 8.8.4.4"
Run Code Online (Sandbox Code Playgroud)
全部重新加载连接后:
nmcli connection down myConnecion
nmcli connection up myConnecion
Run Code Online (Sandbox Code Playgroud)
然后检查/etc/resolv.conf
:
cat /etc/resolv.conf
Run Code Online (Sandbox Code Playgroud)
如果它仍然显示您正在用作127.0.0.1
DNS 服务器,那么您很可能正在使用“dnsmasq”,以确保运行:
sudo ss -pln sport = 53
Run Code Online (Sandbox Code Playgroud)
您应该将dnsmasq
名称作为侦听端口 53 的进程获取,因此一切都很好,并且您正在使用正确的 DNS 名称服务,127.0.0.1 只是您和您设置的服务器之间的一层。
如果您想实际看到“8.8.8.8”,那么/etc/resolv.conf
您应该禁用“dnsmasq”。
打开这个文件:
/etc/NetworkManager/NetworkManager.conf
Run Code Online (Sandbox Code Playgroud)
改成。dns=dnsmasq
#dns=dnsmasq
最后:
sudo systemctl restart NetworkManager
Run Code Online (Sandbox Code Playgroud)
现在/etc/resolv.conf
再检查一下。
为了扩展这里的另一个答案,并澄清这里的一些困惑,如果您使用网络管理器来管理您的连接,它还包括一个小版本的 dnsmasq。这就是您的 resolv.conf 中的 127.* 地址 - 本地主机的 IP 地址,dnsmasq 已绑定到该地址。
网络管理器在配置了 DNS 服务器后,将告诉 dnsmasq 将请求中继到哪些 DNS 服务器。
如果您在网络管理器的设置中将 8.8.8.8 设置为您的 DNS 服务器,则 dnsmasq 会将所有未缓存的请求转发到 8.8.8.8 以进行实际解析,而您的计算机将 DNS 请求直接发送到 dnsmasq 进行处理。
令人困惑,我知道,但是当您使用网络管理器管理连接时,您不能依靠 resolv.conf 来显示正在使用的 DNS 服务器。
归档时间: |
|
查看次数: |
35378 次 |
最近记录: |