150 lines
3.5 KiB
YAML
150 lines
3.5 KiB
YAML
log:
|
|
level: info
|
|
plugins:
|
|
# Num0: Cache
|
|
- tag: lazy_cache
|
|
type: cache
|
|
args:
|
|
size: 20000
|
|
lazy_cache_ttl: 86400
|
|
|
|
# Num1: CN domain
|
|
# https://raw.githubusercontent.com/Loyalsoldier/v2ray-rules-dat/release/direct-list.txt
|
|
# cat direct-list.txt | grep -v "regexp:\|full:" | sort -u | uniq -u > china-domain-2.lst
|
|
- tag: geosite_cn
|
|
type: domain_set
|
|
args:
|
|
files:
|
|
- "/etc/ssrplus/mosdns-chinadns/geosite_cn.txt"
|
|
- "/etc/ssrplus/white.list"
|
|
|
|
# Num2: CN IP
|
|
# https://raw.githubusercontent.com/Hackl0us/GeoIP2-CN/release/CN-ip-cidr.txt
|
|
- tag: geoip_cn
|
|
type: ip_set
|
|
args:
|
|
files:
|
|
- "/etc/ssrplus/china_ssr.txt"
|
|
|
|
# Num3: Domain need proxy (gfwlist)
|
|
# https://raw.githubusercontent.com/Loyalsoldier/v2ray-rules-dat/release/proxy-list.txt
|
|
# https://raw.githubusercontent.com/Loyalsoldier/v2ray-rules-dat/release/gfw.txt
|
|
- tag: geosite_not_cn
|
|
type: domain_set
|
|
args:
|
|
files:
|
|
- "/etc/ssrplus/mosdns-chinadns/geosite_geolocation_not_cn.txt"
|
|
- "/etc/ssrplus/black.list"
|
|
|
|
# Num4: Forward to google
|
|
- tag: forward_remote
|
|
type: forward
|
|
args:
|
|
concurrent: 2
|
|
upstreams:
|
|
|
|
# Num5: Forward to local
|
|
# ifstatus wan | jsonfilter -e '@["dns-server"]'
|
|
- tag: forward_local
|
|
type: forward
|
|
args:
|
|
concurrent: 2
|
|
upstreams:
|
|
|
|
# Num6
|
|
- tag: local_sequence
|
|
type: sequence
|
|
args:
|
|
- exec: $forward_local
|
|
|
|
# Num7
|
|
- tag: remote_sequence_with_IPv6
|
|
type: sequence
|
|
args:
|
|
- exec: prefer_ipv4
|
|
- exec: $forward_remote
|
|
|
|
# Num8
|
|
- tag: remote_sequence_disable_IPv6
|
|
type: sequence
|
|
args:
|
|
- exec: prefer_ipv4
|
|
- exec: $forward_remote
|
|
- matches:
|
|
- qtype 28 65
|
|
exec: reject 0
|
|
|
|
# Num9
|
|
- tag: query_is_local_domain
|
|
type: sequence
|
|
args:
|
|
- matches: qname $geosite_cn
|
|
exec: $local_sequence
|
|
|
|
# Num10
|
|
- tag: query_is_proxy_domain
|
|
type: sequence
|
|
args:
|
|
- matches: qname $geosite_not_cn
|
|
- exec: ipset blacklist,inet,24
|
|
|
|
# fallback 用本地服务器 sequence
|
|
# 返回非国内 ip 则 drop_resp
|
|
# Num11
|
|
- tag: query_is_local_ip
|
|
type: sequence
|
|
args:
|
|
- exec: $local_sequence
|
|
- matches: "!resp_ip $geoip_cn"
|
|
exec: drop_resp
|
|
|
|
# Num12
|
|
# fallback 用远程服务器 sequence
|
|
- tag: query_is_remote_ip
|
|
type: sequence
|
|
args:
|
|
- exec: $remote_sequence_disable_IPv6
|
|
- exec: ipset blacklist,inet,24
|
|
|
|
# fallback 用远程服务器 sequence
|
|
# query_is_local_ip to query_is_remote_ip
|
|
# Num13
|
|
- tag: fallback
|
|
type: fallback
|
|
args:
|
|
# DNS Leak solution
|
|
primary: query_is_local_ip
|
|
secondary: query_is_remote_ip
|
|
threshold: 600
|
|
always_standby: true
|
|
|
|
# 有响应终止返回
|
|
# Num14
|
|
- tag: has_resp_sequence
|
|
type: sequence
|
|
args:
|
|
- matches: has_resp
|
|
exec: accept
|
|
|
|
# Num15
|
|
- tag: main_sequence
|
|
type: sequence
|
|
args:
|
|
- exec: $lazy_cache
|
|
- exec: $query_is_local_domain
|
|
- exec: jump has_resp_sequence
|
|
- exec: $query_is_proxy_domain
|
|
- exec: jump has_resp_sequence
|
|
- exec: $fallback
|
|
|
|
# Num16
|
|
- tag: udp_server
|
|
type: udp_server
|
|
args:
|
|
entry: main_sequence
|
|
|
|
# Num17
|
|
- tag: tcp_server
|
|
type: tcp_server
|
|
args:
|
|
entry: main_sequence |