AdGuard Home:客製化 DNS 解析伺服器 (支援 DoH/DoT)

硬體配置:

1c 256M 4g 即可(開高我也沒意見)
大量清單建議:2c 4G 16G

安裝方式:

到 Github 選擇對應 OS 安裝包 下載 解壓縮執行安裝即可

wget https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.105.2/AdGuardHome_linux_amd64.tar.gz
tar zxvf AdGuardHome_linux_amd64.tar.gz
cd AdGuardHome/
sudo ./AdGuardHome -s install

或使用一鍵安裝包:

curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v

IP:3000 進入網頁設定(預設值即可)

一般設置

DNS設置

上游的 DNS 伺服器:

1.1.1.2
1.0.0.2
168.95.192.1
8.8.8.8
quic://dns-unfiltered.adguard.com:784
https://dns.google/dns-query
tls://dns.google
https://dns.cloudflare.com/dns-query
https://security.cloudflare-dns.com/dns-query

自我啟動(Bootstrap)DNS 伺服器:

tls://1.1.1.1
tls://8.8.8.8
tls://8.8.4.4

勾選同時查詢 DNS


RBL清單:

預設內建可以全勾之後,以下可以參考新增:

#NeoHost
https://cdn.jsdelivr.net/gh/neoFelhz/neohosts@gh-pages/127.0.0.1/full/hosts

#CoinBlocker
https://zerodot1.gitlab.io/CoinBlockerLists/hosts

#StevenBlack
https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
#ABP
https://bestpika.github.io/abp/yui.txt
https://gist.github.com/bestpika/5e414a4f60b2a996a6fb31ec592a56b4/raw/hide.txt
https://filters.adtidy.org/extension/ublock/filters/3.txt
https://filters.adtidy.org/extension/ublock/filters/15.txt
https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/badware.txt
https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/resource-abuse.txt
https://raw.githubusercontent.com/Yhonay/antipopads/master/popads.txt
https://raw.githubusercontent.com/NanoAdblocker/NanoFilters/master/NanoFilters/NanoTimer.txt
https://raw.githubusercontent.com/cjx82630/cjxlist/master/cjxlist.txt
https://raw.githubusercontent.com/cjx82630/cjxlist/master/cjx-annoyance.txt
https://280blocker.net/files/280blocker_adblock.txt
https://raw.githubusercontent.com/privacy-protection-tools/anti-AD/master/anti-ad-easylist.txt
#AAK
https://easylist-downloads.adblockplus.org/antiadblockfilters.txt
https://raw.githubusercontent.com/jspenguin2017/uBlockProtector/master/uBlockProtectorList.txt
#Other
https://filter.futa.gg/filter.txt
https://filter.futa.gg/hosts.txt
https://raw.githubusercontent.com/gwarser/filter-lists/master/lan-block.txt
https://filter.futa.gg/nofarm_hosts.txt
https://filter.futa.gg/removeparam.txt
https://filter.futa.gg/experimental.txt
https://filter.futa.gg/hide_farm_from_search.txt
https://anti-ad.net/easylist.txt
https://raw.githubusercontent.com/AdguardTeam/FiltersRegistry/master/filters/filter_17_TrackParam/filter.txt
https://raw.githubusercontent.com/BlueSkyXN/AdGuardHomeRules/master/all.txt
https://raw.githubusercontent.com/BlueSkyXN/AdGuardHomeRules/master/skyrules.txt
#Xuan2host_Filter
https://pvecli.xuan2host.com/Filter/Xuan2host_Filter.txt
#LegitimateURLShortener
https://raw.githubusercontent.com/DandelionSprout/adfilt/master/LegitimateURLShortener.txt
ChinaList+EasyList
http://sub.adtchrome.com/adt-chinalist-easylist.txt
#EasyList China 中文補充規則
https://easylist-downloads.adblockplus.org/easylistchina.txt
#xinggsf乘風廣告過濾規則
https://gitee.com/xinggsf/Adblock-Rule/raw/master/rule.txt

自訂過濾規則:


Let's Encrypt:

先利用其他域名證書讓 nginx -t 檢查通過之後 CF DNS 直通 Let's Encrypt 簽發證書回傳:

server
{
   listen 80;
   server_name agh.yourdomain;

   return 301 https://$server_name$request_uri;
}

server
{
   listen 443 ssl http2;
   server_name agh.yourdomain;

   root /dev/null;
    ssl_certificate /etc/letsencrypt/live/agh.yourdomain/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/agh.yourdomain/privkey.pem; # managed by Certbot
   ssl_protocols TLSv1.2 TLSv1.3;
   ssl_session_timeout  10m;
   ssl_session_cache shared:SSL:10m;
   ssl_session_tickets off;

   location / {
        proxy_redirect off;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass https://10.0.1.191;
    }

    location ~ .*.(gif|jpg|jpeg|png|bmp|swf|css|js)$ {
        proxy_pass https://10.0.1.191;
        proxy_set_header Host  $host;
        proxy_set_header X-Forwarded-For $remote_addr;
    }

    location /dns-query {
        proxy_http_version 1.1;
        proxy_set_header Host $http_host;
        proxy_buffering off;
        proxy_redirect off;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass https://10.0.1.191:443/dns-query;
    }

}

