> 文章列表 > clash-fakedns原理

clash-fakedns原理

clash-fakedns原理

fakedns 则是 Clash 中的一种模式,用于拦截 DNS 请求并返回虚假的 DNS 解析结果。
具体原理如下:
Clash 在启动时会创建一个本地的 DNS 服务器,它会监听在本地的一个 UDP 端口上,一般默认是 53 端口。
当用户的设备向外部 DNS 服务器发起 DNS 查询请求时,Clash 的 fakedns 模式会先截获这个 DNS 请求,并根据用户配置的规则判断是否需要返回虚假的 DNS 解析结果。
如果需要返回虚假的结果,那么 Clash 的 fakedns 模式会自己解析该 DNS 请求,并返回一个虚假的 IP 地址或者域名。

如果不需要返回虚假的结果,那么 Clash 的 fakedns 模式会将该 DNS 请求转发给真正的外部 DNS 服务器进行解析,并将结果返回给用户的设备。

需要注意的是,Clash 的 fakedns 模式只能拦截 UDP 协议的 DNS 请求,因此如果用户使用的是 TCP 协议进行 DNS 查询,那么 fakedns 模式就无法拦截并返回虚假的结果了。

mac版本修改dns:

1.获取出口网卡:

bash -c route -n get default | grep 'interface:' | awk -F ' ' 'NR==1{print $2}' | xargs echo -n

2.根据出口网卡找对应得服务

networksetup -listallhardwareports

3.根据服务获取或者修改dns

networksetup -getdnsservers 服务名

networksetup -setdnsservers 服务名