在 Android 中我们有类似的应用程序代达罗斯这是一个本地 VPN(不是远程 VPN),用于快速更改 DNS。我需要在 Ubuntu 中使用这种方式,以便在需要时更改 DNS。
我们有没有什么办法可以创建这种不建立远程隧道而只更改 DNS 的 VPN?或者有任何其他方法可以切换 DNS 服务器,因为我需要频繁切换 DNS。
答案1
可能的方法是:
禁用 DNS 缓存(例如,这种方式https://tecadmin.net/disable-local-dns-caching-ubuntu/)
将连接更改为“自动(仅限地址)”
添加您的 DNS,然后更改它。
另一种方法是创建您自己的本地 DNS,它会将您重定向到另一个 DNS,将其设置为您的默认 DNS,然后只需更改本地 DNS 的设置即可。但这并不容易。
在 Android 中可能需要 VPN,因为您无法直接访问网络设置。
另一种方法是使用网络管理器控制台客户端执行此操作,如下所示:
nmcli con modify eth0 +ipv4.dns 8.8.8.8 # add 8.8.8.8 to IPv4 DNS list servers
nmcli con modify eth0 -ipv4.dns 8.8.8.8 # remove 8.8.8.8 from list of DNS
笔记:eth0
如果需要,请用您的网络接口名称替换。
您还可以为这些命令创建 bash 别名,将以下几行附加到~/.bashrc
alias dns_add='nmcli con modify eth0 +ipv4.dns'
alias dns_rm='nmcli con modify eth0 -ipv4.dns'
像这样使用它们:
$ dns_add 8.8.8.8
$ dns_rm 8.8.8.8
答案2
我这样做了:
/bin/dnsme:
#!/bin/bash
sudo cp /etc/resolv.conf /etc/resolv-original.conf
sudo cp /etc/resolv-dnsme.conf /etc/resolv.conf
/bin/undnsme:
#!/bin/bash
sudo cp /etc/resolv-original.conf /etc/resolv.conf
在/etc/resolv-dnsme.conf:
nameserver x.x.x.x
nameserver x.x.x.x
options edns0