This commit is contained in:
Debian
2023-01-07 10:33:32 +00:00
parent 1714941b01
commit 05f892f630
20 changed files with 0 additions and 66466 deletions

View File

@@ -1,19 +0,0 @@
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: ruby/setup-ruby@v1
with:
ruby-version: '3.0'
bundler-cache: true
- name: Run tests
run: bundle exec sus
- name: gen hash
run: |
echo "hash=$(sha256sum accelerated-domains.china.conf)" >> $GITHUB_ENV
- uses: actions/upload-artifact@v3
with:
name: ${{env.hash}}
path: /dev/null

View File

@@ -1,18 +0,0 @@
Copyright © 2013 Felix Yan <felixonmars@archlinux.org>
This work is free. You can redistribute it and/or modify it under the
terms of the Do What The Fuck You Want To Public License, Version 2,
as published by Sam Hocevar. See below for more details.
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004
Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. You just DO WHAT THE FUCK YOU WANT TO.

View File

@@ -1,71 +0,0 @@
SERVER=114.114.114.114
SMARTDNS_SPEEDTEST_MODE=ping,tcp:80
NEWLINE=UNIX
SHELL=bash
raw:
sed -e 's|^server=/\(.*\)/114.114.114.114$$|\1|' accelerated-domains.china.conf | grep -Ev '^#' > accelerated-domains.china.raw.txt
sed -e 's|^server=/\(.*\)/114.114.114.114$$|\1|' google.china.conf | grep -Ev '^#' > google.china.raw.txt
sed -e 's|^server=/\(.*\)/114.114.114.114$$|\1|' apple.china.conf | grep -Ev '^#' > apple.china.raw.txt
dnsmasq: raw
sed -e 's|\(.*\)|server=/\1/$(SERVER)|' accelerated-domains.china.raw.txt > accelerated-domains.china.dnsmasq.conf
sed -e 's|\(.*\)|server=/\1/$(SERVER)|' google.china.raw.txt > google.china.dnsmasq.conf
sed -e 's|\(.*\)|server=/\1/$(SERVER)|' apple.china.raw.txt > apple.china.dnsmasq.conf
coredns: raw
sed -e "s|\(.*\)|\1 {\n forward . $(SERVER)\n}|" accelerated-domains.china.raw.txt > accelerated-domains.china.coredns.conf
sed -e "s|\(.*\)|\1 {\n forward . $(SERVER)\n}|" google.china.raw.txt > google.china.coredns.conf
sed -e "s|\(.*\)|\1 {\n forward . $(SERVER)\n}|" apple.china.raw.txt > apple.china.coredns.conf
smartdns: raw
sed -e "s|\(.*\)|nameserver /\1/$(SERVER)|" accelerated-domains.china.raw.txt > accelerated-domains.china.smartdns.conf
sed -e "s|\(.*\)|nameserver /\1/$(SERVER)|" google.china.raw.txt > google.china.smartdns.conf
sed -e "s|\(.*\)|nameserver /\1/$(SERVER)|" apple.china.raw.txt > apple.china.smartdns.conf
sed -e "s|=| |" bogus-nxdomain.china.conf > bogus-nxdomain.china.smartdns.conf
smartdns-domain-rules: raw
sed -e "s|\(.*\)|domain-rules /\1/ -speed-check-mode $(SMARTDNS_SPEEDTEST_MODE) -nameserver $(SERVER)|" accelerated-domains.china.raw.txt > accelerated-domains.china.domain.smartdns.conf
sed -e "s|\(.*\)|domain-rules /\1/ -speed-check-mode $(SMARTDNS_SPEEDTEST_MODE) -nameserver $(SERVER)|" google.china.raw.txt > google.china.domain.smartdns.conf
sed -e "s|\(.*\)|domain-rules /\1/ -speed-check-mode $(SMARTDNS_SPEEDTEST_MODE) -nameserver $(SERVER)|" apple.china.raw.txt > apple.china.domain.smartdns.conf
unbound: raw
sed -e 's|\(.*\)|forward-zone:\n name: "\1."\n forward-addr: $(SERVER)\n|' accelerated-domains.china.raw.txt > accelerated-domains.china.unbound.conf
sed -e 's|\(.*\)|forward-zone:\n name: "\1."\n forward-addr: $(SERVER)\n|' google.china.raw.txt > google.china.unbound.conf
sed -e 's|\(.*\)|forward-zone:\n name: "\1."\n forward-addr: $(SERVER)\n|' apple.china.raw.txt > apple.china.unbound.conf
ifeq ($(NEWLINE),DOS)
sed -i 's/\r*$$/\r/' accelerated-domains.china.unbound.conf google.china.unbound.conf apple.china.unbound.conf
endif
bind: raw
sed -e 's|\(.*\)|zone "\1." {type forward; forwarders { $(SERVER); }; };|' accelerated-domains.china.raw.txt > accelerated-domains.china.bind.conf
sed -e 's|\(.*\)|zone "\1." {type forward; forwarders { $(SERVER); }; };|' google.china.raw.txt > google.china.bind.conf
sed -e 's|\(.*\)|zone "\1." {type forward; forwarders { $(SERVER); }; };|' apple.china.raw.txt > apple.china.bind.conf
ifeq ($(NEWLINE),DOS)
sed -i 's/\r*$$/\r/' accelerated-domains.china.bind.conf google.china.bind.conf apple.china.bind.conf
endif
dnscrypt-proxy: raw
sed -e 's|\(.*\)|\1 $(SERVER)|' accelerated-domains.china.raw.txt google.china.raw.txt apple.china.raw.txt > dnscrypt-proxy-forwarding-rules.txt
ifeq ($(NEWLINE),DOS)
sed -i 's/\r*$$/\r/' dnscrypt-proxy-forwarding-rules.txt
endif
dnsforwarder6: raw
{ printf "protocol udp\nserver $(SERVER)\nparallel on \n"; cat accelerated-domains.china.raw.txt; } > accelerated-domains.china.dnsforwarder.conf
{ printf "protocol udp\nserver $(SERVER)\nparallel on \n"; cat google.china.raw.txt; } > google.china.dnsforwarder.conf
{ printf "protocol udp\nserver $(SERVER)\nparallel on \n"; cat apple.china.raw.txt; } > apple.china.dnsforwarder.conf
ifeq ($(NEWLINE),DOS)
sed -i 's/\r*$$/\r/' accelerated-domains.china.dnsforwarder.conf google.china.dnsforwarder.conf apple.china.dnsforwarder.conf
endif
adguardhome: raw
cat google.china.raw.txt | tr "\n" "/" | sed -e 's|^|/|' -e 's|\(.*\)|[\1]$(SERVER)|' > google.china.adguardhome.conf
cat accelerated-domains.china.raw.txt | tr "\n" "/" | sed -e 's|^|/|' -e 's|\(.*\)|[\1]$(SERVER)|' > accelerated-domains.china.adguardhome.conf
cat apple.china.raw.txt | tr "\n" "/" | sed -e 's|^|/|' -e 's|\(.*\)|[\1]$(SERVER)|' > apple.china.adguardhome.conf
ifeq ($(NEWLINE),DOS)
sed -i 's/\r*$$/\r/' accelerated-domains.china.adguardhome.conf google.china.adguardhome.conf apple.china.adguardhome.conf
endif
clean:
rm -f {accelerated-domains,google,apple}.china.*.conf *.smartdns.conf {accelerated-domains,google,apple}.china.raw.txt dnscrypt-proxy-forwarding-rules.txt

View File

