https://github.com/5-whys/adh-rules
Adblock home rules for China regions (Mainland China, Hong Kong, Taiwan, Macau Users)
https://github.com/5-whys/adh-rules
adblock adblock-list adguard-blocklist adguardhome blocktracker china-region hongkong mainland-china taiwan
Last synced: 25 days ago
JSON representation
Adblock home rules for China regions (Mainland China, Hong Kong, Taiwan, Macau Users)
- Host: GitHub
- URL: https://github.com/5-whys/adh-rules
- Owner: 5-whys
- License: mit
- Created: 2022-12-30T03:19:20.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2026-05-22T06:22:53.000Z (about 1 month ago)
- Last Synced: 2026-05-22T14:18:49.628Z (about 1 month ago)
- Topics: adblock, adblock-list, adguard-blocklist, adguardhome, blocktracker, china-region, hongkong, mainland-china, taiwan
- Language: Go
- Homepage:
- Size: 9.66 GB
- Stars: 30
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://github.com/5-whys/adh-rules/actions/workflows/adrules.yml)
[](https://github.com/5-whys/adh-rules/actions)
[](https://opensource.org/licenses/MIT)
[](https://golang.org/)
[](https://github.com/5-whys/adh-rules/actions)
[](https://github.com/5-whys/adh-rules)
[](https://github.com/5-whys/adh-rules/stargazers)
# 5whys Adblock Home Rules
Adblock rules for China regions (Mainland China, Hong Kong, Taiwan, Macau). Updated 3 times daily.
中國地區廣告封鎖規則(中國大陸、香港、台灣、澳門)。每日更新 3 次。
---
## Features
| Feature | Description |
|---------|-------------|
| Multi-source | Consolidates 30+ filter lists for China regions |
| Multi-format | AdGuard Home, hosts, dnsmasq, Unbound, uBlock Origin, domain-only |
| 4 Tiers | Super, Full, Medium, Min |
| DNS Filtering | Removes dead domains using puredns + massdns |
| Transparency | Dead domains list published for review |
---
## Download Links
| Tier | AdGuard Home | Hosts | dnsmasq | Unbound | uBlock Origin | Domains |
|------|-------------|-------|---------|---------|---------------|---------|
| **Super** (617k) | [raw](https://raw.githubusercontent.com/5-whys/adh-rules/main/rules/output_super.txt) \| [cdn](https://cdn.jsdelivr.net/gh/5-whys/adh-rules@release/output_super.txt) | [raw](https://raw.githubusercontent.com/5-whys/adh-rules/main/rules/output_super_hosts.txt) \| [cdn](https://cdn.jsdelivr.net/gh/5-whys/adh-rules@release/output_super_hosts.txt) | [raw](https://raw.githubusercontent.com/5-whys/adh-rules/main/rules/output_super_dnsmasq.txt) \| [cdn](https://cdn.jsdelivr.net/gh/5-whys/adh-rules@release/output_super_dnsmasq.txt) | [raw](https://raw.githubusercontent.com/5-whys/adh-rules/main/rules/output_super_unbound.txt) \| [cdn](https://cdn.jsdelivr.net/gh/5-whys/adh-rules@release/output_super_unbound.txt) | [raw](https://raw.githubusercontent.com/5-whys/adh-rules/main/rules/output_super_ublock.txt) \| [cdn](https://cdn.jsdelivr.net/gh/5-whys/adh-rules@release/output_super_ublock.txt) | [raw](https://raw.githubusercontent.com/5-whys/adh-rules/main/rules/output_super_domains.txt) \| [cdn](https://cdn.jsdelivr.net/gh/5-whys/adh-rules@release/output_super_domains.txt) |
| **Full** (586k) | [raw](https://raw.githubusercontent.com/5-whys/adh-rules/main/rules/output_full.txt) \| [cdn](https://cdn.jsdelivr.net/gh/5-whys/adh-rules@release/output_full.txt) | [raw](https://raw.githubusercontent.com/5-whys/adh-rules/main/rules/output_full_hosts.txt) \| [cdn](https://cdn.jsdelivr.net/gh/5-whys/adh-rules@release/output_full_hosts.txt) | [raw](https://raw.githubusercontent.com/5-whys/adh-rules/main/rules/output_full_dnsmasq.txt) \| [cdn](https://cdn.jsdelivr.net/gh/5-whys/adh-rules@release/output_full_dnsmasq.txt) | [raw](https://raw.githubusercontent.com/5-whys/adh-rules/main/rules/output_full_unbound.txt) \| [cdn](https://cdn.jsdelivr.net/gh/5-whys/adh-rules@release/output_full_unbound.txt) | [raw](https://raw.githubusercontent.com/5-whys/adh-rules/main/rules/output_full_ublock.txt) \| [cdn](https://cdn.jsdelivr.net/gh/5-whys/adh-rules@release/output_full_ublock.txt) | [raw](https://raw.githubusercontent.com/5-whys/adh-rules/main/rules/output_full_domains.txt) \| [cdn](https://cdn.jsdelivr.net/gh/5-whys/adh-rules@release/output_full_domains.txt) |
| **Medium** (257k) | [raw](https://raw.githubusercontent.com/5-whys/adh-rules/main/rules/output_medium.txt) \| [cdn](https://cdn.jsdelivr.net/gh/5-whys/adh-rules@release/output_medium.txt) | [raw](https://raw.githubusercontent.com/5-whys/adh-rules/main/rules/output_medium_hosts.txt) \| [cdn](https://cdn.jsdelivr.net/gh/5-whys/adh-rules@release/output_medium_hosts.txt) | [raw](https://raw.githubusercontent.com/5-whys/adh-rules/main/rules/output_medium_dnsmasq.txt) \| [cdn](https://cdn.jsdelivr.net/gh/5-whys/adh-rules@release/output_medium_dnsmasq.txt) | [raw](https://raw.githubusercontent.com/5-whys/adh-rules/main/rules/output_medium_unbound.txt) \| [cdn](https://cdn.jsdelivr.net/gh/5-whys/adh-rules@release/output_medium_unbound.txt) | [raw](https://raw.githubusercontent.com/5-whys/adh-rules/main/rules/output_medium_ublock.txt) \| [cdn](https://cdn.jsdelivr.net/gh/5-whys/adh-rules@release/output_medium_ublock.txt) | [raw](https://raw.githubusercontent.com/5-whys/adh-rules/main/rules/output_medium_domains.txt) \| [cdn](https://cdn.jsdelivr.net/gh/5-whys/adh-rules@release/output_medium_domains.txt) |
| **Min** (175k) | [raw](https://raw.githubusercontent.com/5-whys/adh-rules/main/rules/output_min.txt) \| [cdn](https://cdn.jsdelivr.net/gh/5-whys/adh-rules@release/output_min.txt) | [raw](https://raw.githubusercontent.com/5-whys/adh-rules/main/rules/output_min_hosts.txt) \| [cdn](https://cdn.jsdelivr.net/gh/5-whys/adh-rules@release/output_min_hosts.txt) | [raw](https://raw.githubusercontent.com/5-whys/adh-rules/main/rules/output_min_dnsmasq.txt) \| [cdn](https://cdn.jsdelivr.net/gh/5-whys/adh-rules@release/output_min_dnsmasq.txt) | [raw](https://raw.githubusercontent.com/5-whys/adh-rules/main/rules/output_min_unbound.txt) \| [cdn](https://cdn.jsdelivr.net/gh/5-whys/adh-rules@release/output_min_unbound.txt) | [raw](https://raw.githubusercontent.com/5-whys/adh-rules/main/rules/output_min_ublock.txt) \| [cdn](https://cdn.jsdelivr.net/gh/5-whys/adh-rules@release/output_min_ublock.txt) | [raw](https://raw.githubusercontent.com/5-whys/adh-rules/main/rules/output_min_domains.txt) \| [cdn](https://cdn.jsdelivr.net/gh/5-whys/adh-rules@release/output_min_domains.txt) |
### Additional Resources
| List | URL |
|------|-----|
| Dead Domains | [dead_domains.txt](https://raw.githubusercontent.com/5-whys/adh-rules/main/rules/dead_domains.txt) |
---
## Format Description
| Format | Example | Use Case |
|--------|---------|----------|
| AdGuard Home | `\|\|ads.example.com^` | AdGuard Home, AdGuard DNS |
| Hosts | `0.0.0.0 ads.example.com` | Pi-hole, `/etc/hosts` |
| dnsmasq | `address=/ads.example.com/#` | OpenWrt, dnsmasq |
| Unbound | `local-zone: "ads.example.com" NXDOMAIN` | Unbound DNS resolver |
| uBlock Origin | `\|\|ads.example.com^` | Browser extensions |
| Domain-only | `ads.example.com` | Custom implementations |
---
## DNS NXDOMAIN Filtering
Uses [puredns](https://github.com/d3mondev/puredns) with massdns to verify domain existence. Dead domains (NXDOMAIN responses) are removed to reduce file size and improve performance.
- Dead domains logged in `rules/dead_domains.txt`
- DNS cache valid for 24 hours
- Stale cache entries removed after 7 days
---
## Usage
**Pi-hole**
```
https://raw.githubusercontent.com/5-whys/adh-rules/main/rules/output_full_hosts.txt
```
**dnsmasq (OpenWrt)**
```
https://raw.githubusercontent.com/5-whys/adh-rules/main/rules/output_full_dnsmasq.txt
```
**Unbound**
```
https://raw.githubusercontent.com/5-whys/adh-rules/main/rules/output_full_unbound.txt
```
**AdGuard Home**
```
https://raw.githubusercontent.com/5-whys/adh-rules/main/rules/output_full.txt
```
---
## Tier Guide
| Tier | Description | Recommended For |
|------|-------------|-----------------|
| **Min** | Essential ad blocking for China | Minimal blocking, basic protection |
| **Medium** | Balanced protection for China | Most users in China regions |
| **Full** | Comprehensive blocking worldwide | Users requiring extensive blocking |
| **Super** | Maximum blocking | Advanced users only (may cause false positives) |
---
## Acknowledgments
- [AdguardTeam/AdGuardHome](https://github.com/AdguardTeam/AdGuardHome)
- All upstream filter maintainers for China regions
---
## License
MIT License