Community managed domain list. Generate geosite.dat for V2Ray.
This project manages a list of domains, to be used as geosites for routing purpose in Project V.
This project is not opinionated. In other words, it does NOT endorse, claim or imply that a domain should be blocked or proxied. It can be used to generate routing rules on demand.
Each file in the
datadirectory can be used as a rule in this format:
geosite:filename.
"routing": { "domainStrategy": "IPIfNonMatch", "rules": [ { "type": "field", "outboundTag": "Reject", "domain": [ "geosite:category-ads-all", "geosite:category-porn" ] }, { "type": "field", "outboundTag": "Direct", "domain": [ "domain:icloud.com", "domain:icloud-content.com", "domain:cdn-apple.com", "geosite:cn", "geosite:private" ] }, { "type": "field", "outboundTag": "Proxy-1", "domain": [ "geosite:category-anticensorship", "geosite:category-media", "geosite:category-vpnservices" ] }, { "type": "field", "outboundTag": "Proxy-2", "domain": [ "geosite:category-dev" ] }, { "type": "field", "outboundTag": "Proxy-3", "domain": [ "geosite:geolocation-!cn" ] } ] }
dlc.datmanually
golangand
git
git clone https://github.com/v2fly/domain-list-community.git
cd domain-list-community
go mod download
dlc.dat(without
datapathoption means to use domain lists in
datadirectory of current working directory):
go run ./
go run ./ --datapath=/path/to/your/custom/data/directory
Run
go run ./ --helpfor more usage information.
All data are under
datadirectory. Each file in the directory represents a sub-list of domains, named by the file name. File content is in the following format.
# comments include:another-file domain:google.com @attr1 @attr2 keyword:google regexp:www\.google\.com$ full:www.google.com
Syntax:
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.
#. It may begin anywhere in the file. The content in the line after
#is treated as comment and ignored in production.
include:, followed by the file name of an existing file in the same directory.
domain:, followed by a valid domain name. The prefix
domain:may be omitted.
keyword:, followed by a string.
regexp:, followed by a valid regular expression (per Golang's standard).
full:, followed by a complete and valid domain name.
domain,
keyword,
regexpand
full) may have one or more attributes. Each attribute begins with
@and followed by the name of the attribute.
The entire
datadirectory will be built into an external
geositefile for Project V. Each file in the directory represents a section in the generated file.
To generate a section:
include:lines with the actual content of the file.
domain:line into a sub-domain routing rule.
keyword:line into a plain domain routing rule.
regexp:line into a regex domain routing rule.
full:line into a full domain routing rule.
Theoretically any string can be used as the name, as long as it is a valid file name. In practice, we prefer names for determinic group of domains, such as the owner (usually a company name) of the domains, e.g., "google", "netflix". Names with unclear scope are generally unrecommended, such as "evil", or "local".
Attribute is useful for sub-group of domains, especially for filtering purpose. For example, the list of
@ads, and can be used as
geosite:[email protected]in V2Ray routing.