@@ -1,78 +0,0 @@
dnsmasq-china-list
==================
Chinese-specific configuration to improve your favorite DNS server. Best partner for chnroutes.
- Improve resolve speed for Chinese domains.
- Get the best CDN node near you whenever possible, but don't compromise foreign CDN results so you also get best CDN node for your VPN at the same time.
- Block ISP ads on NXDOMAIN result (like 114so).
Details
=======
- `accelerated-domains.china.conf`: General domains to be accelerated.
These domains have a better resolving speed and/or result when using a Chinese DNS server.
To determine if a domain is eligible, one of the criteria below must be met:
- The domain's NS server is located in China mainland.
- The domain will resolve to an IP located in China mainland when using a Chinese DNS server, but _not_ always do when using a foreign DNS server (For example, CDN accelerated sites that have node in China). This however does _not_ include those having node _near_ China mainland, like in Japan, Hong Kong, Taiwan, etc.
Please don't add subdomains if the top domain is already in the list. This includes all .cn domains which are already matched by the `/cn/` rule.
- `google.china.conf`: Google domains to be accelerated.
These domains are resolved to Google China servers when using a Chinese DNS. In most conditions this will yield better page load time for sites using Google's web services, e.g. Google Web Fonts and AdSense.
Bear in mind that they are _not_ considered stable. **Use at your own risk**.
- `apple.china.conf`: Apple domains to be accelerated.
Some ISPs (often smaller ones) have problem accessing Apple's assets using their China mainland CDN servers. Please consider remove this file if that happens to you. See #156 for some more info.
- `bogus-nxdomain.china.conf`: Known addresses that are hijacking NXDOMAIN results returned by DNS servers.
Usage
=====
Automatic Installation (recommended)
------------------------------------
1. Fetch the installer from github (or a mirror): `wget https://raw.githubusercontent.com/felixonmars/dnsmasq-china-list/master/install.sh`
2. (Optional) Edit it to use your favorite DNS server and/or another mirror to download the list.
3. Run it as root: `sudo ./install.sh`
You can save the installer and run it again to update the list regularly.
Manual Installation
-------------------
1. Place accelerated-domains.china.conf, bogus-nxdomain.china.conf (and optionally google.china.conf, apple.china.conf) under /etc/dnsmasq.d/ (Create the folder if it does not exist).
2. Uncomment "conf-dir=/etc/dnsmasq.d" in /etc/dnsmasq.conf
3. (Optional) Place dnsmasq-update-china-list into /usr/bin/
4. (Optional) Make custom DNS server configuration and/or other services' configuration.
```shell
# change the default DNS server to 202.96.128.86
make SERVER=202.96.128.86 dnsmasq
# generate unbound's configuration
make unbound
# generate bind's configuration
make bind
# full example of generating dnscrypt-proxy forwarding rules for Windows
make SERVER=101.6.6.6 NEWLINE=DOS dnscrypt-proxy
```
License
=======
```
Copyright © 2015 Felix Yan <felixonmars@archlinux.org>
This work is free. You can redistribute it and/or modify it under the
terms of the Do What The Fuck You Want To Public License, Version 2,
as published by Sam Hocevar. See the LICENSE file for more details.
```

File diff suppressed because it is too large Load Diff

View File

@@ -1,137 +0,0 @@
server=/a1.mzstatic.com/114.114.114.114
server=/a2.mzstatic.com/114.114.114.114
server=/a3.mzstatic.com/114.114.114.114
server=/a4.mzstatic.com/114.114.114.114
server=/a5.mzstatic.com/114.114.114.114
server=/adcdownload.apple.com.akadns.net/114.114.114.114
server=/adcdownload.apple.com/114.114.114.114
server=/app-site-association.cdn-apple.com/114.114.114.114
server=/appldnld.apple.com/114.114.114.114
server=/appldnld.g.aaplimg.com/114.114.114.114
server=/appleid.cdn-apple.com/114.114.114.114
server=/apps.apple.com/114.114.114.114
server=/apps.mzstatic.com/114.114.114.114
server=/cdn-cn1.apple-mapkit.com/114.114.114.114
server=/cdn-cn2.apple-mapkit.com/114.114.114.114
server=/cdn-cn3.apple-mapkit.com/114.114.114.114
server=/cdn-cn4.apple-mapkit.com/114.114.114.114
server=/cdn.apple-mapkit.com/114.114.114.114
server=/cdn1.apple-mapkit.com/114.114.114.114
server=/cdn2.apple-mapkit.com/114.114.114.114
server=/cdn3.apple-mapkit.com/114.114.114.114
server=/cdn4.apple-mapkit.com/114.114.114.114
server=/cds-cdn.v.aaplimg.com/114.114.114.114
server=/cds.apple.com.akadns.net/114.114.114.114
server=/cds.apple.com/114.114.114.114
server=/cdsassets.apple.com/114.114.114.114
server=/cl1-cdn.origin-apple.com.akadns.net/114.114.114.114
server=/cl1.apple.com/114.114.114.114
server=/cl2-cn.apple.com/114.114.114.114
server=/cl2.apple.com/114.114.114.114
server=/cl3-cdn.origin-apple.com.akadns.net/114.114.114.114
server=/cl3.apple.com/114.114.114.114
server=/cl4-cdn.origin-apple.com.akadns.net/114.114.114.114
server=/cl4-cn.apple.com/114.114.114.114
server=/cl4.apple.com/114.114.114.114
server=/cl5-cdn.origin-apple.com.akadns.net/114.114.114.114
server=/cl5.apple.com/114.114.114.114
server=/clientflow.apple.com.akadns.net/114.114.114.114
server=/clientflow.apple.com/114.114.114.114
server=/configuration.apple.com.akadns.net/114.114.114.114
server=/configuration.apple.com/114.114.114.114
server=/cstat.apple.com/114.114.114.114
server=/cstat.cdn-apple.com/114.114.114.114
server=/dd-cdn.origin-apple.com.akadns.net/114.114.114.114
server=/download.developer.apple.com/114.114.114.114
server=/gs-loc-cn.apple.com/114.114.114.114
server=/gs-loc.apple.com/114.114.114.114
server=/gsp10-ssl-cn.ls.apple.com/114.114.114.114
server=/gsp13-cn.ls.apple.com/114.114.114.114
server=/gsp4-cn.ls.apple.com.edgekey.net.globalredir.akadns.net/114.114.114.114
server=/gsp4-cn.ls.apple.com.edgekey.net/114.114.114.114
server=/gsp4-cn.ls.apple.com/114.114.114.114
server=/gsp5-cn.ls.apple.com/114.114.114.114
server=/gsp85-cn-ssl.ls.apple.com/114.114.114.114
server=/gspe19-cn-ssl.ls.apple.com/114.114.114.114
server=/gspe19-cn.ls-apple.com.akadns.net/114.114.114.114
server=/gspe19-cn.ls.apple.com/114.114.114.114
server=/gspe21-ssl.ls.apple.com/114.114.114.114
server=/gspe21.ls.apple.com/114.114.114.114
server=/gspe35-ssl.ls.apple.com/114.114.114.114
server=/guzzoni-apple-com.v.aaplimg.com/114.114.114.114
server=/guzzoni.apple.com/114.114.114.114
server=/iadsdk.apple.com/114.114.114.114
server=/icloud-cdn.icloud.com.akadns.net/114.114.114.114
server=/icloud.cdn-apple.com/114.114.114.114
server=/images.apple.com.akadns.net/114.114.114.114
server=/images.apple.com.edgekey.net.globalredir.akadns.net/114.114.114.114
server=/images.apple.com/114.114.114.114
server=/init-p01md-lb.push-apple.com.akadns.net/114.114.114.114
server=/init-p01md.apple.com/114.114.114.114
server=/init-p01st-lb.push-apple.com.akadns.net/114.114.114.114
server=/init-p01st.push.apple.com/114.114.114.114
server=/init-s01st-lb.push-apple.com.akadns.net/114.114.114.114
server=/init-s01st.push.apple.com/114.114.114.114
server=/iosapps.itunes.g.aaplimg.com/114.114.114.114
server=/ipcdn.apple.com/114.114.114.114
server=/iphone-ld.apple.com/114.114.114.114
server=/is1-ssl.mzstatic.com/114.114.114.114
server=/is1.mzstatic.com/114.114.114.114
server=/is2-ssl.mzstatic.com/114.114.114.114
server=/is2.mzstatic.com/114.114.114.114
server=/is3-ssl.mzstatic.com/114.114.114.114
server=/is3.mzstatic.com/114.114.114.114
server=/is4-ssl.mzstatic.com/114.114.114.114
server=/is4.mzstatic.com/114.114.114.114
server=/is5-ssl.mzstatic.com/114.114.114.114
server=/is5.mzstatic.com/114.114.114.114
server=/itunes-apple.com.akadns.net/114.114.114.114
server=/itunes.apple.com/114.114.114.114
server=/itunesconnect.apple.com/114.114.114.114
server=/mesu-cdn.apple.com.akadns.net/114.114.114.114
server=/mesu-china.apple.com.akadns.net/114.114.114.114
server=/mesu.apple.com/114.114.114.114
server=/music.apple.com/114.114.114.114
server=/ocsp-lb.apple.com.akadns.net/114.114.114.114
server=/ocsp.apple.com/114.114.114.114
server=/ocsp2.apple.com/114.114.114.114
server=/oscdn.apple.com/114.114.114.114
server=/oscdn.origin-apple.com.akadns.net/114.114.114.114
server=/osxapps.itunes.g.aaplimg.com/114.114.114.114
server=/pancake.apple.com/114.114.114.114
server=/pancake.cdn-apple.com.akadns.net/114.114.114.114
server=/prod-support.apple-support.akadns.net/114.114.114.114
server=/publicassets.cdn-apple.com/114.114.114.114
server=/reserve-prime.apple.com/114.114.114.114
server=/s.mzstatic.com/114.114.114.114
server=/smp-device-content.apple.com/114.114.114.114
server=/stocks-sparkline-lb.apple.com.akadns.net/114.114.114.114
server=/stocks-sparkline.apple.com/114.114.114.114
server=/store.apple.com.edgekey.net.globalredir.akadns.net/114.114.114.114
server=/store.apple.com.edgekey.net/114.114.114.114
server=/store.apple.com/114.114.114.114
server=/store.storeimages.apple.com.akadns.net/114.114.114.114
server=/store.storeimages.cdn-apple.com/114.114.114.114
server=/support-china.apple-support.akadns.net/114.114.114.114
server=/support.apple.com/114.114.114.114
server=/swallow.apple.com/114.114.114.114
server=/swallow-apple-com.v.aaplimg.com/114.114.114.114
server=/swcatalog-cdn.apple.com.akadns.net/114.114.114.114
server=/swcatalog.apple.com/114.114.114.114
server=/swcdn.apple.com/114.114.114.114
server=/swcdn.g.aaplimg.com/114.114.114.114
server=/swdist.apple.com.akadns.net/114.114.114.114
server=/swdist.apple.com/114.114.114.114
server=/swscan-cdn.apple.com.akadns.net/114.114.114.114
server=/swscan.apple.com/114.114.114.114
server=/updates-http.cdn-apple.com.akadns.net/114.114.114.114
server=/updates-http.cdn-apple.com/114.114.114.114
server=/updates.cdn-apple.com/114.114.114.114
server=/valid.apple.com/114.114.114.114
server=/valid.origin-apple.com.akadns.net/114.114.114.114
server=/weather-data.apple.com.akadns.net/114.114.114.114
server=/weather-data.apple.com/114.114.114.114
server=/www.apple.com.edgekey.net.globalredir.akadns.net/114.114.114.114
server=/www.apple.com.edgekey.net/114.114.114.114
server=/www.apple.com/114.114.114.114
server=/xp.apple.com/114.114.114.114