然後利用 proxy 取得的 ssl 證書拷貝至 AdGuard Home 加密頁面, 填寫相同域名,不勾選 HTTP to HTTPS 之後,生效收工。


如果不小心開啟安全搜尋請先關閉之後進入 Youtube 將嚴格篩選模式關閉:


驗證 DoT 以及 DoH >> https://github.com/ameshkov/dnslookup

apt install golang
git clone https://github.com/ameshkov/dnslookup
cd dnslookup
make
./dnslookup www.google.com https://adg.yourdomain/dns-query

or 使用此測試:

time nslookup www.google.com agh.yourdomain

其他封鎖清單:

https://github.com/tasi788/abp

https://github.com/privacy-protection-tools/anti-AD


Configuration:

bind_host: 0.0.0.0
bind_port: 80
beta_bind_port: 0
users:
- name: Username
  password: 
auth_attempts: 5
block_auth_min: 15
http_proxy: ""
language: zh-tw
rlimit_nofile: 0
debug_pprof: false
web_session_ttl: 720
dns:
  bind_hosts:
  - 10.0.1.191
  port: 53
  statistics_interval: 90
  querylog_enabled: true
  querylog_file_enabled: true
  querylog_interval: 90
  querylog_size_memory: 1000
  anonymize_client_ip: false
  protection_enabled: true
  blocking_mode: default
  blocking_ipv4: ""
  blocking_ipv6: ""
  blocked_response_ttl: 10
  parental_block_host: family-block.dns.adguard.com
  safebrowsing_block_host: standard-block.dns.adguard.com
  ratelimit: 20
  ratelimit_whitelist: []
  refuse_any: true
  upstream_dns:
  - 1.1.1.2
  - 1.0.0.2
  - 168.95.192.1
  - 8.8.8.8
  - 168.95.1.25
  - quic://dns-unfiltered.adguard.com:784
  - https://dns.google/dns-query
  - tls://dns.google
  - https://dns.cloudflare.com/dns-query
  - https://security.cloudflare-dns.com/dns-query
  upstream_dns_file: ""
  bootstrap_dns:
  - tls://1.1.1.1
  - tls://8.8.8.8
  - tls://8.8.4.4
  all_servers: true
  fastest_addr: false
  allowed_clients: []
  disallowed_clients:
  - 195.37.190.77
  - 88.152.11.31
  - 27.115.124.74
  - 47.245.54.133
  blocked_hosts:
  - version.bind
  - id.server
  - hostname.bind
  cache_size: 4194304
  cache_ttl_min: 0
  cache_ttl_max: 0
  bogus_nxdomain: []
  aaaa_disabled: true
  enable_dnssec: true
  edns_client_subnet: false
  max_goroutines: 50
  ipset: []
  filtering_enabled: true
  filters_update_interval: 24
  parental_enabled: false
  safesearch_enabled: false
  safebrowsing_enabled: false
  safebrowsing_cache_size: 1048576
  safesearch_cache_size: 1048576
  parental_cache_size: 1048576
  cache_time: 30
  rewrites: []
  blocked_services: []
  local_domain_name: lan
  resolve_clients: true
  local_ptr_upstreams: []
tls:
  enabled: true
  server_name: agh.
  force_https: false
  port_https: 443
  port_dns_over_tls: 853
  port_dns_over_quic: 784
  port_dnscrypt: 0
  dnscrypt_config_file: ""
  allow_unencrypted_doh: false
  strict_sni_check: false
  certificate_chain: |-
  private_key: |-
  certificate_path: ""
  private_key_path: ""
filters:
- enabled: true
  url: https://adguardteam.github.io/AdGuardSDNSFilter/Filters/filter.txt
  name: AdGuard DNS filter
  id: 1
- enabled: true
  url: https://adaway.org/hosts.txt
  name: AdAway
  id: 2
- enabled: true
  url: https://www.malwaredomainlist.com/hostslist/hosts.txt
  name: MalwareDomainList.com Hosts List
  id: 4
- enabled: true
  url: https://cdn.jsdelivr.net/gh/neoFelhz/neohosts@gh-pages/127.0.0.1/full/hosts
  name: neoHosts
  id: 1587358099
- enabled: true
  url: https://zerodot1.gitlab.io/CoinBlockerLists/hosts
  name: CoinBlocker
  id: 1587358920
- enabled: true
  url: https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
  name: StevenBlack
  id: 1587358921
- enabled: true
  url: https://raw.githubusercontent.com/CHEF-KOCH/NSABlocklist/master/HOSTS/HOSTS
  name: CHEF-KOCH NASBlocklist
  id: 1587358922
- enabled: true
  url: https://bestpika.github.io/abp/yui.txt
  name: 廣告退散
  id: 1587659743
