Surge 使用手册:DNS

本文来自 Surge 使用手册|如何定制自己的规则配置 专题

接上一篇Surge 使用手册:策略组,在开始之前建议先看看小谈网络劫持大概了解下 DNS 是干嘛的以及有关 DNS 的劫持。

Surge 里的 DNS 设置在「首页」的底部

DNS 服务器设置

先进入「DNS 服务器」

此处可设置多个 DNS 服务并且强制替代系统的 DNS 设置,这样不仅 DNS 可选性多了在蜂窝数据的环境下也可以使用。

而对于 DNS 服务器的选择是当请求一个地址时会同时向所设置的几个 DNS 并发请求,采用最先得到响应的服务器结果。

而 DNS 服务器有没有推荐及如何设置?

  1. 使用系统获取到的(一般为运营商) DNS 和公共 DNS 设置为「system,119.29.29.29,223.5.5.5」说明:日常情况,在网络没有劫持的情况下。
  2. 仅使用系统(一般为运营商) DNS 设置为「system」说明:若网络存在劫持 DNS(亦称为抢答或污染)如长城宽带和部分中国移动宽带的情况下不使用公共 DNS。
  3. 仅使用公共 DNS设置为「119.29.29.29,223.5.5.5」说明:若系统(一般为运营商) DNS 解析不准确或网络存在 DNS 劫持(但不是劫持 DNS)不使用系统 DNS。

具体 DNS 如何选择还是得看个人情况,因为系统获取到的 DNS 不仅是运营商,还可能是公司、公共场所自己有所修改后派发的。

本地 DNS 映射

那除了接受 DNS 服务器给出的查询结果有没有办法自己指定域名指向或者某某域名使用指定 DNS 服务器查询?有的,这就是本地 DNS 映射。

这个基本等同于修改系统中的 hosts 文件,近年使用 hosts 解决 DNS 污染的朋友对这个应该不陌生。

先说「本地值」,此处可以设置某个域名的解析结果为指定的 IP 或者域名。

比如说淘宝现在有两个服务器,一个在上海一个在北京,而你人目前在北京但发现 DNS 解析结果总是让你去访问上海的服务器,这时候在搞清楚淘宝在北京的服务器 IP 地址后下就可以强制淘宝访问北京的服务器。

再比如说,现在有的网站会有专门区域服务器域名,比如用于上海地区的「sh.xxx.com」和用于北京地区的「bj.xxx.com」网站内容都是一致的,如此情况更方便直接把「xxx.com」指定到「bj.xxx.com」即可。

接着说「特定 DNS 服务器」,比如你可能觉得阿里巴巴系的服务比如淘宝使用阿里巴巴的 DNS 查询结果会比其他 DNS 更好,那么也可以在「特定 DNS 服务器」中进行设定。

那么这些设定具体是「文本模式」中是怎样的?需要新加一个「[Host]」

[General]
loglevel = notify
skip-proxy = 192.168.0.0/16, 193.168.0.0/24, 10.0.0.0/8, 172.16.0.0/12, 100.64.0.0/10, 17.0.0.0/8, 127.0.0.1, localhost, *.local
dns-server = system,119.29.29.29,223.5.5.5
allow-wifi-access = false
ipv6 = false

[Proxy]
# 节点名称 = 协议,服务器地址,服务器端口,encrypt-method=加密协议,password=密码,obfs=混淆类型(http/tls),obfs-host=混淆地址
1 = ss, 1.2.3.4, 443, encrypt-method=aes-128-gcm, password=password
2 = ss, 1.2.3.4, 443, encrypt-method=aes-128-gcm, password=password
3 = ss, 1.2.3.4, 443, encrypt-method=chacha20-ietf-poly1305, password=password, obfs=tls, obfs-host=yunjiasu-cdn.net
4 = ss, 1.2.3.4, 443, encrypt-method=chacha20-ietf-poly1305, password=password, obfs=http, obfs-host=bing.com

[Proxy Group]
# 策略组名称 = 策略组类型,策略组名称或者节点名称
# 节点选项
PROXY = select,AUTO,1,2,3,4
# 视频服务
VIDEO = select,2,3
# 节点延迟自动测试
AUTO = url-test,1,2,3,4,url = http://www.gstatic.com/generate_204

[Rule]
# Local Area Network
DOMAIN-SUFFIX,local,DIRECT
IP-CIDR,192.168.0.0/16,DIRECT
IP-CIDR,10.0.0.0/8,DIRECT
IP-CIDR,172.16.0.0/12,DIRECT
IP-CIDR,127.0.0.0/8,DIRECT
IP-CIDR,100.64.0.0/10,DIRECT

# GeoIP China
GEOIP,CN,DIRECT

# 最终或 DNS 查询失败时走代理
FINAL,PROXY,dns-failed

[Host]
# 使用通配符把 W3Schools 的域名全都指向某个服务器
*.w3schools.com = 192.229.173.207
# 或者
# 仅把 W3Schools 的 @ 和 www 解析指向某个服务器
w3schools.com = 192.229.173.207
www.w3schools.com = 192.229.173.207

# 将百度的 baidu.com 域名指向本地 IP,效果等于 DOMAIN-SUFFIX,baidu.com,REJECT
*.baidu.com = 127.0.0.1

# 淘宝和天猫使用阿里巴巴 DNS 服务器查询
*.taobao.com = server:223.5.5.5
*.tmall.com = server:223.5.5.5

如上示例,因为网络原因我们无法直接访问 W3Schools,但是可以通过指定服务器到 IP 为「192.229.173.207」的服务器上进行访问(这也是不通过代理解决污染的一种方式),且这个操作是可以细化的,比如示例中可以使用通配符把该域名的所有域名前缀一律解析到指定服务器,而有的网站是主站和资源(比如图片)以域名前缀分开的,就可以分开设置。

而另一个小技巧就是电脑上常用的在不需要防火墙等复杂操作下将一个网站禁止访问,如示例中将百度指向 127.0.0.1 本地,而本地没有百度的服务器所以就理所当然的无法访问了,不过在 Surge 中有「Rule」就不需要这样操作了。

而最后关于淘宝和天猫的设置,就是上面说的将某些域名指定某个 DNS 服务器进行解析。

下一篇Surge 使用手册:Rewrite 和 MitM

您可能还喜欢...

发表评论

电子邮件地址不会被公开。 必填项已用*标注