Compare commits

...

50 Commits

Author SHA1 Message Date
IceCodeNew
82f33d77df Merge branch '4pr' 2020-06-07 21:34:45 +08:00
IceCodeNew
8b20aa866e Partially revert commit 14f9756 about the way generating hashsum files.
有鉴于 [v2fly/fhs-install-v2ray](https://github.com/v2fly/fhs-install-v2ray) 极可能会成为未来官方钦定的一种 dat 文件更新标准,最近在 build.yml 上所做的更改是值得商榷的。
我的建议是该 fork 不应该与上游的行为不同,否则如果用户替换 v2fly 的 dat-install 脚本中更新源地址就会遇到问题。
---
如果这一改动是因为加入 scoop 支持引入的,我建议维护 scoop 库的人遵守上游的文件验证方式。
2020-06-07 21:29:23 +08:00
IceCodeNew
af4c660cf0 Update README.md 2020-06-07 21:12:52 +08:00
IceCodeNew
09e000644d Update build.yml
Add more trigger.
2020-06-07 21:09:36 +08:00
IceCodeNew
026f4b41ea Update build.yml 2020-06-07 21:09:03 +08:00
IceCodeNew
2e301a4219 Update build.yml
Switch cnipv4 source to my own repo, which should be more accurate.
Please be noticed that its daily update is scheduled on 11:30 AM (CST).
2020-06-07 21:08:13 +08:00
IceCodeNew
f649f28981 Revert "Update README.md"
This reverts commit d5bf41ce00.
2020-06-07 21:03:53 +08:00
IceCodeNew
c6f75b5910 Revert "Update README.md"
This reverts commit 91f21e9dd0.
2020-06-07 21:03:15 +08:00
Kid
d9ffcd313b Add scoop support (#27) 2020-06-06 14:10:27 +08:00
Loyalsoldier
14f9756d78 Update workflow 2020-06-06 11:36:32 +08:00
Loyalsoldier
f3acc73a29 Change V2Ray repo link to V2fly 2020-06-05 23:38:09 +08:00
Loyalsoldier
4d73ef6f3d Update build.yml 2020-06-05 20:30:06 +08:00
Loyalsoldier
013c6ef33a Use $GEOSITE_REPO as data folder source by default
Can change $GEOSITE_REPO environment variable to use your own forked `domain-list-community` repo
2020-06-03 18:37:56 +08:00
Loyalsoldier
91f21e9dd0 Update README.md 2020-05-30 23:49:21 +08:00
Loyalsoldier
d5bf41ce00 Update README.md 2020-05-30 21:44:05 +08:00
Loyalsoldier
3245b960bb Do not build after README.md update 2020-05-30 21:30:58 +08:00
Loyalsoldier
2bfb1aa228 Replace @17mon/china_ip_list with @pexcn/daily/chnroute.txt 2020-05-30 21:18:05 +08:00
loyalsoldier
765182332a Include @AdAway/adaway.github.io/hosts.txt into reject-list 2020-05-30 20:01:37 +08:00
loyalsoldier
6725586512 Include @pexcn/gfwlist-extras domains into proxy-list 2020-05-30 17:28:53 +08:00
loyalsoldier
838b85e50a Zip rule files into one
Closes #25
2020-05-27 14:20:47 +08:00
Loyalsoldier
10961eff9c Add project stats 2020-05-22 15:16:18 +08:00
loyalsoldier
acc65b49e9 Add @Loyalsoldier/cn-blocked-domain description 2020-05-09 21:56:24 +08:00
loyalsoldier
12a9a0d8c6 Add @Loyalsoldier/cn-blocked-domains into proxy routing 2020-05-09 21:51:58 +08:00
Loyalsoldier
a0ff18c5c8 Start a build also by updating hidden branch 2020-04-21 13:56:25 +08:00
Loyalsoldier
12e5b7a6fd Update README.md 2020-04-09 08:57:37 +08:00
loyalsoldier
ac4af75c51 Remove easylist from README 2020-04-07 22:09:10 +08:00
loyalsoldier
cdf564fdfa Remove easylists' Ad hosts from reject-list 2020-04-07 22:06:15 +08:00
loyalsoldier
c4dd3bd164 Update README description & V2Ray config 2020-04-07 15:15:20 +08:00
Loyalsoldier
900d0e1c06 Fix easylist regexp error 2020-04-07 14:57:17 +08:00
loyalsoldier
e5831eec05 Add EasyList & EasyListChina & EasyListPrivacy into rejectlist 2020-04-06 22:38:00 +08:00
Loyalsoldier
8352df9737 Update README.md 2020-04-02 23:35:50 +08:00
Loyalsoldier
0dbf14c984 Use IPIP.net CN IPv4 CIDR 2020-04-02 23:24:23 +08:00
Loyalsoldier
52fb8fa3e8 Use geoip project that replaced CN IPv4 CIDR 2020-04-02 23:22:17 +08:00
loyalsoldier
bac92afea8 Remove CDN list description due to workflow updates 2020-03-31 17:04:22 +08:00
loyalsoldier
d4b34df296 Remove some lists 2020-03-31 16:56:04 +08:00
Loyalsoldier
6b8f90b269 Update README.md
Change routing rules order
2020-03-25 15:19:39 +08:00
Loyalsoldier
acef248760 Update README.md
Change v2ray.com to v2fly.org
2020-03-25 12:54:20 +08:00
Loyalsoldier
d33d3d7a5d Update README.md 2020-03-24 19:50:31 +08:00
Loyalsoldier
df6143f52b Update README.md 2020-03-24 19:42:02 +08:00
Loyalsoldier
5fc52f5c4e Update final strategy 2020-03-15 12:49:39 +08:00
loyalsoldier
8c6c4816c5 Remove all domains end with .cn TLD from proxy-list 2020-03-14 12:12:07 +08:00
loyalsoldier
6f78b8d9ab Remove domains from "need-to-remove" lists in hidden branch 2020-03-10 10:57:50 +08:00
loyalsoldier
067df98946 Add domains in reject.txt to temp-reject.txt file 2020-03-10 10:47:42 +08:00
loyalsoldier
b7d7ae8377 Fix Microsoft URL 404 issue 2020-03-08 11:37:10 +08:00
Loyalsoldier
00d8b29f72 Update download description 2020-03-06 06:28:33 +08:00
Loyalsoldier
941611bcbe Fix file not exists issue 2020-03-05 13:26:45 +08:00
loyalsoldier
bd0e1a3d7b Remove redundant domains 2020-03-02 01:34:39 +08:00
loyalsoldier
1e4c41d5ae Use release branch download link 2020-03-01 17:02:10 +08:00
loyalsoldier
df177c659d Git force push 2020-03-01 16:49:00 +08:00
loyalsoldier
6fbef4bb56 Change download links to jsdelivr CDN 2020-03-01 16:30:41 +08:00
2 changed files with 108 additions and 56 deletions

View File

@@ -1,17 +1,20 @@
name: Build V2Ray rules dat files
on:
schedule:
- cron: "0 22 * * *"
- cron: "30 3 * * *"
push:
branches:
- master
- hidden
label:
types: [created, deleted]
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Setup Go 1.14
uses: actions/setup-go@v1
uses: actions/setup-go@v2
with:
go-version: 1.14
@@ -19,23 +22,25 @@ jobs:
run: |
echo "::set-env name=RELEASE_NAME::Released on $(date +%Y%m%d%H%M)"
echo "::set-env name=TAG_NAME::$(date +%Y%m%d%H%M)"
echo "::set-env name=GEOIP_REPO::github.com/v2ray/geoip"
echo "::set-env name=GEOIP_REPO::github.com/Loyalsoldier/geoip"
echo "::set-env name=GEOSITE_REPO::github.com/v2ray/domain-list-community"
echo "::set-env name=CHINA_DOMAINS_URL::https://raw.githubusercontent.com/felixonmars/dnsmasq-china-list/master/accelerated-domains.china.conf"
echo "::set-env name=GOOGLE_DOMAINS_URL::https://raw.githubusercontent.com/felixonmars/dnsmasq-china-list/master/google.china.conf"
echo "::set-env name=APPLE_DOMAINS_URL::https://raw.githubusercontent.com/felixonmars/dnsmasq-china-list/master/apple.china.conf"
echo "::set-env name=CDN_DOMAINS_URL::https://raw.githubusercontent.com/felixonmars/dnsmasq-china-list/master/removed-cdn.txt"
echo "::set-env name=GFWLIST_DOMAINS_URL::https://cokebar.github.io/gfwlist2dnsmasq/gfwlist_domain.txt"
echo "::set-env name=GFWLIST_EXTRAS_DOMAINS_URL::https://raw.githubusercontent.com/pexcn/gfwlist-extras/master/gfwlist-extras.txt"
echo "::set-env name=GREATFIRE_DOMAINS_URL::https://raw.githubusercontent.com/wongsyrone/domain-block-list/master/domains.txt"
echo "::set-env name=GREATFIRE_DOMAINS_MINE_URL::https://raw.githubusercontent.com/Loyalsoldier/cn-blocked-domain/release/domains.txt"
echo "::set-env name=PROFILES_URL::https://raw.githubusercontent.com/ConnersHua/Profiles/master/Shadow/Pro.conf"
echo "::set-env name=GEQ1AN_RULES_APPLE_URL::https://raw.githubusercontent.com/GeQ1an/Rules/master/QuantumultX/Filter/Apple.list"
echo "::set-env name=GEQ1AN_RULES_MICROSOFT_URL::https://raw.githubusercontent.com/GeQ1an/Rules/master/QuantumultX/Filter/Microsoft.list"
echo "::set-env name=GEQ1AN_RULES_MICROSOFT_URL::https://raw.githubusercontent.com/GeQ1an/Rules/master/QuantumultX/Filter/Optional/Microsoft.list"
echo "::set-env name=GEQ1AN_RULES_GLOBAL_MEDIA_URL::https://raw.githubusercontent.com/GeQ1an/Rules/master/QuantumultX/Filter/GMedia.list"
echo "::set-env name=GEQ1AN_RULES_OUTSIDE_URL::https://raw.githubusercontent.com/GeQ1an/Rules/master/QuantumultX/Filter/Outside.list"
echo "::set-env name=GEQ1AN_RULES_REJECT_URL::https://raw.githubusercontent.com/GeQ1an/Rules/master/QuantumultX/Filter/AdBlock.list"
echo "::set-env name=LHIE1_RULES_GLOBALTV_URL::https://raw.githubusercontent.com/lhie1/Rules/master/Surge/Surge%203/Provider/GlobalTV.list"
echo "::set-env name=LHIE1_RULES_PROXY_URL::https://raw.githubusercontent.com/lhie1/Rules/master/Surge/Surge%203/Provider/Proxy.list"
echo "::set-env name=LHIE1_RULES_REJECT_URL::https://raw.githubusercontent.com/lhie1/Rules/master/Surge/Surge%203/Provider/Reject.list"
echo "::set-env name=ADAWAY_REJECT_URL::https://raw.githubusercontent.com/AdAway/adaway.github.io/master/hosts.txt"
echo "::set-env name=ICN_RULES_REJECT_URL::https://raw.githubusercontent.com/IceCodeNew/4Share/master/DNSCrypt/domain-based-blacklist.txt"
echo "::set-env name=GOPATH::$(dirname $GITHUB_WORKSPACE)"
echo "::add-path::$(dirname $GITHUB_WORKSPACE)/bin"
shell: bash
@@ -55,9 +60,7 @@ jobs:
- name: Generate geoip.dat file
run: |
go get -u -v -insecure $GEOIP_REPO
geoip --country=./geoip/GeoLite2-Country-Locations-en.csv --ipv4=./geoip/GeoLite2-Country-Blocks-IPv4.csv --ipv6=./geoip/GeoLite2-Country-Blocks-IPv6.csv
mkdir -p ./publish
mv ./geoip.dat ./publish/
geoip --country=./geoip/GeoLite2-Country-Locations-en.csv --ipv4=./geoip/GeoLite2-Country-Blocks-IPv4.csv --ipv6=./geoip/GeoLite2-Country-Blocks-IPv6.csv --cnipv4url=https://raw.githubusercontent.com/IceCodeNew/4Share/master/geoip_china/china_ip_list.txt
- name: Download geosite project
run: |
@@ -70,16 +73,16 @@ jobs:
- name: Get and add proxy domains into temp-proxy.txt file
run: |
curl -sSL $GFWLIST_DOMAINS_URL | perl -ne '/^((?=^.{3,255})[a-zA-Z0-9][-_a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-_a-zA-Z0-9]{0,62})+)/ && print "$1\n"' > temp-proxy.txt
curl -sSL $GFWLIST_EXTRAS_DOMAINS_URL | perl -ne 'print if not /^(#|\s)/' >> temp-proxy.txt
curl -sSL $GREATFIRE_DOMAINS_URL | perl -ne '/^((?=^.{3,255})[a-zA-Z0-9][-_a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-_a-zA-Z0-9]{0,62})+)/ && print "$1\n"' >> temp-proxy.txt
curl -sSL $GREATFIRE_DOMAINS_MINE_URL | perl -ne '/^((?=^.{3,255})[a-zA-Z0-9][-_a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-_a-zA-Z0-9]{0,62})+)/ && print "$1\n"' >> temp-proxy.txt
curl -sSL $GOOGLE_DOMAINS_URL | perl -ne '/^server=\/([^\/]+)\// && print "$1\n"' >> temp-proxy.txt
curl -sSL $APPLE_DOMAINS_URL | perl -ne '/^server=\/([^\/]+)\// && print "$1\n"' >> temp-proxy.txt
curl -sSL $CDN_DOMAINS_URL| perl -ne '/^((?=^.{3,255})[a-zA-Z0-9][-_a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-_a-zA-Z0-9]{0,62})+)/ && print "$1\n"' >> temp-proxy.txt
curl -sSL $PROFILES_URL | awk -F ',' '/^DOMAIN(,|\-SUFFIX,).+PROXY/ {print $2}' >> temp-proxy.txt
curl -sSL $GEQ1AN_RULES_APPLE_URL | awk -F ',' '/^(HOST|DOMAIN)(,|\-SUFFIX,).+Apple/ {print $2}' >> temp-proxy.txt
curl -sSL $GEQ1AN_RULES_MICROSOFT_URL | awk -F ',' '/^(HOST|DOMAIN)(,|\-SUFFIX,).+Microsoft/ {print $2}' >> temp-proxy.txt
curl -sSL $GEQ1AN_RULES_GLOBAL_MEDIA_URL | awk -F ',' '/^(HOST|DOMAIN)(,|\-SUFFIX,).+GMedia/ {print $2}' >> temp-proxy.txt
curl -sSL $GEQ1AN_RULES_OUTSIDE_URL | awk -F ',' '/^(HOST|DOMAIN)(,|\-SUFFIX,).+Outside/ {print $2}' >> temp-proxy.txt
curl -sSL $LHIE1_RULES_GLOBALTV_URL | awk -F ',' '/^(HOST|DOMAIN)(,|\-SUFFIX,).+/ {print $2}' >> temp-proxy.txt
curl -sSL $LHIE1_RULES_PROXY_URL | awk -F ',' '/^(HOST|DOMAIN)(,|\-SUFFIX,).+/ {print $2}' >> temp-proxy.txt
- name: Get and add reject domains into temp-reject.txt file
@@ -87,40 +90,68 @@ jobs:
curl -sSL $PROFILES_URL | awk -F ',' '/^DOMAIN(,|\-SUFFIX,).+REJECT/ {print $2}' > temp-reject.txt
curl -sSL $GEQ1AN_RULES_REJECT_URL | awk -F ',' '/^(HOST|DOMAIN)(,|\-SUFFIX,).+AdBlock/ {print $2}' >> temp-reject.txt
curl -sSL $LHIE1_RULES_REJECT_URL | awk -F ',' '/^DOMAIN(,|\-SUFFIX,).+/ {print $2}' >> temp-reject.txt
curl -sSL $ADAWAY_REJECT_URL | grep "127.0.0.1" | sed '1d' | awk '{print $2}' >> temp-reject.txt
curl -sSL $ICN_RULES_REJECT_URL | sed -E '/^#|^$/d' >> temp-reject.txt
- name: Add proxy and direct domains from "hidden" branch to appropriate temp files
- name: Add proxy, direct and reject domains from "hidden" branch to appropriate temp files
run: |
cat proxy.txt >> temp-proxy.txt
cat direct.txt >> temp-direct.txt
cat reject.txt >> temp-reject.txt
- name: Sort and generate lists
- name: Sort and generate redundant lists
run: |
cat temp-proxy.txt | sort --ignore-case -u | perl -ne '/^((?=^.{3,255})[a-zA-Z0-9][-_a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-_a-zA-Z0-9]{0,62})+)/ && print "$1\n"' > $GOPATH/src/$GEOSITE_REPO/data/proxy-list
cat temp-proxy.txt | sort --ignore-case -u | perl -ne 'print if not /^((?=^.{3,255})[a-zA-Z0-9][-_a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-_a-zA-Z0-9]{0,62})+)/' > proxy-excluse-list
cat temp-direct.txt | sort --ignore-case -u | perl -ne '/^((?=^.{3,255})[a-zA-Z0-9][-_a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-_a-zA-Z0-9]{0,62})+)/ && print "$1\n"' > $GOPATH/src/$GEOSITE_REPO/data/direct-list
cat temp-direct.txt | sort --ignore-case -u | perl -ne 'print if not /^((?=^.{3,255})[a-zA-Z0-9][-_a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-_a-zA-Z0-9]{0,62})+)/' > direct-excluse-list
cat temp-reject.txt | sort --ignore-case -u | perl -ne '/^((?=^.{3,255})[a-zA-Z0-9][-_a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-_a-zA-Z0-9]{0,62})+)/ && print "$1\n"' > $GOPATH/src/$GEOSITE_REPO/data/reject-list
cat temp-reject.txt | sort --ignore-case -u | perl -ne 'print if not /^((?=^.{3,255})[a-zA-Z0-9][-_a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-_a-zA-Z0-9]{0,62})+)/' > reject-excluse-list
cat temp-proxy.txt | sort --ignore-case -u | perl -ne '/^((?=^.{3,255})[a-zA-Z0-9][-_a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-_a-zA-Z0-9]{0,62})+)/ && print "$1\n"' > proxy-list-with-redundant
cat temp-proxy.txt | sort --ignore-case -u | perl -ne 'print if not /^((?=^.{3,255})[a-zA-Z0-9][-_a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-_a-zA-Z0-9]{0,62})+)/' > proxy-excluse-list.txt
cat temp-direct.txt | sort --ignore-case -u | perl -ne '/^((?=^.{3,255})[a-zA-Z0-9][-_a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-_a-zA-Z0-9]{0,62})+)/ && print "$1\n"' > direct-list-with-redundant
cat temp-direct.txt | sort --ignore-case -u | perl -ne 'print if not /^((?=^.{3,255})[a-zA-Z0-9][-_a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-_a-zA-Z0-9]{0,62})+)/' > direct-excluse-list.txt
cat temp-reject.txt | sort --ignore-case -u | perl -ne '/^((?=^.{3,255})[a-zA-Z0-9][-_a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-_a-zA-Z0-9]{0,62})+)/ && print "$1\n"' > reject-list-with-redundant
cat temp-reject.txt | sort --ignore-case -u | perl -ne 'print if not /^((?=^.{3,255})[a-zA-Z0-9][-_a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-_a-zA-Z0-9]{0,62})+)/' > reject-excluse-list.txt
- name: Remove redundant domains
run: |
chmod +x findRedundantDomain.py
./findRedundantDomain.py ./direct-list-with-redundant ./direct-list-deleted-unsort
./findRedundantDomain.py ./proxy-list-with-redundant ./proxy-list-deleted-unsort
./findRedundantDomain.py ./reject-list-with-redundant ./reject-list-deleted-unsort
[ ! -f "direct-list-deleted-unsort" ] && touch direct-list-deleted-unsort
[ ! -f "proxy-list-deleted-unsort" ] && touch proxy-list-deleted-unsort
[ ! -f "reject-list-deleted-unsort" ] && touch reject-list-deleted-unsort
sort ./direct-list-deleted-unsort > ./direct-list-deleted-sort
sort ./proxy-list-deleted-unsort > ./proxy-list-deleted-sort
sort ./reject-list-deleted-unsort > ./reject-list-deleted-sort
diff ./direct-list-deleted-sort ./direct-list-with-redundant | awk '/^>/{print $2}' > ./direct-list-without-redundant
diff ./proxy-list-deleted-sort ./proxy-list-with-redundant | awk '/^>/{print $2}' > ./proxy-list-without-redundant
diff ./reject-list-deleted-sort ./reject-list-with-redundant | awk '/^>/{print $2}' > ./reject-list-without-redundant
- name: Remove domains from "need-to-remove" lists in "hidden" branch and remove domains end with ".cn" in proxy-list
run: |
diff ./direct-need-to-remove.txt ./direct-list-without-redundant | awk '/^>/{print $2}' > $GOPATH/src/$GEOSITE_REPO/data/direct-list.txt
diff ./proxy-need-to-remove.txt ./proxy-list-without-redundant | awk '/^>/{print $2}' | perl -ne 'print if not /\.cn$/' > $GOPATH/src/$GEOSITE_REPO/data/proxy-list.txt
diff ./reject-need-to-remove.txt ./reject-list-without-redundant | awk '/^>/{print $2}' > $GOPATH/src/$GEOSITE_REPO/data/reject-list.txt
- name: Add list into appropriate category file
run: |
cd $GOPATH/src/$GEOSITE_REPO/data
echo "include:proxy-list" >> geolocation-\!cn
echo "include:direct-list" >> cn
echo "include:reject-list" >> category-ads-all
echo "include:proxy-list.txt" >> geolocation-\!cn
echo "include:direct-list.txt" >> cn
echo "include:reject-list.txt" >> category-ads-all
- name: Build geosite.dat file
run: |
domain-list-community
mv ./dlc.dat ./publish/geosite.dat
mv ./*-excluse-list ./publish/
cp -f $GOPATH/src/$GEOSITE_REPO/data/{proxy,direct,reject}-list ./publish/
domain-list-community --datapath=${{ env.GOPATH }}/src/${{ env.GEOSITE_REPO }}/data
- name: Generate dat files sha256 hash
- name: Move and zip files and generate sha256 hash
run: |
install -Dp geoip.dat ./publish/geoip.dat
install -Dp dlc.dat ./publish/geosite.dat
install -p {proxy,direct,reject}-excluse-list.txt ./publish/
install -p $GOPATH/src/$GEOSITE_REPO/data/{proxy,direct,reject}-list.txt ./publish/
cd ./publish
zip rules.zip {proxy,direct,reject}-list.txt geoip.dat geosite.dat
sha256sum geoip.dat > geoip.dat.sha256sum
sha256sum geosite.dat > geosite.dat.sha256sum
sha256sum rules.zip > rules.zip.sha256sum
- name: Release and upload assets
uses: softprops/action-gh-release@v1
@@ -144,4 +175,4 @@ jobs:
git add .
git commit -m "${{ env.RELEASE_NAME }}"
git remote add origin "https://${{ github.actor }}:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}"
git push -u origin release
git push -f -u origin release

View File

@@ -1,42 +1,53 @@
# 简介
# 简介 ![GitHub All Releases](https://img.shields.io/github/downloads/IceCodeNew/v2ray-rules-dat/total)
**V2Ray** 规则文件加强版,可代替 V2Ray 官方 `geoip.dat``geosite.dat` 规则文件。利用 GitHub Actions 北京时间每天早上 6 点自动构建,保证规则最新。
## 说明
本项目支持命令行版本 V2Ray 客户端。第三方桌面图形界面版GUIV2Ray 客户端一般有自身图形化配置界面,但一般也都支持使用 V2Ray 自定义 JSON 配置和 dat 规则文件,请自行研究并修改配置。第三方移动 V2Ray 客户端情况比较复杂,大概率不支持自定义 V2Ray JSON 配置和使用 dat 规则文件,请知悉。
本项目适用于命令行版本 V2Ray 客户端。第三方桌面图形界面版GUIV2Ray 客户端一般都有路由规则图形化配置界面,但一般也都支持使用自定义 V2Ray JSON 配置和 dat 规则文件,请自行研究并修改配置。第三方移动设备版 V2Ray 客户端情况比较复杂,大概率不支持使用自定义 V2Ray JSON 配置和 dat 规则文件,请知悉。
## 规则文件生成方式
### geoip.dat
- 通过仓库 [@v2ray/geoip](https://github.com/v2ray/geoip) 生成
- 其中 IP 地址来源于 [MaxMind 免费 IP](https://dev.maxmind.com/geoip/geoip2/geolite2/)
- 通过仓库 [@Loyalsoldier/geoip](https://github.com/Loyalsoldier/geoip) 生成
- 其中全球 IP 地址IPv4 和 IPv6来源于 [MaxMind GeoLite2](https://dev.maxmind.com/geoip/geoip2/geolite2/)`CN`(中国大陆)类别下的 IPv4 地址来源于 [@17mon/china_ip_list](https://github.com/17mon/china_ip_list/blob/master/china_ip_list.txt)
### geosite.dat
- 通过仓库 [@v2ray/domain-list-community](https://github.com/v2ray/domain-list-community) 生成
- **加入大量中国大陆域名、Apple 域名Google 域名和部分海外 CDN 域名**
- **加入大量中国大陆域名、Apple 域名Google 域名**
- [@felixonmars/dnsmasq-china-list/accelerated-domains.china.conf](https://github.com/felixonmars/dnsmasq-china-list/blob/master/accelerated-domains.china.conf) 加入到 `geosite:cn` 类别中
- [@felixonmars/dnsmasq-china-list/apple.china.conf](https://github.com/felixonmars/dnsmasq-china-list/blob/master/apple.china.conf) 加入到 `geosite:geolocation-!cn` 类别中
- [@felixonmars/dnsmasq-china-list/google.china.conf](https://github.com/felixonmars/dnsmasq-china-list/blob/master/google.china.conf) 加入到 `geosite:geolocation-!cn` 类别中
- [@felixonmars/dnsmasq-china-list/removed-cdn.txt](https://github.com/felixonmars/dnsmasq-china-list/blob/master/removed-cdn.txt) 加入到 `geosite:geolocation-!cn` 类别中
- **加入最新 GFWList 域名**:通过仓库 [@cokebar/gfwlist2dnsmasq](https://github.com/cokebar/gfwlist2dnsmasq) 生成并加入到 `geosite:geolocation-!cn` 类别中
- **加入 Greatfire Analyzer 检测到的屏蔽域名**:通过仓库 [@wongsyrone/domain-block-list](https://github.com/wongsyrone/domain-block-list) 获取 [Greatfire Analyzer](https://zh.greatfire.org/analyzer) 检测到的屏蔽域名,并加入到 `geosite:geolocation-!cn` 类别中
- **加入附加 GFWList 域名**:通过仓库 [@pexcn/gfwlist-extras](https://github.com/pexcn/gfwlist-extras) 获取并加入到 `geosite:geolocation-!cn` 类别中
- **加入 Greatfire Analyzer 检测到的屏蔽域名**:通过仓库 [@wongsyrone/domain-block-list](https://github.com/wongsyrone/domain-block-list) 和 [@Loyalsoldier/cn-blocked-domain](https://github.com/Loyalsoldier/cn-blocked-domain) 获取 [Greatfire Analyzer](https://zh.greatfire.org/analyzer) 检测到的屏蔽域名,并加入到 `geosite:geolocation-!cn` 类别中
- **加入 AdAway 广告域名**:通过仓库 [@AdAway/adaway.github.io/hosts.txt](https://github.com/AdAway/adaway.github.io/blob/master/hosts.txt) 获取并加入到 `geosite:category-ads-all` 类别中
- **加入更多代理域名和广告域名**:通过仓库 [@ConnersHua/Profiles](https://github.com/ConnersHua/Profiles/tree/master)、[@GeQ1an/Rules](https://github.com/GeQ1an/Rules/tree/master/QuantumultX) 和 [@lhie1/Rules](https://github.com/lhie1/Rules/tree/master) 获取更多代理域名、广告域名,并分别加入到 `geosite:geolocation-!cn``geosite:category-ads-all` 类别中
- **加自定义直连代理域名**:由于上游域名列表更新缓慢或缺失某些被屏蔽的域名,所以引入自定义域名列表,主要为了解决在 DNS 解析 `A``AAAA` 记录时的 DNS 泄漏问题。[`hidden` 分支](https://github.com/Loyalsoldier/v2ray-rules-dat/tree/hidden)里有两个文件 `direct.txt``proxy.txt`,分别放自定义的直连、代理域名,最终分别加入到 `geosite:cn``geosite:geolocation-!cn` 类别中
- **可添加自定义直连代理和广告域名**:由于上游域名列表更新缓慢或缺失某些域名,所以引入**需要添加的域名**列表。[`hidden 分支`](https://github.com/IceCodeNew/v2ray-rules-dat/tree/hidden)里的三个文件 `direct.txt``proxy.txt``reject.txt`,分别放自定义的需要添加的直连、代理、广告域名,最终分别加入到 `geosite:cn``geosite:geolocation-!cn``geosite:category-ads-all` 类别中
- **可移除自定义直连、代理和广告域名**:由于上游域名列表存在需要被移除的域名,所以引入**需要移除的域名**列表。[`hidden 分支`](https://github.com/IceCodeNew/v2ray-rules-dat/tree/hidden)里的三个文件 `direct-need-to-remove.txt``proxy-need-to-remove.txt``reject-need-to-remove.txt`,分别存放自定义的需要从 `direct-list`(直连域名列表)、`proxy-list`(代理域名列表)和 `reject-list`(广告域名列表) 移除的域名
## 规则文件下载及使用方式
**下载地址**
- **geoip.dat**[https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geoip.dat](https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geoip.dat)
- **geosite.dat**[https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat](https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat)
- **geoip.dat**[https://github.com/IceCodeNew/v2ray-rules-dat/raw/release/geoip.dat](https://github.com/IceCodeNew/v2ray-rules-dat/raw/release/geoip.dat)
- **geosite.dat**[https://github.com/IceCodeNew/v2ray-rules-dat/raw/release/geosite.dat](https://github.com/IceCodeNew/v2ray-rules-dat/raw/release/geosite.dat)
**使用方式**
1. 通过上面下载地址或[点击进入规则文件发布页面](https://github.com/Loyalsoldier/v2ray-rules-dat/releases),下载 `geoip.dat``geosite.dat`
2. 把下载下来的 `geoip.dat``geosite.dat` 文件放入到 V2Ray 软件的规则文件目录,替换掉原来的 `geoip.dat``geosite.dat`
Windows 用户可通过 [Scoop](https://scoop.sh) 来安装:
```shell
scoop bucket add v2ray https://github.com/kidonng/scoop-v2ray
scoop install v2ray-rules-dat
```
非 Windows 用户:
1. 点击上面下载地址,下载 `geoip.dat``geosite.dat`
2. 把下载下来的 `geoip.dat``geosite.dat` 文件放入到 V2Ray 的规则文件目录,替换掉原来的 `geoip.dat``geosite.dat`
3. 修改 V2Ray 配置文件,配置参考下面 👇👇👇
## 参考配置
@@ -125,11 +136,11 @@
下面为自用 V2Ray 客户端完整配置,注意事项:
- 由于下面客户端配置使用了 DoH DNS 功能,所以必须使用 v4.22.0 或更新版本的 [V2Ray](https://github.com/v2ray/v2ray-core/releases)
- 由于下面客户端配置使用了 DoH DNS 功能,所以必须使用 v4.22.0 或更新版本的 [V2Ray](https://github.com/v2fly/v2ray-core/releases)
- 下面客户端配置使 V2Ray 在本机开启 SOCKS 代理(监听 1080 端口)和 HTTP 代理(监听 2080 端口)
- BT 流量统统直连(实测依然会有部分 BT 流量走代理,尚不清楚是不是 V2Ray 的 bug。如果服务商禁止 BT 下载的话,请不要为下载软件设置代理)
- 最后,不命中任何路由规则的请求和流量,统统走代理
- `outbounds` 里的第一个大括号内的配置,即为 V2Ray 代理服务的配置。请根据自身需求进行修改,并参照 V2Ray 官网配置说明中的 [配置文件 > 文件格式 > OutboundObject](https://v2ray.com/chapter_02/01_overview.html#outboundobject) 部分进行补全
- `outbounds` 里的第一个大括号内的配置,即为 V2Ray 代理服务的配置。请根据自身需求进行修改,并参照 V2Ray 官网配置说明中的 [配置文件 > 文件格式 > OutboundObject](https://www.v2fly.org/chapter_02/01_overview.html#outboundobject) 部分进行补全
```json
{
@@ -137,12 +148,14 @@
"loglevel": "warning"
},
"dns": {
"hosts": {
"dns.google": "8.8.8.8"
},
"servers": [
{
"address": "https://1.1.1.1/dns-query",
"domains": [
"geosite:geolocation-!cn",
"geosite:speedtest"
"geosite:geolocation-!cn"
]
},
"https://1.1.1.1/dns-query",
@@ -152,6 +165,9 @@
"port": 53,
"domains": [
"geosite:cn"
],
"expectIPs": [
"geoip:cn"
]
}
]
@@ -217,6 +233,11 @@
"routing": {
"domainStrategy": "IPIfNonMatch",
"rules": [
{
"type": "field",
"outboundTag": "Direct",
"protocol": ["bittorrent"]
},
{
"type": "field",
"outboundTag": "Dns-Out",
@@ -227,11 +248,6 @@
"network": "udp",
"port": 53
},
{
"type": "field",
"outboundTag": "Direct",
"protocol": ["bittorrent"]
},
{
"type": "field",
"outboundTag": "Reject",
@@ -243,8 +259,7 @@
"type": "field",
"outboundTag": "Proxy",
"domain": [
"geosite:geolocation-!cn",
"geosite:speedtest"
"geosite:geolocation-!cn"
]
},
{
@@ -285,10 +300,7 @@
{
"type": "field",
"outboundTag": "Proxy",
"ip": [
"0.0.0.0/0",
"::/0"
]
"network": "tcp,udp"
}
]
}
@@ -297,13 +309,22 @@
## 致谢
- [@kidonng/scoop-v2ray](https://github.com/kidonng/scoop-v2ray)
- [@v2ray/geoip](https://github.com/v2ray/geoip)
- [@v2ray/domain-list-community](https://github.com/v2ray/domain-list-community)
- [@17mon/china_ip_list](https://github.com/17mon/china_ip_list/blob/master/china_ip_list.txt)
- [@felixonmars/dnsmasq-china-list](https://github.com/felixonmars/dnsmasq-china-list)
- [@gfwlist/gfwlist](https://github.com/gfwlist/gfwlist)
- [@pexcn/gfwlist-extras](https://github.com/pexcn/gfwlist-extras)
- [@cokebar/gfwlist2dnsmasq](https://github.com/cokebar/gfwlist2dnsmasq)
- [@Loyalsoldier/cn-blocked-domain](https://github.com/Loyalsoldier/cn-blocked-domain)
- [@wongsyrone/domain-block-list](https://github.com/wongsyrone/domain-block-list)
- [@ConnersHua/Profiles](https://github.com/ConnersHua/Profiles/tree/master)
- [@GeQ1an/Rules](https://github.com/GeQ1an/Rules/tree/master/QuantumultX)
- [@lhie1/Rules](https://github.com/lhie1/Rules/tree/master)
- [MaxMind 免费 IP](https://dev.maxmind.com/geoip/geoip2/geolite2/)
- [@AdAway/adaway.github.io/hosts.txt](https://github.com/AdAway/adaway.github.io/blob/master/hosts.txt)
- [MaxMind GeoLite2 Free IP Database](https://dev.maxmind.com/geoip/geoip2/geolite2/)
## 项目 Star 数增长趋势
[![Stargazers over time](https://starchart.cc/IceCodeNew/v2ray-rules-dat.svg)](https://starchart.cc/IceCodeNew/v2ray-rules-dat)