* add rednote.com into xiaohongshu
* add rednote.com.my into xiaohongshu
* add @!cn mark on new domains
* add @!cn to rednotecdn.com
* category-social-media-cn: don't include xiaohongshu !cn domains
---------
Co-authored-by: MkQtS <81752398+MkQtS@users.noreply.github.com>
* update the inclusion relationship of webnovel
* update the inclusion relationship of bytedance-ai-!cn
* alibabacloud: add !cn attr to some domains
they resolve to singapore and alibabacloud is serving for global area
These CDN domains are used by Kinopub for:
- cdn2cdn.com: video streaming CDN
- cdn2site.com: video streaming CDN
- pushbr.com: poster/thumbnail images
Discovered via network traffic analysis on the Kinopub web app.
Without these domains proxied, poster images fail to load.
---------
Co-authored-by: Ivan Slezkin <ivanslezkin@Mac.lan>
This domain is used by the Kinopub Android TV app for version checking.
Without it, the app hangs on startup when accessed from regions where
this domain is blocked.
Discovered during network traffic analysis on 2026-01-27.
* category-ads-all: include adjust
* category-ads-all: include clearbit
* category-ads-all: include ogury
* category-ads-all: include openx
* category-ads-all: include pubmatic
and remove pubmatic-ads
* category-ads-all: include segment
* category-ads-all: include supersonic
* geolocation-cn: remove the inclusion of umeng
it's included in alibaba
* add unitychina
* remove unity-ads
use unity@ads or unitychina@ads instead
* Feat: add a new datdump tool
* Refactor: address code review comments
* Refactor: remove export all from main program
use datdump instead
* Refactor: allow spaces in exportlists
e.g. `--exportlists="lista, listb"`
* all: cleanup
* apply review suggestion
---------
Co-authored-by: database64128 <free122448@hotmail.com>
* Refactor: improve deduplicate
* Feat: support to export all lists to a plain yml
use: `--exportlists=_all_`
* Docs: add links for dlc plain yml
[skip ci]
- Add account.xiaomi.com for OAuth2 authentication
- Add ha.api.io.mi.com for HTTP API
- Add miot-spec.org for MIoT specification API
- Add cn-ha.mqtt.io.mi.com for MQTT broker
* Refactor: reduce the use of strings.TrimSpace
* Refactor: use string attr before toProto
* Refactor parseEntry
- add value/attribute checker(check missing space)
- allow multiple spaces
- sort attributes
- improve readablity
* Refactor exportPlainTextList
- remove unnecessary variable
- improve readablity
* Remove support for partial include
This reverts e640ac2783
It is problematic and I will implement a new one
* Refactor: promote refMap
* Feat: add support for partial include
- refactor inclusion logic
- add basic deduplicate
* Refactor exporting plaintext list
* Feat: add support for affiliation
A domain rule is always added to the list corresponding to the filename
it resides in. Additionally, you can now add affiliations to a domain
rule, and the rule will be added to the list specified by the
affiliation. Each affiliation begins with `&` and followed by the name
of the affiliation.
This helps us to reduce the number of data files without compromising
functionality, and avoid writing a same rule in different files.
* Feat: add advanced deduplicate for subdomains
only for domain/full subdomains without attr
* Refactor: import and use slices
* Refactor: improve code
Add missing domain for Jiguang (JPush) service.
According to the official Jiguang documentation, `easytomessage.com` is a required domain for the push service to function correctly on network-restricted environments.
Reference:
https://community.jiguang.cn/article/408970
* apple: deduplicate
- swift is included in apple-dev
- `full:certs.apple.com @cn` is added in apple-pki
- `full:crl.apple.com @cn` is added in apple-pki
- `full:ocsp-lb.apple.com.akadns.net @cn` is added in apple-pki
- `full:ocsp.apple.com @cn` is added in apple-pki
- `full:ocsp2-lb.apple.com.akadns.net @cn` is added in apple-pki
- `full:ocsp2.apple.com @cn` is added in apple-pki
- `full:valid.apple.com @cn` is added in apple-pki
* apple: move `valid.origin-apple.com.akadns.net` to apple-pki
keep consistent with valid.apple.com
- `full:safebrowsing-cache.google.com @cn` appears twice
- `full:crl.pki.goog @cn` is added in google-trust-services
- `full:firebase-settings.crashlytics.com @cn` is added in firebase
- `full:ocsp.pki.goog @cn` is added in google-trust-services
- `full:pki-goog.l.google.com @cn` is added in google-trust-services
- `full:redirector.c.play.google.com @cn` is added in google-play
Removed 'include:habr' from the category-ru file.
Reasons:
1) habr.com isn't affiliated with Russia directly (even though the habr.com IS hosted in Russia, it's cdn domain - habrastorage.org is hosted in Estonia)
2) the site itself contains a lot of geoblocked articles which can't be accessed without a foreign proxy - so it being in category-ru can lead to routing mishaps in cases such as routing category-ru sites to DIRECT on the client
Partially revert f73a216810
More china apps use it to resolve domain names.
If it does not belong to cn, it will cause these apps to resolve to non-Chinese IPs!
* tvdb: remove redundant entry
the only domain `thetvdb.com` is already in category-entertainment
* category-entertainment: remove redundant `litv.tv`
it's already in data/litv and included
* sina-ads: clean up
drop some problematic/unreliable/stale rules
* iqiyi-ads: clean up
drop some problematic/unreliable/stale rules
* youku-ads: clean up
drop some problematic/unreliable/stale rules
* alibaba-ads: clean up
drop some problematic/unreliable/stale rules
* baidu-ads: clean up
drop some problematic/unreliable/stale rules
* sohu-ads: clean up
drop some problematic/unreliable/stale rules
* tencent-ads: add more domains
* google-ads: add more domains
* category-ads: reinclude meta-ads
It should be safe to be included now.
This reverts commit 24c112a6e3.
* category-ads: add more domains
* Add ads attr for more domains
* category-companies: remove some unnecessary inclusion
anthropic, groq, openai, perplexity and xai are included in category-ai-!cn
* category-dev: merge imageglass and mpv
* category-media: remove inclusion of tver
tver is included in category-entertainment
* accuweather: add awxcdn.com
* taptap: add !cn attribute for taptap.io
* bluepoch: remove unnecessary cn attribute
bluepoch(-games) is only included by geolocation-cn/category-games-cn
* bilibili-game: remove unnecessary cn attribute
bilibili-game is only included by bilibili/category-games-cn
* category-entertainment: remove inclusion of mihoyo
mihoyo's non-cn part(hoyoverse) is already included via category-games-!cn
* mihoyo-cn: remove unnecessary cn attribute
mihoyo-cn is only included by mihoyo/category-games-cn
* tencent-games: remove unnecessary cn attribute
tencent-games is only included by tencent/category-games-cn
* category-electronic-cn: include jlc directly
jlc: add more domains
* bootcdn: merge bootcss
* category-bank-cn: remove redundant domain
ccb.com is included in ccb
* category-games-cn: remove improper domain
steampp.net is included in category-game-accelerator-cn
* category-scholar-cn: remove redundant domain
sslibrary.com is included in chaoxing
* category-securities-cn: cleanup and improve
gtja.com appears twice
include hsbc-cn
* 58tongcheng: cleanup
58corp.com appears twice
* qcloud: cleanup
tamaegis.com appears twice
* qihoo360: remove redundant domains
qiku is included in starworld
baomitu.com is included in 75team
* geolocation-cn: remove redundant domains/includes
citic is included in category-bank-cn
eleme is included in alibaba
wanfang is included in category-scholar-cn
sina is included in category-social-media-cn
sogou is included in sohu
188.com is included in netease
cankaoxiaoxi.com is included in category-media-cn
ctfile.com is included in category-netdisk-cn
duokanbox.com is included in xiaomi
elecfans.com is included in category-electronic-cn
jianguoyun.com is included in category-netdisk-cn
privateapi.xyz is included in category-collaborate-cn
'# include:category-number-verification-cn' appears twice
`bdmozon.com` appears twice, remove and replenish
`fanmingming.com` has been included in category-blog-cn
- Rules with `@!cn` attribute has been cast out from cn lists. `geosite:geolocation-cn@!cn` is no longer available. Check [#390](https://github.com/v2fly/domain-list-community/issues/390), [#3119](https://github.com/v2fly/domain-list-community/pull/3119) and [#3198](https://github.com/v2fly/domain-list-community/pull/3198) for more information.
- Dedicated non-category ad lists like `geosite:xxx-ads` has been removed. Use `geosite:xxx@ads` instead. `geosite:category-ads[-xx]` is not affected.
Please report if you have any problems or questions.
## Usage example
@@ -85,38 +94,45 @@ All data are under `data` directory. Each file in the directory represents a sub
# comments
include:another-file
domain:google.com @attr1 @attr2
full:analytics.google.com @ads
keyword:google
regexp:www\.google\.com$
full:www.google.com
regexp:^odd[1-7]\.example\.org(\.[a-z]{2})?$
```
**Syntax:**
> [!NOTE]
> Adding new `regexp` and `keyword` rules is discouraged because it is easy to use them incorrectly, and proxy software cannot efficiently match these types of rules.
> [!NOTE]
> The following types of rules are **NOT** fully compatible with the ones that defined by user in V2Ray config file. Do **Not** copy and paste directly.
* Comment begins with `#`. It may begin anywhere in the file. The content in the line after `#` is treated as comment and ignored in production.
*Inclusion begins with `include:`, followed by the file name of an existing file in the same directory.
*Subdomain begins with `domain:`, followed by a valid domain name. The prefix `domain:` may be omitted.
* Keyword begins with `keyword:`, followed by a string.
* Regular expression begins with `regexp:`, followed by a valid regular expression (per Golang's standard).
*Full domain begins with `full:`, followed by a complete and valid domain name.
* Domains (including `domain`, `keyword`, `regexp` and `full`) may have one or more attributes. Each attribute begins with `@` and followed by the name of the attribute.
> **Note:** Adding new `regexp` and `keyword` rules is discouraged because it is easy to use them incorrectly, and proxy software cannot efficiently match these types of rules.
- Comment begins with `#`. It may begin anywhere in the file. The content in the line after `#` is treated as comment and ignored in production.
-Subdomain begins with `domain:`, followed by a valid domain name. The prefix `domain:` may be omitted.
-Full domain begins with `full:`, followed by a complete and valid domain name.
- Keyword begins with `keyword:`, followed by a substring of a valid domain name.
- Regular expression begins with `regexp:`, followed by a valid regular expression (per Golang's standard).
-Domain rules (including `domain`, `full`, `keyword`, and `regexp`) may have none, one or more attributes. Each attribute begins with `@` and followed by the name of the attribute. Attributes will remain available in final lists and `dlc.dat`.
- Domain rules may have none, one or more affiliations, which additionally adds the domain rule into the affiliated target list. Each affiliation begins with `&` and followed by the name of the target list (nomatter whether the target has a dedicated file in data path). This is a method for data management, and will not remain in the final lists or `dlc.dat`.
- Inclusion begins with `include:`, followed by the name of another valid domain list. A simple `include:listb` in file `lista` means adding all domain rules of `listb` into `lista`. Inclusions with attributes stands for selective inclusion. `include:listb @attr1 @-attr2` means only adding those domain rules *with*`@attr1`**and***without*`@attr2`. This is a special type for data management, and will not remain in the final lists or `dlc.dat`.
## How it works
The entire `data` directory will be built into an external `geosite` file for Project V. Each file in the directory represents a section in the generated file.
To generate a section:
**General steps:**
1. Remove all the comments in the file.
2.Replace `include:` lines with the actual content of the file.
3.Omit all empty lines.
4.Generate each `domain:` line into a [sub-domain routing rule](https://github.com/v2fly/v2ray-core/blob/master/app/router/config.proto#L21).
5. Generate each `keyword:` line into a [plain domain routing rule](https://github.com/v2fly/v2ray-core/blob/master/app/router/config.proto#L17).
6. Generate each `regexp:` line into a [regex domain routing rule](https://github.com/v2fly/v2ray-core/blob/master/app/router/config.proto#L19).
7. Generate each `full:` line into a [full domain routing rule](https://github.com/v2fly/v2ray-core/blob/master/app/router/config.proto#L23).
1. Read files in the data path (ignore all comments and empty lines).
2.Parse and resolve source data, turn affiliations and inclusions into actual domain rules in proper lists.
3.Deduplicate and sort rules in every list.
4.Export desired plain text lists.
5. Generate `dlc.dat`:
- turn each `domain:` line into a [sub-domain routing rule](https://github.com/v2fly/v2ray-core/blob/master/app/router/routercommon/common.proto#L21).
- turn each `full:` line into a [full domain routing rule](https://github.com/v2fly/v2ray-core/blob/master/app/router/routercommon/common.proto#L23).
- turn each `keyword:` line into a [plain domain routing rule](https://github.com/v2fly/v2ray-core/blob/master/app/router/routercommon/common.proto#L17).
- turn each `regexp:` line into a [regex domain routing rule](https://github.com/v2fly/v2ray-core/blob/master/app/router/routercommon/common.proto#L19).
Read [main.go](./main.go) for details.
## How to organize domains
@@ -126,12 +142,12 @@ Theoretically any string can be used as the name, as long as it is a valid file
### Attributes
Attribute is useful for sub-group of domains, especially for filtering purpose. For example, the list of `google` domains may contains its main domains, as well as domains that serve ads. The ads domains may be marked by attribute `@ads`, and can be used as `geosite:google@ads` in V2Ray routing.
Attribute is useful for sub-group of domains, especially for filtering purpose. For example, the list of `google` may contains its main domains, as well as domains that serve ads. The ads domains may be marked by attribute `@ads`, and can be used as `geosite:google@ads` in V2Ray routing. Domains and services that originate from outside China mainland but have access point in China mainland, may be marked by attribute `@cn`.
## Contribution guideline
* Fork this repo, make modifications to your own repo, file a PR.
* Please begin with small size PRs, say modification in a single file.
* A PR must be reviewed and approved by another member.
* A script will verify your pull request to test whether your PR is correct or not every time you update the PR. Only the PR which passes the test will be merged. Please go to the Action label to get detailed information if you didn't pass it. We also provide the file which has been generated to make you test.
* After a few successful PRs, you may apply for manager access to this repository.
- Fork this repo, make modifications to your own repo, file a PR.
- Please begin with small size PRs, say modification in a single file.
- A PR must be reviewed and approved by another member.
- A script will verify your pull request to test whether your PR is correct or not every time you update the PR. Only the PR which passes the test will be merged. Please go to the Action label to get detailed information if you didn't pass it. We also provide the file which has been generated to make you test.
- After a few successful PRs, you may apply for manager access to this repository.
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.