View File

@@ -1,52 +0,0 @@
#!/usr/bin/ruby
require 'concurrent'
require 'filelock'
require 'set'
require_relative 'verify'
$stdout.sync = true
echo_set = Concurrent::Set[]
tested = Concurrent::Set[]
File.readlines("accelerated-domains.china.conf").each do |line|
line.chomp!
if !line.empty? and !line.start_with?("#")
tested << line.split("/")[1]
end
end
v = ChinaListVerify.new
pool = Concurrent::FixedThreadPool.new(ENV.fetch("JOBS", Concurrent.processor_count).to_i)
ARGF.each do |domain|
pool.post do
domain.chomp!.downcase!
next if domain.empty? or domain.end_with?('.arpa', '.cn', '.top')
if !echo_set.include? domain
puts "Trying to detect #{domain}"
echo_set << domain
end
begin
domain = PublicSuffix.domain(domain, ignore_private: true)
rescue PublicSuffix::DomainNotAllowed, PublicSuffix::DomainInvalid
next
end
next if tested.include? domain
tested << domain
if v.check_domain_verbose(domain, enable_cdnlist: false, show_green: true)
Filelock '.git.lock' do
puts `./updater.rb -a #{domain}`
puts `git commit -S -am "accelerated-domains: add #{domain}"` if $?.success?
puts `./update-local` if $?.success?
end
end
end
end
pool.shutdown
pool.wait_for_termination

View File

