blob: a6a26ac4481dfb990aed6ac868db58490727cd98 (
plain)
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
|
global {
wan_interface: auto
auto_config_kernel_parameter: true
log_level: info
# Keep the original domain when dialing through the proxy. This also makes
# domain-based routing independent from the IP returned by the local DNS.
dial_mode: domain
allow_insecure: false
}
# Reuse the local Shadowsocks SOCKS5 listener instead of duplicating the
# remote server address and password in this configuration.
node {
# local_ss: 'socks5://127.0.0.1:8888'
# Direct Shadowsocks node example using the SIP002 URI format. Replace the
# cipher, password, host, and port, then uncomment it. Base64 is encoding,
# not encryption, so keep the real link under secret/.
# example_ss: 'ss://YWVzLTEyOC1nY206dGVzdA@example.com:8388#example-ss'
ss: 'ss://aes-256-gcm:xxxxxxxxxx@xxxx:1234'
}
group {
proxy {
filter: name(ss)
policy: fixed(0)
}
}
# Let dae observe DNS queries so that routing rules can match domain names.
dns {
upstream {
router: 'udp://192.168.8.1:53'
direct_dns: 'tcp+udp://223.5.5.5:53'
}
routing {
request {
qname(suffix: l) -> router
qname(suffix: lan) -> router
fallback: direct_dns
}
response {
fallback: accept
}
}
}
routing {
# Shadowsocks must reach its remote server directly to avoid a proxy loop.
pname(sslocal) -> direct
# Keep local, multicast, and other private destinations direct.
dip(224.0.0.0/3, 'ff00::/8') -> direct
dip(geoip:private) -> direct
# Route mainland China IPs directly. Everything else uses the proxy, so
# overseas destinations do not need to be maintained in a domain list.
dip(geoip:cn) -> direct
fallback: proxy
}
|