forked from yaosj2k/dnsforwarder
-
Notifications
You must be signed in to change notification settings - Fork 0
/
default.config
executable file
·411 lines (356 loc) · 13.4 KB
/
default.config
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
# DNS 转发器的配置文件
# Configure File for dnsforwarder
# 此配置文件最好是 ANSI 编码的
# 相对路径的写法
# Windows:
# 支持用 `% %' 包围起来的相对路径,比如 `%SYSTEMROOT%\System32\drivers\etc\hosts'。
# `%PROGRAMDIRECTORY%' 表示程序所在的文件夹。
# Linux:
# 支持类似 `${HOME}' 的变量,比如 `${HOME}/hosts'。
# `${PROGRAMDIRECTORY}' 表示程序的配置文件夹,一般为 `/root/.dnsforwarder/',执行 `dnsforwarder -p' 可以获得具体的位置。
##################################################
#
# 日志文件设置
#
##################################################
# LogOn <BOOLEAN>
# 是否打开文件日志输出 (since 5.0.4)
LogOn false
# LogFileThresholdLength <NUM>
# 单个日志文件大小的临界值(字节)(since 5.0.4)
# 当日志文件大小超过这个临界值后,当前的日志文件将会被重命名,然后建立一个新的日志文件,继续记录日志
LogFileThresholdLength 102400
# LogFileFolder <PATH>
# 设定日志文件所在的文件夹 (since 5.0.4)
# 日志文件初始的文件名为 `dnsforwarder.log',当超过临界值之后,将会被重命名为 `dnsforwarder.log.1'、`dnsforwarder.log.2' 等等,然后重新建立一个 dnsforwarder.log' 文件
# 此路径的默认值为程序所在的文件夹(Windows)或程序的配置文件夹(Linux)
LogFileFolder
##################################################
#
# 本地
#
##################################################
# LocalInterface <IP>
# 设置在本地开启的界面,可以是本地回环地址 (127.0.0.1) ,本地局域网,以及互联网 (since 2.2)
# 如果是 IPv6 地址,请在地址两端加上方括号,例如 [::1] (本地回环)、[fe80::699c:f79a:9bb6:1] (since 2.3)
LocalInterface 127.0.0.1
# LocalPort <NUM>
# 本地开启的端口 (since 2.2)
LocalPort 53
# OpenLocalTCP <BOOLEAN>
# 在本地开启TCP,以便接收TCP协议的查询 (since 2.2)
# 可选值:`false' 或 `true'
OpenLocalTCP false
##################################################
#
# IP 选择策略
#
##################################################
#########################
# 服务器地址
#########################
# 您可以设置两组上游服务器,
# 一组是用 TCP 协议的服务器 (由 `TCPServer' 指定),
# 另一组是用 UDP 协议的服务器 (由 `UDPServer' 指定)
# 选项 `PrimaryServer' 用来指定首选的服务器(同时也指定了协议)
# 任何不在排除列表 (或者 GFW List) 中的域都会优先通过首选服务器及其协议来查询,
# 在排除列表 (或者 GFW List) 中的域会优先使用另一组服务器并通过另一种协议查询。
# PrimaryServer
# 首选服务器 (since 2.2)
# 可选值:`TCP' 或 `UDP'
PrimaryServer UDP
# TCPServer <IP[:PORT]>
# 指定用 TCP 协议查询的上游服务器 (since 2.2)
# 可以指定多个服务器,服务器之间用半角逗号隔开 (since 2.3)
# 如果不加端口号,则默认为 53 (since 2.3)
# 例如 192.168.1.2:500 以及 4.2.2.2 (since 2.3)
# 对于IPv6地址,请在地址两端加方括号,例如 [2001:4860:4860::8888] 以及加端口的形式 [2001:4860:4860::8888]:53 (since 2.3)
TCPServer 8.8.4.4,8.8.8.8
# TCPProxy <IP[:PORT]>
# 设置 TCP 查询时的 Socks5 代理服务器(试验功能) (since 5.0.11)
# 写法和 `TCPServer' 一样
# 可以指定多个服务器,服务器之间用半角逗号隔开
# 如果不加端口号,则默认为 1080
# 此选项如果不为空,则当通过 TCP 协议向上游服务器查询时,通过此选项设置的代理进行
# 如果此选项为空,则当通过 TCP 协议向上游服务器查询时,直接与服务器进行连接
# 此选项对通过 UDP 协议向上游服务器的查询无效
TCPProxy
# UDPServer <IP[:PORT]>
# 指定用 UDP 协议查询的上游服务器 (since 2.2)
# 可以指定多个服务器,服务器之间用半角逗号隔开 (since 2.3)
# 如果不加端口号,则默认为 53 (since 2.3)
# 例如 192.168.1.2:500 以及 4.2.2.2 (since 2.3)
# 对于IPv6地址,请在地址两端加方括号,例如 [2001:4860:4860::8888] 以及加端口的形式 [2001:4860:4860::8888]:53 (since 2.3)
UDPServer 208.67.220.220,8.8.8.8,114.114.115.115
# DedicatedServer <DOMAIN1 SERVER_IP1>,<DOMAIN2 SERVER_IP2>,...
# 为某些域名指定专门的查询服务器,而不使用服务器列表(`TCPServer' 和 `UDPServer')中的服务器 (since 2.5 b1)
# 格式为:域名 服务器地址
#
# 例如:DedicatedServer www.google.com 8.8.8.8
# 这样所有对域名 www.google.com 的查询都通过 8.8.8.8 这个服务器来进行
# 如果所指定的域名不在排除列表中,那么将通过 `PrimaryServer' 所指定的协议与服务器通讯,
# 否则将通过另一种协议与服务器通讯。
# 不同项之间用半角逗号 (`,') 分隔,同时注意最后不要有逗号
# 可以有多条 `DedicatedServer' 选项
DedicatedServer
#########################
# 服务器选项
#########################
# ParallelQuery <BOOLEAN>
# 是否启用 UDP 并发查询 (since 2.6 b1)
# 并发查询指的是,向所有指定的 UDP 服务器发送查询请求,取最先接受到的有效回复作为查询结果,并丢弃其余的回复
# 开启此选项必须保证 `UDPServer' 中的服务器都是 IPv4 或者都是 IPv6 的
# 此选项不影响 `DedicatedServer' 的设置,也就是说,对于已经指定专用服务器的域名,只通过专用服务器进行查询
# 可选值:`false' 或 `true'
ParallelQuery true
# UDPAntiPollution <BOOLEAN>
# 是否开启 UDP 防污染 (since 2.6 b1)
# “防污染”指的是过滤伪造的 DNS 数据包
# 开启时需要保证 `UDPServer' 中存在国外的 DNS 服务器,如果配合使用 `UDPBlock_IP' 选项将大大提高过滤的精确度
# 可选值:`false' 或 `true'
UDPAntiPollution true
# UDPBlock_IP <IP1>,<IP2>,.....
# 阻挡含有以下 IP 地址(支持 IPv4 和 IPv6 地址 (since 5.0.11) )的 UDP DNS 数据包 (since 2.6 b1)
# 仅对通过 UDP 服务器查询而来的 DNS 数据包有效
# 以下列表中已经含有部分伪造的 IP 地址,可以执行 `dnsforwarder -P' 来获取更多伪造的 IP 地址
# 如果 `UDPAntiPollution' 为 `false',此选项无效
# IPv6 地址不用加方括号
UDPBlock_IP 243.185.187.39,46.82.174.68,37.61.54.158,93.46.8.89,59.24.3.173,203.98.7.65,8.7.198.45,78.16.49.15,159.106.121.75
# IPSubstituting <IP1 IP'1>,<IP2 IP'2>,.....
# 替换 DNS 数据包中的 IP 地址(只支持 IPv4 地址) (since 5.0.1)
# 例如:
# IPSubstituting 127.0.0.1 1.2.0.127
# 的效果是把 DNS 数据包中所有的 127.0.0.1 地址替换为 1.2.0.127
# 仅替换通过服务器(TCP 和 UDP)查询而来的 DNS 数据包,对于缓存中和 Hosts 中的结果无效
# 多条替换项目用半角逗号 (`,') 分隔,也可以写多行 `IPSubstituting'
IPSubstituting
#########################
# 排除列表
#########################
# ExcludedDomain <DOMAIN1>,<DOMAIN2>,.....
# 排除列表,每个域之间用半角逗号 (`,') 分隔,同时注意最后不要有逗号 (since 2.2)
# 支持通配符。 (since 2.2.2)
# 一个项目如果不含通配符,则从域名尾部开始匹配,例如 `123.com' 则会匹配所有以 `123.com' 结尾的域名。
# 如果含通配符则严格按照通配符来匹配。
# 可以有多条 `ExcludedDomain' 选项 (since 2.2.2)
ExcludedDomain
# ExcludedList <PATH>
# 从文件载入到排除列表 (since 5.0.3)
ExcludedList
# GfwList <STRING>
# 加载 GFW List (since 2.2.3)
# GFW List 中的域名将被添加到排除列表
# 如果保留为空,则不载入 GFW List
#GfwList https://autoproxy-gfwlist.googlecode.com/svn/trunk/gfwlist.txt
# GfwListBase64Decode <BOOLEAN>
# GFW List 是否需要 Base64 解码
# 可选值:`false' 或 `true'
GfwListBase64Decode true
# GfwListUpdateInterval <NUM>
# 重新载入 GFW List 的间隔时间,秒 (since 2.2.4)
# -1 表示不重新载入
# 如果保留为空。则使用默认值 (21600)
GfwListUpdateInterval 21600
# GfwListRetryInterval <NUM>
# 当下载 GFW List 失败后的重试时间,秒 (since 2.2.4)
# 如果保留为空,则使用默认值 (30)
GfwListRetryInterval 30
# GfwListDownloadPath <PATH>
# GFW List 下载到本地文件的路径 (since 2.3)
# 支持相对路径 (since 5.0.3)
# 如果保留为空,则默认在与程序所在相同的文件夹内(Windows)或程序的配置文件夹内(Linux)
GfwListDownloadPath
#########################
# Hosts
#########################
# Hosts <STRING>
# Hosts 文件的 URL,可以是本地 Hosts 文件 (以 file:// 开头,支持相对路径),也可以是网络上的 Hosts 文件 (以 http:// 或者 https:// 开头)。 (since 5.0.5)
# 例如 file://C:/Windows/System32/drivers/etc/hosts 或 file:///etc/hosts 或 http://xxx.com/hosts
# 可以指定多个 Hosts,以半角逗号(`,')分隔,也可以写多条 `Hosts',路径两头不要加引号
# 在 Hosts 文件中,支持通配符 (`*' 和 `?') (只能在域名中出现通配符)
# Hosts 文件必须是原始格式,不能是压缩文件或者 HTML 文件
# Hosts 文件最好是 ANSI 编码的
# Hosts 中的 IPv6 地址不用加方括号
# 如果保留为空,则不从文件载入 Hosts
Hosts
# HostsUpdateInterval <NUM>
# 重新载入 Hosts 文件的间隔时间,秒 (since 2.2)
# -1 表示不重新载入
# 如果保留为空,则使用默认值 (18000)
HostsUpdateInterval 18000
# HostsDownloadPath <PATH>
# Hosts 文件的下载到本地文件的路径 (不是文件夹路径) (since 2.2)
# 例如 C:\Windows\Temp\hosts 或者 /tmp/hosts
# 支持相对路径 (since 5.0.3)
# 如果文件存在则覆盖
# 如果保留为空,则默认在与程序所在相同的文件夹内(Windows)或程序的配置文件夹内(Linux)
HostsDownloadPath
# HostsScript <PATH>
# 在每次下载完 Hosts 文件后、加载 Hosts 文件之前执行的脚本 (since 2.2)
# 支持相对路径 (since 5.0.3)
# 如果保留为空,则不执行脚本
HostsScript
# HostsRetryInterval <NUM>
# 当网络 Hosts 下载失败后的重试时间,秒 (since 2.2.2)
# 仅对网络 Hosts 有效
# 如果保留为空,则使用默认值 (30)
HostsRetryInterval 30
# AppendHosts <HOSTS>,<HOSTS>,...
# 附加的 hosts,即使 `Hosts' 选项为空也照样载入 (since 2.2.2)
# <HOSTS> 的写法与文件中的一样,同样支持通配符
# IPv6 地址不用加方括号
# 多条 hosts 可以用半角逗号分隔开,也可以写多条 `AppendHosts'
# 比如可以写成:
# AppendHosts 127.0.0.1 123.com,127.0.0.1 456.com,1.2.3.4 foobar.*
# 也可以分多条写:
# AppendHosts 127.0.0.1 123.com
# AppendHosts 127.0.0.1 456.com
# AppendHosts 1.2.3.4 foobar.*
#
# 也可以定义 CName 的 Hosts 项,例如:
# AppendHosts www.google.cn *.google.com
# 这样所有匹配 *.google.com 的域名都将指向 www.google.cn 的 IP 地址 (since 2.3)
#
# 如果使某些域名跳过在 hosts 中的查询,可以
# AppendHosts @@ *.012345.com
# 这样所有匹配 *.012345.com 的域名都不会在 hosts 中查询
#
# 各种 hosts 的优先级从高到低
# 带 `@@' 的禁止项
# 一般 hosts 项
# CName hosts 项
# 在以上的基础上:
# `AppendHosts' 指定的 hosts 比 `Hosts' 配置选项指定的文件中的 hosts 的优先级高
# 排在越前的 `Hosts' 项优先级越高
# 排在越前的 hosts 条目优先级越高
AppendHosts
# DisableIpv6WhenIpv4Exists
# 如果一个域名在 Hosts 被指定了一个 IPv4 地址(包括文件 Hosts 和 `AppendHosts' 指定的 Hosts),那么拒绝对这个域名的 IPv6 地址查询 (since 5.0.12)
DisableIpv6WhenIpv4Exists false
##################################################
#
# 缓存控制
#
##################################################
# UseCache <BOOLEAN>
# 是否使用缓存(默认为文件缓存) (since 2.2)
# 可选值:`false' 或 `true'
UseCache false
# CacheSize <NUM>
# 缓存大小 (字节)
# 缓存大小不能小于 102400 (100KB) (since 2.3)
CacheSize 1048576
# MemoryCache <BOOLEAN>
# 是否使用内存缓存,而不是文件缓存 (since 2.3.2)
# 如果 `UseCache' 为 `false',此选项无效
# 可选值:`false' 或 `true'
MemoryCache true
# CacheFile <PATH>
# 手工指定缓存文件 (不是文件夹) (since 2.3)
# 支持相对路径 (since 5.0.3)
# 如果保留为空,则默认在与程序所在相同的文件夹内(Windows)或程序的配置文件夹内(Linux)
# 如果 `MemoryCache' 为 `true',此选项无效
CacheFile
# IgnoreTTL <BOOLEAN>
# 是否忽略 TTL (since 2.2)
# 可选值:`false' 或 `true'
# 为 `true' 时将忽略 TTL,此时所有的缓存条目将不会被移除
# 为 `false' 时不忽略 TTL,缓存条目将会按照 TTL 的时间来移除
# 当 `UseCache' 的值为 `false' 时,此选项无效
IgnoreTTL false
# OverrideTTL <NUM>
# 强制使所有缓存的条目的 TTL 为 <NUM> (since 2.2)
# 若 <NUM> 为 -1,则表示不进行强制
# 当 `UseCache' 的值为 `false' 时,此选项无效
OverrideTTL -1
# MultipleTTL <NUM>
# 将所有缓存条目的 TTL 加倍,倍数为 <NUM> (since 2.2)
# 当 `UseCache' 的值为 `false' 时,此选项无效
# 当 `IgnoreTTL' 的值为 `true' 时,此选项无效
MultipleTTL 1
# ReloadCache <BOOLEAN>
# 当程序启动后是否重新载入已有的文件缓存 (since 2.2.3)
# 已有的缓存大小必须和 `CacheSize' 所指定的大小相等
# 可选值:`false' 或 `true'
# 如果 `MemoryCache' 的值为 `true',此选项无效
ReloadCache false
# OverwriteCache <BOOLEAN>
# 如果已有的文件缓存无法重载,是否直接将其覆盖掉 (since 2.3)
# 可选值:`false' 或 `true'
# 如果 `MemoryCache' 的值为 `true',此选项无效
# 如果 `ReloadCache' 的值为 `false',此选项无效
OverwriteCache false
##################################################
#
# 杂项
#
##################################################
# DisabledType <NUM1>,<NUM2>,.....
# 禁止查询的 DNS 类型列表,每个类型(用数字代表)之间用半角逗号 (`,') 分隔 (since 2.2)
# 所有的 DNS 类型:
# A 1 IPv4 地址
# AAAA 28 IPv6 地址
# APL 42
# CERT 37
# CNAME 5
# DHCID 49
# DLV 32769
# DNAME 39
# DNSKEY 48
# DS 43
# HIP 55
# IPSECKEY 45
# KEY 25
# KX 36
# LOC 29
# MX 15
# NAPTR 35
# NS 2 Name Server
# NSEC 47
# NSEC3 50
# NSEC3PARAM 51
# PTR 12 Domain pointer
# RRSIG 46
# RP 17
# SIG 24
# SOA 6 start of authority record
# SPF 99
# SRV 33
# SSHFP 44
# TA 32768
# TKEY 249
# TSIG 250
# TXT 16
# ANY 255
# AXFR 252
# IXFR 251
# OPT 41
DisabledType
# DisabledDomain <DOMAIN1>,<DOMAIN2>,.....
# 禁止查询的域列表,每个域之间用半角逗号 (`,') 分隔 (since 2.2)
# 支持通配符。 (since 2.2.2)
# 一个项目如果不含通配符,则从域名尾部开始匹配,例如 `123.com' 则会匹配所有以 `123.com' 结尾的域名。
# 如果含通配符则严格按照通配符来匹配。
# 可以有多条DisabledDomain (since 2.2.2)
DisabledDomain
# DisabledList <PATH>
# 从文件载入到禁用列表 (since 5.0.3)
DisabledList
# RefusingResponseCode <NUM>
# 当拒绝一次查询(`DisabledType' 或者 `DisabledDomain')的时候所返回的状态码 (since 2.6 b1)
# 状态码 描述
# 0 No error condition
# 1 Format error
# 2 Server failure
# 3 Name Error (NXDOMAIN)
# 4 Not Implemented
# 5 Refused
# 参见 RFC 1035,`4.1.1. Header section format',`Response code'
RefusingResponseCode 0
# DomainStatistic <BOOLEAN>
# 是否启用域名统计 (since 2.5 b1)
# 可选值:`false' 或 `true'
DomainStatistic false
# StatisticUpdateInterval <NUM>
# 域名统计刷新时间间隔(秒) (since 2.5 b1)
StatisticUpdateInterval 29