@@ -1,242 +0,0 @@
## Public DNS
# DNSPai
bogus-nxdomain=123.125.81.12
bogus-nxdomain=101.226.10.8
# Level3
bogus-nxdomain=198.105.254.11
bogus-nxdomain=104.239.213.7
bogus-nxdomain=23.217.138.108
bogus-nxdomain=23.202.231.167
## China Telecom
# Anhui Telecom
bogus-nxdomain=61.191.206.4
# Beijing Telecom
bogus-nxdomain=218.30.64.194
# Chengdu Telecom
bogus-nxdomain=61.139.8.101
bogus-nxdomain=61.139.8.102
bogus-nxdomain=61.139.8.103
bogus-nxdomain=61.139.8.104
# Fujian Telecom
bogus-nxdomain=42.123.125.237
# Gansu Telecom
bogus-nxdomain=202.100.68.117
# Guangxi Telecom
bogus-nxdomain=113.12.83.4
bogus-nxdomain=113.12.83.5
# Hainan Telecom
bogus-nxdomain=202.100.220.54
# Hangzhou Telecom
bogus-nxdomain=60.191.124.236
bogus-nxdomain=60.191.124.252
# Hebei Telecom
bogus-nxdomain=222.221.5.204
# Hunan Telecom
bogus-nxdomain=124.232.132.94
# Jiangsu Telecom
bogus-nxdomain=202.102.110.204
# Jiangxi Telecom
bogus-nxdomain=61.131.208.210
bogus-nxdomain=61.131.208.211
# Nanjing Telecom
bogus-nxdomain=202.102.110.203
bogus-nxdomain=202.102.110.205
# Shandong Telecom
bogus-nxdomain=219.146.13.36
# Shanghai Telecom
bogus-nxdomain=180.168.41.175
bogus-nxdomain=180.153.103.224
# Wuhan Telecom
bogus-nxdomain=111.175.221.58
bogus-nxdomain=61.183.1.186
# Xi'an Telecom
bogus-nxdomain=125.76.239.244
bogus-nxdomain=125.76.239.245
# Yunnan Telecom
bogus-nxdomain=222.221.5.252
bogus-nxdomain=222.221.5.253
bogus-nxdomain=220.165.8.172
bogus-nxdomain=220.165.8.174
## China Unicom
# Anhui Unicom
bogus-nxdomain=112.132.230.179
# Beijing Unicom (bjdnserror1.wo.com.cn ~ bjdnserror5.wo.com.cn)
bogus-nxdomain=202.106.199.34
bogus-nxdomain=202.106.199.35
bogus-nxdomain=202.106.199.36
bogus-nxdomain=202.106.199.37
bogus-nxdomain=202.106.199.38
# Hebei Unicom (hbdnserror1.wo.com.cn ~ hbdnserror7.wo.com.cn)
bogus-nxdomain=221.192.153.41
bogus-nxdomain=221.192.153.42
bogus-nxdomain=221.192.153.43
bogus-nxdomain=221.192.153.44
bogus-nxdomain=221.192.153.45
bogus-nxdomain=221.192.153.46
bogus-nxdomain=221.192.153.49
# Heilongjiang Unicom (hljdnserror1.wo.com.cn ~ hljdnserror5.wo.com.cn)
bogus-nxdomain=125.211.213.130
bogus-nxdomain=125.211.213.131
bogus-nxdomain=125.211.213.132
bogus-nxdomain=125.211.213.133
bogus-nxdomain=125.211.213.134
# Henan Unicom (hndnserror1.wo.com.cn ~ hndnserror7.wo.com.cn)
bogus-nxdomain=218.28.144.36
bogus-nxdomain=218.28.144.37
bogus-nxdomain=218.28.144.38
bogus-nxdomain=218.28.144.39
bogus-nxdomain=218.28.144.40
bogus-nxdomain=218.28.144.41
bogus-nxdomain=218.28.144.42
# Jilin Unicom (jldnserror1.wo.com.cn ~ jldnserror5.wo.com.cn)
bogus-nxdomain=202.98.24.121
bogus-nxdomain=202.98.24.122
bogus-nxdomain=202.98.24.123
bogus-nxdomain=202.98.24.124
bogus-nxdomain=202.98.24.125
# Liaoning Unicom (lndnserror1.wo.com.cn ~ lndnserror7.wo.com.cn)
bogus-nxdomain=60.19.29.21
bogus-nxdomain=60.19.29.22
bogus-nxdomain=60.19.29.23
bogus-nxdomain=60.19.29.24
bogus-nxdomain=60.19.29.25
bogus-nxdomain=60.19.29.26
bogus-nxdomain=60.19.29.27
# Nanfang Unicom (nfdnserror1.wo.com.cn ~ nfdnserror17.wo.com.cn)
bogus-nxdomain=220.250.64.18
bogus-nxdomain=220.250.64.19
bogus-nxdomain=220.250.64.20
bogus-nxdomain=220.250.64.21
bogus-nxdomain=220.250.64.22
bogus-nxdomain=220.250.64.23
bogus-nxdomain=220.250.64.24
bogus-nxdomain=220.250.64.25
bogus-nxdomain=220.250.64.26
bogus-nxdomain=220.250.64.27
bogus-nxdomain=220.250.64.28
bogus-nxdomain=220.250.64.29
bogus-nxdomain=220.250.64.30
bogus-nxdomain=220.250.64.225
bogus-nxdomain=220.250.64.226
bogus-nxdomain=220.250.64.227
bogus-nxdomain=220.250.64.228
# Neimenggu Unicom (nmdnserror2.wo.com.cn ~ nmdnserror4.wo.com.cn)
bogus-nxdomain=202.99.254.231
bogus-nxdomain=202.99.254.232
bogus-nxdomain=202.99.254.230
# Shandong Unicom (sddnserror1.wo.com.cn ~ sddnserror9.wo.com.cn)
bogus-nxdomain=123.129.254.11
bogus-nxdomain=123.129.254.12
bogus-nxdomain=123.129.254.13
bogus-nxdomain=123.129.254.14
bogus-nxdomain=123.129.254.15
bogus-nxdomain=123.129.254.16
bogus-nxdomain=123.129.254.17
bogus-nxdomain=123.129.254.18
bogus-nxdomain=123.129.254.19
# Shanxi Unicom (sxdnserror1.wo.com.cn ~ sxdnserror6.wo.com.cn)
bogus-nxdomain=221.204.244.36
bogus-nxdomain=221.204.244.37
bogus-nxdomain=221.204.244.38
bogus-nxdomain=221.204.244.39
bogus-nxdomain=221.204.244.40
bogus-nxdomain=221.204.244.41
# Tianjin Unicom (tjdnserror1.wo.com.cn ~ tjdnserror5.wo.com.cn)
bogus-nxdomain=218.68.250.117
bogus-nxdomain=218.68.250.118
bogus-nxdomain=218.68.250.119
bogus-nxdomain=218.68.250.120
bogus-nxdomain=218.68.250.121
## China Mobile
# Anhui Mobile
bogus-nxdomain=120.209.138.64
# Guangdong Mobile
bogus-nxdomain=211.139.136.73
bogus-nxdomain=221.179.46.190
bogus-nxdomain=221.179.46.194
# Jiangsu Mobile
bogus-nxdomain=183.207.232.253
# Jiangxi Mobile
bogus-nxdomain=223.82.248.117
# Qinghai Mobile
bogus-nxdomain=211.138.74.132
# Shaanxi Mobile
bogus-nxdomain=211.137.130.101
# Shanghai Mobile
bogus-nxdomain=211.136.113.1
# Shanxi Mobile
bogus-nxdomain=211.138.102.198
# Shandong Mobile
bogus-nxdomain=120.192.83.163
# Sichuan Mobile
bogus-nxdomain=183.221.242.172
bogus-nxdomain=183.221.250.11
# Xizang Mobile
bogus-nxdomain=111.11.208.2
# Yunnan Mobile
bogus-nxdomain=183.224.40.24
## China Tie Tong
# Shandong TieTong
bogus-nxdomain=211.98.70.226
bogus-nxdomain=211.98.70.227
bogus-nxdomain=211.98.71.195
## GWBN
# Wuhan GWBN
bogus-nxdomain=114.112.163.232
bogus-nxdomain=114.112.163.254

View File

@@ -1,81 +0,0 @@
265.com
2mdn-cn.net
a1.cdn-hotels.com
a1.phobos.apple.com
ad.doubleclick.net
admob-cn.com
all.ldycdn.com
app-cdn.2q10.com
app-measurement.com
app-measurement-cn.com
cdn.globalsigncdn.com
cdnbye.com
cnc.ef-cdn.com
dartsearch-cn.net
dnl-11.geo.kaspersky.com
doubleclick-cn.net
dsany.sgnic.sg
edge.yunjiasu.com
fotadown.mayitek.com.wsdvs.com
gcpnode.com
gonglchuangl.net
gongyichuangyi.net
google-analytics-cn.com
googleadservices.com
googleadservices-cn.com
googleapis-cn.com
googleapps-cn.com
googleflights-cn.net
googleoptimize.com
googleoptimize-cn.com
googleplex.com
googlesyndication-cn.com
googletagmanager.com
googletagmanager-cn.com
googletagservices-cn.com
googletraveladservices.com
googletraveladservices-cn.com
googlevads-cn.com
gstatic-cn.com
gvt1-cn.com
gvt2-cn.com
insta360.com
itunes-cdn.itunes-apple.com.akadns.net
netease.ugcvideoss.ourdvs.com
oneplus.com
opthw.xdwscache.speedcdns.com
p00.upd.kaspersky.com
pagead2.googlesyndication.com
play.nyaacat.com
r1.res.outlook.com
recaptcha.net
redirector.gvt1.com
rsb.net
s.c.lnkd.licdn.com
s0.2mdn.net
t1.tiles.ditu.live.com
tse1-mm.cn.bing.net
u.sb
v24.lscache2.c.android.clients.google.com
v2ex.assets.uxengine.net
v2ex.china.uxengine.net
v2ex.com
www.agora.io
www.azure.cn.mschcdn.com
www.camcard.com
www.fund001.com
www.google-analytics.com
www.googleanalytics.com
www.googletagservices.com
www.gov.cn
www.henan.gov.cn.cdn30.com
www.howbuy.com
www.microad-cn.com
www.shandongair.com
www.sunrtb.com
www.yangfd.com
www.youngfunding.co.uk
www.cz88.net
xn--9kr7l.com
xn--flw351e.com
zoom.us

View File

@@ -1,28 +0,0 @@
#!/bin/bash
case "$1" in
114)
DNS=114.114.114.114
;;
ali)
DNS=223.5.5.5
;;
baidu)
DNS=180.76.76.76
;;
cnnic)
DNS=1.2.4.8
;;
dnspod)
DNS=119.29.29.29
;;
google)
DNS=8.8.8.8
;;
*)
DNS=$1
esac
sed -i "s|^\(server.*\)/[^/]*$|\1/$DNS|" /etc/dnsmasq.d/accelerated-domains.china.conf
sed -i "s|^\(server.*\)/[^/]*$|\1/$DNS|" /etc/dnsmasq.d/google.china.conf 2>/dev/null
sed -i "s|^\(server.*\)/[^/]*$|\1/$DNS|" /etc/dnsmasq.d/apple.china.conf 2>/dev/null

View File

