This project manages a list of domains, to be used as geosites for routing purpose in Project V.
Due to a lack of members capable of code review, this repository has been moved to v2fly/domain-list-community. This also means that more contributors can have manager access to the new repository after a few successful PRs, which will make the project healthier and more active for good.
From now on, this repo will only be used to release dlc.dat
. Other matters (issues and pull requests) will be handled at the new repository.
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 data
directory 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"
]
},
{
"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.dat
manuallygolang
and git
go get -u -v --insecure github.com/v2ray/domain-list-community
dlc.dat
(without datapath
option means to use data
directory of this repository in $GOPATH
):
$(go env GOPATH)/bin/domain-list-community
$(go env GOPATH)/bin/domain-list-community --datapath=/path/to/your/custom/data/directory
All data are under data
directory. 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
regex:www\.google\.com
full:www.google.com
Syntax:
#
. 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.regex:
, followed by a valid regular expression (per Golang's standard).full:
, followed by a complete and valid domain name.domain
, keyword
, regex
and full
) may have one or more attributes. Each attribute begins with @
and followed by the name of the attribute.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:
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.regex:
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 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.