- enabled: true
  url: https://gist.github.com/bestpika/5e414a4f60b2a996a6fb31ec592a56b4/raw/hide.txt
  name: 廣告退散 禁則事項
  id: 1587659744
- enabled: true
  url: https://filters.adtidy.org/extension/ublock/filters/3.txt
  name: AdGuard Tracking Protection filter
  id: 1587659745
- enabled: true
  url: https://filters.adtidy.org/extension/ublock/filters/15.txt
  name: AdGuard DNS filter
  id: 1587659747
- enabled: true
  url: https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/badware.txt
  name: uBlock filters – Badware risks
  id: 1587659748
- enabled: true
  url: https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/resource-abuse.txt
  name: uBlock filters – Resource abuse
  id: 1587659749
- enabled: true
  url: https://raw.githubusercontent.com/Yhonay/antipopads/master/popads.txt
  name: Anti popads.net
  id: 1587659750
- enabled: true
  url: https://raw.githubusercontent.com/cjx82630/cjxlist/master/cjxlist.txt
  name: CJX's EasyList Lite
  id: 1587659752
- enabled: true
  url: https://raw.githubusercontent.com/cjx82630/cjxlist/master/cjx-annoyance.txt
  name: CJX's Annoyance List
  id: 1587659753
- enabled: true
  url: https://280blocker.net/files/280blocker_adblock.txt
  name: 280blocker for japanese mobile site
  id: 1587659754
- enabled: true
  url: https://raw.githubusercontent.com/jspenguin2017/uBlockProtector/master/uBlockProtectorList.txt
  name: uBlockProtectorList
  id: 1587659756
- enabled: true
  url: https://raw.githubusercontent.com/privacy-protection-tools/anti-AD/master/anti-ad-easylist.txt
  name: anti-ad-easylist
  id: 1587659757
- enabled: true
  url: https://futaguard.github.io/FutaFilter/hosts.txt
  name: FutaFilter_Hosts
  id: 1589653537
- enabled: true
  url: https://futaguard.github.io/FutaFilter/filter.txt
  name: Make futa great again!
  id: 1589653538
- enabled: true
  url: https://raw.githubusercontent.com/gwarser/filter-lists/master/lan-block.txt
  name: Block access to LAN
  id: 1590951368
- enabled: true
  url: https://filter.futa.gg/nofarm_hosts.txt
  name: nofarm_hosts
  id: 1590951369
- enabled: true
  url: https://filter.futa.gg/removeparam.txt
  name: removeparam
  id: 1615659718
- enabled: true
  url: https://filter.futa.gg/experimental.txt
  name: experimental
  id: 1615659719
- enabled: true
  url: https://raw.githubusercontent.com/BlueSkyXN/AdGuardHomeRules/master/skyrules.txt
  name: skyrules
  id: 1618162488
- enabled: true
  url: https://raw.githubusercontent.com/BlueSkyXN/AdGuardHomeRules/master/all.txt
  name: BlueSkyXN
  id: 1618162489
- enabled: true
  url: https://filter.futa.gg/hide_farm_from_search.txt
  name: hide_farm_from_search
  id: 1618162490
- enabled: true
  url: https://anti-ad.net/easylist.txt
  name: 'CHN: anti-AD'
  id: 1618162491
- enabled: true
  url: https://raw.githubusercontent.com/AdguardTeam/FiltersRegistry/master/filters/filter_17_TrackParam/filter.txt
  name: filter_17_TrackParam
  id: 1618162492
- enabled: true
  url: https://pvecli.xuan2host.com/Filter/Xuan2host_Filter.txt
  name: Xuan2host_Filter
  id: 1623523461
- enabled: true
  url: https://raw.githubusercontent.com/DandelionSprout/adfilt/master/LegitimateURLShortener.txt
  name: LegitimateURLShortener
  id: 1640829606
- enabled: true
  url: http://sub.adtchrome.com/adt-chinalist-easylist.txt
  name: ChinaList+EasyList
  id: 1649868744
- enabled: true
  url: https://easylist-downloads.adblockplus.org/easylistchina.txt
  name: EasyList China 中文補充規則
  id: 1649868745
- enabled: true
  url: https://gitee.com/xinggsf/Adblock-Rule/raw/master/rule.txt
  name: xinggsf乘風廣告過濾規則
  id: 1649868746
whitelist_filters: []
user_rules: []
dhcp:
  enabled: false
  interface_name: ""
  dhcpv4:
    gateway_ip: ""
    subnet_mask: ""
    range_start: ""
    range_end: ""
    lease_duration: 86400
    icmp_timeout_msec: 1000
    options: []
  dhcpv6:
    range_start: ""
    lease_duration: 86400
    ra_slaac_only: false
    ra_allow_slaac: false
clients: []
log_compress: false
log_localtime: false
log_max_backups: 0
log_max_size: 100
log_max_age: 3
log_file: ""
verbose: false
schema_version: 10
阅读剩余
THE END