@@ -1,81 +0,0 @@
#!/usr/bin/ruby
""" Find redundant items in accelerated-domains.china.conf.
e.g. 'bar.foo.com' is redundant for 'foo.com'.
"""
def load(conf_file)
""" Parse conf file & Prepare data structure
Returns: [ ['abc', 'com'],
['bar', 'foo', 'com'],
... ]
"""
results = []
if conf_file.is_a? String
lines = File.readlines(conf_file)
elsif conf_file.is_a? Array
lines = conf_file
end
lines.map do |line|
line = line.chomp
next if line.empty? or line.start_with?('#')
# A domain name is case-insensitive and
# consists of several labels, separated by a full stop
domain_name = line.split('/')[1]
domain_name = domain_name.downcase
domain_labels = domain_name.split('.')
results << domain_labels
end
# Sort results by domain labels' length
results.sort_by(&:length)
end
LEAF = 1
def find(labelses)
""" Find redundant items by a tree of top-level domain label to sub-level.
`tree` is like { 'com': { 'foo: { 'bar': LEAF },
'abc': LEAF },
'org': ... }
"""
redundant = []
tree = {}
labelses.each do |labels|
domain = labels.join('.')
# Init root node as current node
node = tree
until labels.empty?
label = labels.pop
if node.include? label
# If child node is a LEAF node,
# current domain must be an existed domain or a subdomain of an existed.
if node[label] == LEAF
puts "Redundant found: #{domain} at #{labels.join('.')}"
redundant << domain
break
end
else
# Create a leaf node if current label is last one
if labels.empty?
node[label] = LEAF
# Create a branch node
else
node[label] = {}
end
end
# Iterate to child node
node = node[label]
end
end
redundant
end
def find_redundant(conf_file)
return find(load(conf_file))
end
if __FILE__ == $0
find_redundant('accelerated-domains.china.conf')
end

View File

@@ -1,7 +0,0 @@
source "https://rubygems.org"
gem "colorize"
gem "concurrent-ruby"
gem "ipaddr"
gem "public_suffix"
gem "sus"

View File

@@ -1,161 +0,0 @@
server=/265.com/114.114.114.114
server=/2mdn-cn.net/114.114.114.114
server=/2mdn.net/114.114.114.114
server=/accounts.googlers.com/114.114.114.114
server=/accounts.xn--9trs65b.com/114.114.114.114
server=/accounts.xn--ggle-55da.com/114.114.114.114
server=/admob-cn.com/114.114.114.114
server=/adservice.google.com/114.114.114.114
server=/ai.ytimg.com/114.114.114.114
server=/app-measurement-cn.com/114.114.114.114
server=/app-measurement.com/114.114.114.114
server=/apps5.oingo.com/114.114.114.114
server=/avail.googleflights.net/114.114.114.114
server=/beacons.gcp.gvt2.com/114.114.114.114
server=/beacons.gvt2.com/114.114.114.114
server=/beacons2.gvt2.com/114.114.114.114
server=/beacons3.gvt2.com/114.114.114.114
server=/borgmon.adz.google.com/114.114.114.114
server=/c.admob.com/114.114.114.114
server=/c.android.clients.google.com/114.114.114.114
server=/cache-management-prod.google.com/114.114.114.114
server=/cache.pack.google.com/114.114.114.114
server=/checkin.gstatic.com/114.114.114.114
server=/clickserve.cc-dt.com/114.114.114.114
server=/clickserve.dartsearch.net/114.114.114.114
server=/clickserver.googleads.com/114.114.114.114
server=/clientservices.googleapis.com/114.114.114.114
server=/cn.widevine.com/114.114.114.114
server=/cnappinstall.googleadapis.com/114.114.114.114
server=/connectivitycheck.gstatic.com/114.114.114.114
server=/content.googleadapis.com/114.114.114.114
server=/corp.google.com/114.114.114.114
server=/corp.googleapis.com/114.114.114.114
server=/crashlyticsreports-pa.googleapis.com/114.114.114.114
server=/crl.pki.goog/114.114.114.114
server=/csi.gstatic.com/114.114.114.114
server=/dartsearch-cn.net/114.114.114.114
server=/dg-meta.video.google.com/114.114.114.114
server=/distribution.qatp1.net/114.114.114.114
server=/distribution.qcpp1.net/114.114.114.114
server=/distribution.qpdp1.net/114.114.114.114
server=/dl.google.com/114.114.114.114
server=/dl.l.google.com/114.114.114.114
server=/doubleclick-cn.net/114.114.114.114
server=/doubleclick.net/114.114.114.114
server=/download.mlcc.google.com/114.114.114.114
server=/download.qatp1.net/114.114.114.114
server=/download.qcpp1.net/114.114.114.114
server=/download.qpdp1.net/114.114.114.114
server=/download.tensorflow.google.com/114.114.114.114
server=/emmapplecodevice.googleapis.com/114.114.114.114
server=/firebase-settings.crashlytics.com/114.114.114.114
server=/fontfiles.googleadapis.com/114.114.114.114
server=/fontfiles.googleapis.com/114.114.114.114
server=/fonts.googleadapis.com/114.114.114.114
server=/fonts.googleapis.com/114.114.114.114
server=/fonts.gstatic.com/114.114.114.114
server=/g0.gstatic.com/114.114.114.114
server=/g1.gstatic.com/114.114.114.114
server=/g2.gstatic.com/114.114.114.114
server=/g3.gstatic.com/114.114.114.114
server=/gcpnode.com/114.114.114.114
server=/gonglchuangl.net/114.114.114.114
server=/gongyichuangyi.net/114.114.114.114
server=/google-analytics-cn.com/114.114.114.114
server=/google-analytics.com/114.114.114.114
server=/googleadservices-cn.com/114.114.114.114
server=/googleadservices.com/114.114.114.114
server=/googleanalytics.com/114.114.114.114
server=/googleapis-cn.com/114.114.114.114
server=/googleapps-cn.com/114.114.114.114
server=/googleflights-cn.net/114.114.114.114
server=/googleoptimize-cn.com/114.114.114.114
server=/googleoptimize.com/114.114.114.114
server=/googleplex.com/114.114.114.114
server=/googlesyndication-cn.com/114.114.114.114
server=/googlesyndication.com/114.114.114.114
server=/googletagmanager-cn.com/114.114.114.114
server=/googletagmanager.com/114.114.114.114
server=/googletagservices-cn.com/114.114.114.114
server=/googletagservices.com/114.114.114.114
server=/googletraveladservices-cn.com/114.114.114.114
server=/googletraveladservices.com/114.114.114.114
server=/googlevads-cn.com/114.114.114.114
server=/goto.google.com/114.114.114.114
server=/gstatic-cn.com/114.114.114.114
server=/gstaticadssl.l.google.com/114.114.114.114
server=/gtm.oasisfeng.com/114.114.114.114
server=/gvt1-cn.com/114.114.114.114
server=/gvt2-cn.com/114.114.114.114
server=/imasdk.googleapis.com/114.114.114.114
server=/monitoring.qatp1.net/114.114.114.114
server=/monitoring.qcpp1.net/114.114.114.114
server=/monitoring.qpdp1.net/114.114.114.114
server=/ocsp.pki.goog/114.114.114.114
server=/pagead-googlehosted.l.google.com/114.114.114.114
server=/performanceparameters.googleapis.com/114.114.114.114
server=/pki-goog.l.google.com/114.114.114.114
server=/play.1ucrs.com/114.114.114.114
server=/prod-controlbe.floonet.goog/114.114.114.114
server=/prod-databe.floonet.goog/114.114.114.114
server=/prod.databe.floonet.goog/114.114.114.114
server=/qagpublic.qatp1.net/114.114.114.114
server=/qagpublic.qcpp1.net/114.114.114.114
server=/qagpublic.qpdp1.net/114.114.114.114
server=/qgadmin.qatp1.net/114.114.114.114
server=/qgadmin.qcpp1.net/114.114.114.114
server=/qgadmin.qpdp1.net/114.114.114.114
server=/qpx.googleflights.net/114.114.114.114
server=/qualysapi.qatp1.net/114.114.114.114
server=/qualysapi.qcpp1.net/114.114.114.114
server=/qualysapi.qpdp1.net/114.114.114.114
server=/qualysguard.qatp1.net/114.114.114.114
server=/qualysguard.qcpp1.net/114.114.114.114
server=/qualysguard.qpdp1.net/114.114.114.114
server=/recaptcha.net/114.114.114.114
server=/redirector.bdn.dev/114.114.114.114
server=/redirector.c.chat.google.com/114.114.114.114
server=/redirector.c.docs.google.com/114.114.114.114
server=/redirector.c.drive.google.com/114.114.114.114
server=/redirector.c.mail.google.com/114.114.114.114
server=/redirector.c.pack.google.com/114.114.114.114
server=/redirector.c.play.google.com/114.114.114.114
server=/redirector.c.youtubeeducation.com/114.114.114.114
server=/redirector.gcpcdn.gvt1.com/114.114.114.114
server=/redirector.gvt1.com/114.114.114.114
server=/redirector.offline-maps.gvt1.com/114.114.114.114
server=/redirector.snap.gvt1.com/114.114.114.114
server=/redirector.xn--ngstr-lra8j.com/114.114.114.114
server=/regioninfo-pa.googleapis.com/114.114.114.114
server=/safebrowsing.googleapis.com/114.114.114.114
server=/scanservice1.qatp1.net/114.114.114.114
server=/scanservice1.qcpp1.net/114.114.114.114
server=/scanservice1.qpdp1.net/114.114.114.114
server=/service.urchin.com/114.114.114.114
server=/settings.xn--9trs65b.com/114.114.114.114
server=/ssl-google-analytics.l.google.com/114.114.114.114
server=/ssl.gstatic.com/114.114.114.114
server=/staging-controlbe.floonet.goog/114.114.114.114
server=/staging-databe.floonet.goog/114.114.114.114
server=/staging-regioninfo-pa.googleapis.com/114.114.114.114
server=/staging.databe.floonet.goog/114.114.114.114
server=/support.1ucrs.com/114.114.114.114
server=/tac.googleapis.com/114.114.114.114
server=/test.bugs-qa.chromium.org/114.114.114.114
server=/test.gbugs-qa.chromium.org/114.114.114.114
server=/tools.google.com/114.114.114.114
server=/tools.l.google.com/114.114.114.114
server=/up.corp.goog/114.114.114.114
server=/up.gcp.googlers.com/114.114.114.114
server=/update.crashlytics.com/114.114.114.114
server=/update.googleapis.com/114.114.114.114
server=/wear.googleapis.com/114.114.114.114
server=/www-google-analytics.l.google.com/114.114.114.114
server=/www-googletagmanager.l.google.com/114.114.114.114
server=/www.destinationurl.com/114.114.114.114
server=/www.googleadapis.com/114.114.114.114
server=/www.gstatic.com/114.114.114.114
server=/www.pxcc.com/114.114.114.114
server=/xn--9kr7l.com/114.114.114.114
server=/xn--flw351e.com/114.114.114.114

View File

@@ -1,55 +0,0 @@
#!/bin/bash
set -e
WORKDIR="$(mktemp -d)"
SERVERS=(114.114.114.114 114.114.115.115 223.5.5.5 119.29.29.29)
# Others: 223.6.6.6 119.28.28.28
# Not using best possible CDN pop: 1.2.4.8 210.2.4.8
# Broken?: 180.76.76.76
CONF_WITH_SERVERS=(accelerated-domains.china google.china apple.china)
CONF_SIMPLE=(bogus-nxdomain.china)
echo "Downloading latest configurations..."
git clone --depth=1 https://gitee.com/felixonmars/dnsmasq-china-list.git "$WORKDIR"
#git clone --depth=1 https://pagure.io/dnsmasq-china-list.git "$WORKDIR"
#git clone --depth=1 https://github.com/felixonmars/dnsmasq-china-list.git "$WORKDIR"
#git clone --depth=1 https://bitbucket.org/felixonmars/dnsmasq-china-list.git "$WORKDIR"
#git clone --depth=1 https://gitlab.com/felixonmars/dnsmasq-china-list.git "$WORKDIR"
#git clone --depth=1 https://e.coding.net/felixonmars/dnsmasq-china-list.git "$WORKDIR"
#git clone --depth=1 https://codehub.devcloud.huaweicloud.com/dnsmasq-china-list00001/dnsmasq-china-list.git "$WORKDIR"
#git clone --depth=1 http://repo.or.cz/dnsmasq-china-list.git "$WORKDIR"
echo "Removing old configurations..."
for _conf in "${CONF_WITH_SERVERS[@]}" "${CONF_SIMPLE[@]}"; do
rm -f /etc/dnsmasq.d/"$_conf"*.conf
done
echo "Installing new configurations..."
for _conf in "${CONF_SIMPLE[@]}"; do
cp "$WORKDIR/$_conf.conf" "/etc/dnsmasq.d/$_conf.conf"
done
for _server in "${SERVERS[@]}"; do
for _conf in "${CONF_WITH_SERVERS[@]}"; do
cp "$WORKDIR/$_conf.conf" "/etc/dnsmasq.d/$_conf.$_server.conf"
done
sed -i "s|^\(server.*\)/[^/]*$|\1/$_server|" /etc/dnsmasq.d/*."$_server".conf
done
echo "Restarting dnsmasq service..."
if hash systemctl 2>/dev/null; then
systemctl restart dnsmasq
elif hash service 2>/dev/null; then
service dnsmasq restart
elif hash rc-service 2>/dev/null; then
rc-service dnsmasq restart
elif hash busybox 2>/dev/null && [[ -d "/etc/init.d" ]]; then
/etc/init.d/dnsmasq restart
else
echo "Now please restart dnsmasq since I don't know how to do it."
fi
echo "Cleaning up..."
rm -r "$WORKDIR"

View File

@@ -1,52 +0,0 @@
.ns.cloudflare.com
.google.com
.akam.net
.domaincontrol.com
.dreamhost.com
.wordpress.com
.dynect.net
.linode.com
.dnsmadeeasy.com
.stabletransit.com
.qwest.net
.registrar-servers.com
.dnsimple.com
.namebrightdns.com
.he.net
.googledomains.com
.msft.net
.akadns.org
.apple.com
.msedge.net
.amazonaws.com
.easydns.org
.easydns.com
.easydns.net
.your-server.de
.yandex.net
.techsmith.com
.nsone.net
.fastly.net
.hosteurope.de
.hostmonster.com
.automattic.com
.sedoparking.com
.ztomy.com
.parklogic.com
.gandi.net
.worldnic.com
.ftchinese.com
.name.com
.1-api.org
.parkpage.foundationapi.com
.expdns.net
.domains-hold.com
.dnsowl.com
.dynadot.com
.webnic.cc
.exmetis.com
.dnsever.com
.digitalocean.com
.ispapi.net
.name-services.com
.expirenotification.com

View File

@@ -1,117 +0,0 @@
.iidns.com
.dnspod.com
.dnspod.net
.hichina.com
.xincache.com
.dnsv2.com
.dnsv3.com
.dnsv4.com
.dnsv5.com
.myhostadmin.net
.cnolnic.com
.cnolnic.net
.dns.com.cn
.cnmsn.net
.bizcn.com
.alidns.com
.aliyun.com
.bddns.cn
.360wzb.com
.dnsdun.com
.dnsdun.net
.chinanetsun-dns.com
.xundns.com
.jiasule.net
.ns.yunjiasu.com
.cdncenter.com
.anquanbao.com
.sina.com.cn
.72dns.com
.idc1.cn
.ezdnscenter.com
.01isp.com
.01isp.net
.enet.com.cn
.800hr.net.cn
.dns.net.cn
.okidc.com
.cdnhost.cn
.eznowdns.net
.ndns.cn
.dnsng.net
.wanmeilink.com
.22.cn
.zjdomain.com
.zol.com
.ce.net.cn
.4everdns.com
.east.net.cn
.zdnscloud.net.cn
.51.net
.cloudcdns.com
.pubyun.com
.qq.com
.cdeledu.com
.myhexin.com
.bidns.net
.inc365.com
.zdnscloud.com
.zdnscloud.info
.chinanetsun.com
.gzidc.com
.ns365.net
.51dns.com
.nease.net
.xrnet.cn
.cnkuai.cn
.cnkuai.com
.taobao.com
.aoyou365.com
.dnspai.com
.360safe.com
.qycn.net
.qycn.cn
.sinonets.cn
.sfn.cn
.yovole.com
.duowanns.com
.ucweb.co
.jcloud.co
.eedns.co
.maff.co
.szhot.com
.bigwww.com
ns1.oray.net
ns2.oray.net
.cdnudns.co
.zhujiwu.com
.jjworld.net.cn
.dns-diy.com
.iidns.com
.dns.com
.youku.com
.zj01.com
.cdns.cn
.bdydns.cn
.baidu.com
.139135.com
.hwclouds.net
.hwclouds.com
.hwclouds.cn
.alibabadns.com
.iqiyi.com
.jdcloud.com
.jdcache.com
.jd.com
.sohu.com
.dns234.net
.awsdns-cn
.hwclouds-dns.com
.hwclouds-dns.net
.baidubce.com
.juming.com
.jdjrdns.com
.huaweicloud-dns.cn
.360anyu.com
.zndns.com
.ppstream.com

View File

@@ -1,203 +0,0 @@
1.cms.s81c.com
1.www.s81c.com
account.htcvive.com
achievements.xboxlive.com
adfarm.mediaplex.com
ad.mediaplex.com
ajax.loli.net
altfarm.mediaplex.com
ark.intel.com
assets.adobedtm.com
assets-ssl.xbox.com
avatarread-ssl.xboxlive.com
avatarread.xboxlive.com
avatar-ssl.xboxlive.com
avatar.xboxlive.com
blog.htcvive.com
blog.tutorabc.com
blog.vive.com
cashier.alipay.com.srip.net
catalog-cdn.xboxlive.com
cdn1.evernote.com
cdn.ampproject.org #281
cdn.jsdelivr.net
cdnjs.loli.net
cdn.loli.net
china-cdn2.unityads.unity3d.com
china-cdn3.unityads.unity3d.com
china.msn.com
china.nba.com
china.uxengine.net
cl2.apple.com.edgekey.net.globalredir.akadns.net
click.dji.com
client-download.steampowered.com
clubhub.xboxlive.com
cms.ibm.com
cn-api.samsungcloud.com
cn.coremetrics.com
cn.debian.org
cn.download.nvidia.com
cn.img.stb.s-msn.com
cnupgrade.microsoft.com
comments.xboxlive.com
compass-ssl.xbox.com
compass-ssl.xboxlive.com
compass.xbox.com
compass.xboxlive.com
config.unityads.unity3d.com
configure.ap.dell.com
console-service.halo.xbox.com
console-service-ssl.halo.xbox.com
content.nike.com
contentstore.htcvive.com
cortexfx.bnpparibas.com
createpoint.qti.qualcomm.com
cs-analytics.htcsense.com
c.s-microsoft.com
developer.htcvive.com
dlassets-ssl.xboxlive.com
dlassets.xboxlive.com
dlcdnets.asus.com
download.epicgames.com
download.gfe.nvidia.com
download.mcafee.com
download.parallels.com
download-ssl.xbox.com
download.xboxlive.com
e.admob.com
ec4.images-amazon.com
ec8.images-amazon.com
editorial.xboxlive.com
eds.xboxlive.com
emdl.ws.microsoft.com
emoi-cncdn.bing.com
encoding.image-gmkt.com
epix-ssl.xbox.com
epix.xbox.com
fonts.loli.net
gameplay.intel.com
gateway.craft.moe
g-ec4.images-amazon.com
gfwsl.geforce.com
globalsigncdn.com
gravatar.loli.net
gsp11-cn.ls.apple.com
gsp12-cn.ls.apple.com
gstatic.loli.net
hdn.xnimg.cn.cdngc.net
images-cn-4.ssl-images-amazon.com
images-cn-8.ssl-images-amazon.com
images-cn.ssl-images-amazon.com
images-eds-ssl.xboxlive.com
images.nvidia.com
image.xboxlive.com
img1.wsimg.com
img2.wsimg.com
img3.wsimg.com
img4.wsimg.com
img5.wsimg.com
img-cdn.mediaplex.com
img.mediaplex.com
international.download.nvidia.com
international-gfe.download.nvidia.com
kh.google.com
khm0.googleapis.com
khm0.google.com
khm1.googleapis.com
khm1.google.com
khm2.googleapis.com
khm2.google.com
khm3.googleapis.com
khm3.google.com
khmdb.googleapis.com
khmdb.google.com
khm.googleapis.com
khm.google.com
lh3.appinn.net
liveupdate01.asus.com
lnkd.licdn.com
lx2.cok.elexapp.com
lx2.cok.elex.com
manage.c3edge.com
marketplace-xb.xboxlive.com
media.admob.com
mediaexp-programming.xboxlive.com
media.licdn.com
mktplassets-ssl.xbox.com
msgr.dlservice.microsoft.com
msgruser.dlservice.microsoft.com
msg.xboxlive.com
nxeassets.xbox.com
ocsp-data.us.cdnetworks.com
olay-cn.cdnpg.com
phobos.apple.com
platform.linkedin.com
plus.djicdn.com
plus.dji.com
prm.dji.com
profile.xboxlive.com
res.office365.com
res.outlook.com
s1.mzstatic.com
s2.mzstatic.com
s3.mzstatic.com
s4.mzstatic.com
s5.mzstatic.com
safebrowsing-cache.google.com
scp-social.s-msn.com
script.image-gmkt.com
secaz-fota-dn.samsungdm.com
secure-nikeplus.nike.com
sekong.cn.com
settings.crashlytics.com
settings.xboxlive.com
shop.samsung.com
sina.com.hk
source.tutorabc.com
speedtest.xboxlive.com
ssl.travelzoo.com
ssl.tzoo-img.com
static-exp1.licdn.com
static.image-gmkt.com
static.licdn.com
store-images.microsoft.com
store-images.s-microsoft.com
store.samsung.com
tcl.com.ru
tiles.xbox.com
titlestorage.xboxlive.com
toolbarqueries.google.com
topics-cdn.dell.com
translate.googleapis.com
translation.googleapis.com
tse1.mm.bing.net
tse2.mm.bing.net
tse3.mm.bing.net
tse4.mm.bing.net
u.djicdn.com
userstats.xboxlive.com
v2ex.com
web-service.halo.xbox.com
web-service-ssl.halo.xbox.com
webview.unityads.unity3d.com
www-05.ibm.com
www1-cdn.dell.com
www-api.ibm.com
www.ericsson.com
www.htcvive.com
www.ibm.com
www.ikea.com
www.intel.com
www.kaspersky.com
www.nvidia.com
www.parallels.com
www.renren.com.cdngc.net
www-ssl.intel.com
www.sulwhasoo.com
www.travelzoo.com
www.tutorabc.com
xb.dlservice.microsoft.com
x-dash-public.rec.mp.microsoft.com
z0.muscache.com
z1.muscache.com
z2.muscache.com

View File

@@ -1,14 +0,0 @@
require_relative '../verify'
let (:lines) { File.readlines("accelerated-domains.china.conf").filter { |line| !line.empty? } }
it "should find redundant domains" do
expect(CheckRedundant(lines, [], 'qq.com')).to be == false
expect(CheckRedundant(lines, [], 'www.qq.com')).to be == false
expect(CheckRedundant(lines, [], 'qq.cn')).to be == false
expect(CheckRedundant(lines, [], 'www.qq.cn')).to be == false
end
it "should add new domains" do
expect(CheckRedundant(lines, [], 'what.a.wonderful.domain')).to be == "server=/what.a.wonderful.domain/114.114.114.114\n"
end

View File

@@ -1,65 +0,0 @@
#!/usr/bin/ruby
require 'domain_name'
require 'optparse'
require 'ostruct'
require_relative 'verify'
options = OpenStruct.new
options.sort = true
options.file = "accelerated-domains.china.conf"
options.add = []
options.delete = []
OptionParser.new do |opts|
opts.banner = "dnsmasq-china-list updater"
opts.on("-s", "--[no-]sort", "Sort the list (default action)") do |s|
options.sort = s
end
opts.on("-f", "--file FILE", "Specify the file to update (accelerated-domains.china.conf by default)") do |f|
options.file = f
end
opts.on("-a", "--add domain1,domain2", Array, "Add domain(s) to the list (implies -s)") do |a|
options.add = a
options.sort = true
end
opts.on("-d", "--delete domain1,domain2", Array, "Remove domain(s) from the list (implies -s)") do |d|
options.delete = d
options.sort = true
end
end.parse!
lines = File.readlines(options.file).filter { |line| !line.empty? }
disabled_lines = lines.filter { |line| line.start_with?("#") }
changed = false
options.add.each do |domain|
domain = DomainName.normalize(domain)
new_line = CheckRedundant(lines, disabled_lines, domain)
if new_line != false
puts "New domain added: #{domain}"
lines << new_line
changed = true
end
end
options.delete.each do |domain|
domain = DomainName.normalize(domain)
target_line = "server=/#{domain}/114.114.114.114\n"
unless lines.include? target_line
puts "Failed to remove domain #{domain}: not found."
else
puts "Domain removed: #{domain}"
lines.delete(target_line)
changed = true
end
end
fail "No changes made." if (options.add.length || options.delete.length) && !changed
lines.sort_by! { |x| x.delete_prefix("#") } if options.sort
File.write(options.file, lines.join)

View File

@@ -1,301 +0,0 @@
#!/usr/bin/ruby
require 'colorize'
require 'concurrent'
require 'ipaddr'
require 'public_suffix'
require 'resolv'
class ChinaListVerify
def initialize(
dns=nil,
whitelist_file: "ns-whitelist.txt",
blacklist_file: "ns-blacklist.txt",
cdnlist_file: "cdn-testlist.txt",
chnroutes_file: "/usr/share/china_ip_list.txt"
)
@dns = dns
@whitelist = load_list whitelist_file
@blacklist = load_list blacklist_file
@cdnlist = load_list cdnlist_file
@tld_ns = Concurrent::Hash.new
begin
@chnroutes = load_list(chnroutes_file).map { |line| IPAddr.new line }
rescue Errno::ENOENT
puts "Failed to load chnroutes, CDN check disabled".red
@chnroutes = nil
end
end
def load_list(filename)
File.readlines(filename).each do |line|
line if !line.chomp!.empty? and !line.start_with?("#")
end
end
def test_cn_ip(domain, response: nil)
if @chnroutes == nil
raise "chnroutes not loaded"
end
answers = nil
if response != nil && !response.empty?
answers = response.filter_map { |n, r| r if n.to_s == domain && r.class == Resolv::DNS::Resource::IN::A }
end
if answers == nil || answers.empty?
answers = resolve(domain, 'A')
end
answers.each do |answer|
answer = IPAddr.new answer.address.to_s
if @chnroutes.any? { |range| range.include? answer }
return true
end
end
return false
end
def resolve(domain, rdtype="A", server: nil, with_glue: false)
rdtype = Kernel.const_get("Resolv::DNS::Resource::IN::#{rdtype}")
if !server
if !@dns
resolver = Resolv::DNS.new
else
resolver = Resolv::DNS.new(nameserver: @dns)
end
else
server = [server] unless server.is_a? Array
resolver = Resolv::DNS.new(nameserver: server)
end
if !with_glue
resolver.getresources(domain, rdtype)
else
# Workaround for https://github.com/ruby/resolv/issues/27
result = []
glue = []
n0 = Resolv::DNS::Name.create domain
resolver.fetch_resource(domain, rdtype) {|reply, reply_name|
reply.each_resource {|n, ttl, data|
if n0 == n && data.is_a?(rdtype)
result << data
else
glue << [n, data]
end
}
}
return result, glue
end
end
def get_ns_for_tld(tld)
if !@tld_ns.has_key? tld
answers = resolve(tld + ".", "NS")
results = []
answers.each do |answer|
ips = resolve answer.name.to_s
ips.each do |ip|
results << ip.address.to_s
end
end
@tld_ns[tld] = results
end
@tld_ns[tld]
end
def check_whitelist(nameservers)
@whitelist.each { |pattern| nameservers.each {|ns| return pattern if ns.end_with? pattern }}
nil
end
def check_blacklist(nameservers)
@blacklist.each { |pattern| nameservers.each {|ns| return pattern if ns.end_with? pattern }}
nil
end
def check_cdnlist(domain)
test_cn_ip domain
end
def check_domain(domain, enable_cdnlist: true)
nameservers = []
nxdomain = false
begin
tld_ns = get_ns_for_tld(PublicSuffix.parse(domain, ignore_private: true).tld)
rescue PublicSuffix::DomainNotAllowed, PublicSuffix::DomainInvalid
yield nil, "Domain #{domain} isn't a valid domain"
return nil
end
response, glue = self.resolve(
domain + ".",
'NS',
server: tld_ns,
with_glue: true
)
response.each do |rdata|
begin
nameserver = rdata.name.to_s
if PublicSuffix.valid?(nameserver, ignore_private: true)
nameservers << nameserver
end
if result = check_whitelist(nameservers)
yield true, "NS Whitelist #{result} matched for domain #{domain}" if block_given?
return true
end
rescue NoMethodError => e
puts "Ignoring error: #{e}"
end
end
if enable_cdnlist
@cdnlist.each do |testdomain|
if testdomain == domain or testdomain.end_with? "." + domain
if result = check_cdnlist(testdomain)
yield true, "CDN List matched (#{testdomain}) and verified #{result} for domain #{domain}" if block_given?
return true
end
end
end
# Assuming CDNList for non-TLDs
if domain.count(".") > 1 and PublicSuffix.domain(domain, ignore_private: true) != domain
if result = check_cdnlist(domain)
yield true, "CDN List matched and verified #{result} for domain #{domain}" if block_given?
return true if result
end
end
end
if result = check_blacklist(nameservers)
yield false, "NS Blacklist #{result} matched for domain #{domain}" if block_given?
return false
end
nameservers.each do |nameserver|
if result = test_cn_ip(nameserver, response: glue)
yield true, "NS #{nameserver} verified #{result} for domain #{domain}" if block_given?
return true
end
end
if !nameservers.empty?
yield false, "NS #{nameservers[0]} not verified for domain #{domain}" if block_given?
return false
else
yield nil, "Failed to get correct name server for domain #{domain}" if block_given?
return nil
end
end
def check_domain_verbose(domain, show_green: false, **kwargs)
check_domain(domain, **kwargs) do |result, message|
if result == true
puts message.green if show_green
elsif result == false
puts message.red
else
puts message.yellow
end
end
end
def check_domain_list(domain_list, sample: 30, show_green: false, jobs: Concurrent.processor_count)
domains = load_list domain_list
if sample > 0
domains = domains.sample(sample)
else
domains.shuffle!
end
pool = Concurrent::FixedThreadPool.new(jobs)
domains.each do |domain|
pool.post do
if check_domain_verbose(domain, show_green: show_green)
yield domain if block_given?
end
end
end
pool.shutdown
pool.wait_for_termination
end
end
# Operates on the raw file to preserve commented out lines
def CheckRedundant(lines, disabled_lines, domain)
new_line = "server=/#{domain}/114.114.114.114\n"
disabled_line = "#server=/#{domain}/114.114.114.114"
if lines.include? new_line
puts "Domain already exists: #{domain}"
return false
elsif disabled_lines.any? { |line| line.start_with? disabled_line }
puts "Domain already disabled: #{domain}"
return false
else
# Check for duplicates
test_domain = domain
while test_domain.include? '.'
test_domain = test_domain.partition('.').last
_new_line = "server=/#{test_domain}/114.114.114.114\n"
_disabled_line = "#server=/#{test_domain}/114.114.114.114"
if lines.include? _new_line
puts "Redundant domain already exists: #{test_domain}"
return false
elsif disabled_lines.any? { |line| line.start_with? _disabled_line }
puts "Redundant domain already disabled: #{test_domain}"
return false
end
end
end
return new_line
end
if __FILE__ == $0
require 'optparse'
require 'ostruct'
options = OpenStruct.new
options.file = "accelerated-domains.china.raw.txt"
options.sample = 0
options.verbose = false
options.domain = nil
options.dns = nil
OptionParser.new do |opts|
opts.banner = 'A simple verify library for dnsmasq-china-list'
opts.on("-f", "--file FILE", "File to check") do |f|
options.file = f
end
opts.on("-s", "--sample SAMPLE", Integer, "Verify only a limited sample. Pass 0 to example all entries") do |s|
options.sample = s
end
opts.on("-v", "--[no-]verbose", "Show green results") do |v|
options.verbose = v
end
opts.on("-d", "--domain DOMAIN", "Verify a domain instead of checking a list. Will ignore the other list options.") do |d|
options.domain = d
end
opts.on("-D", "--dns DNS", "Specify a DNS server to use instead of the system default one.") do |d|
options.dns = d
end
opts.on_tail("-h", "--help", "Show this message") do
puts opts
exit
end
end.parse!
v = ChinaListVerify.new options.dns
if options.domain
v.check_domain_verbose(options.domain, show_green: options.verbose)
else
v.check_domain_list(options.file, sample: options.sample, show_green: options.verbose)
end
end