Compare commits
15 Commits
v20241003.
...
v20241004.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b9032ea016 | ||
|
|
f7e2dd9dce | ||
|
|
41d62c40c6 | ||
|
|
bcabb05039 | ||
|
|
4ac16b533e | ||
|
|
bf629eb3f3 | ||
|
|
e6c2fd567a | ||
|
|
416f1dcf3b | ||
|
|
ec45c85714 | ||
|
|
fb5d8aa6d4 | ||
|
|
778963d00d | ||
|
|
f78408a67f | ||
|
|
48aa309ec3 | ||
|
|
555acef5c1 | ||
|
|
c6fdf656fd |
39
.github/workflows/auto-generate-pac.yml
vendored
Normal file
39
.github/workflows/auto-generate-pac.yml
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
name: Auto Generate PAC File
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '10 0 * * 4'
|
||||
push:
|
||||
paths-ignore:
|
||||
- 'README.md'
|
||||
- 'LICENSE'
|
||||
- 'gfw.pac'
|
||||
- '.gitignore'
|
||||
- '.github/**'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
update-gfw-pac:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Download the latest cn.txt
|
||||
run: curl -L https://raw.githubusercontent.com/Loyalsoldier/geoip/release/text/cn.txt -o cidrs-cn.txt
|
||||
|
||||
- name: Run gfw-pac.py script
|
||||
run: ./gfw-pac.py -f gfw.pac -p "PROXY 127.0.0.1:3128" --proxy-domains=proxy-domains.txt --direct-domains=direct-domains.txt --localtld-domains=local-tlds.txt --ip-file=cidrs-cn.txt
|
||||
|
||||
- name: Commit and push changes
|
||||
run: |
|
||||
git config --local user.email "action@github.com"
|
||||
git config --local user.name "GitHub Action"
|
||||
git add -A
|
||||
git commit -a -m "自动生成 gfw.pac"
|
||||
git push
|
||||
|
||||
- name: Trigger Auto-Release
|
||||
uses: benc-uk/workflow-dispatch@v1
|
||||
with:
|
||||
workflow: Auto Generate Release
|
||||
19
.github/workflows/auto-release.yml
vendored
19
.github/workflows/auto-release.yml
vendored
@@ -13,8 +13,6 @@ jobs:
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.PERSONAL_TOKEN }}
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
@@ -23,20 +21,17 @@ jobs:
|
||||
git config --global user.name "GitHub Actions"
|
||||
git config --global user.email "actions@github.com"
|
||||
|
||||
- name: Get commit count for today
|
||||
- name: Generate Release Name
|
||||
id: commit_count
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.PERSONAL_TOKEN }}
|
||||
run: |
|
||||
today=$(date +%Y%m%d)
|
||||
today=$(TZ=Asia/Shanghai date +%Y%m%d)
|
||||
commit_count=$(TZ=Asia/Shanghai git log --date=local --since="$today 00:00:00" --until="$today 23:59:59" --pretty=format: --name-only | grep -c '^gfw.pac$')
|
||||
echo "COMMIT_COUNT=$commit_count" >> $GITHUB_ENV
|
||||
echo "RELEASE_NAME=v$(TZ='Asia/Shanghai' date +%Y%m%d).$commit_count" >> $GITHUB_ENV
|
||||
echo "COMMIT_MESSAGE=$(git log -1 --pretty=%B)" >> $GITHUB_ENV
|
||||
|
||||
- name: Create Tag
|
||||
id: create_tag
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.PERSONAL_TOKEN }}
|
||||
run: |
|
||||
git tag "${{ env.RELEASE_NAME }}"
|
||||
git push origin ${{ env.RELEASE_NAME }}
|
||||
@@ -44,16 +39,10 @@ jobs:
|
||||
- name: Create Release
|
||||
id: create_release
|
||||
uses: softprops/action-gh-release@v2
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.PERSONAL_TOKEN }}
|
||||
with:
|
||||
tag_name: "${{ env.RELEASE_NAME }}"
|
||||
name: "${{ env.RELEASE_NAME }}"
|
||||
body: "Automatically generated release for pac file update"
|
||||
body: "${{ env.COMMIT_MESSAGE }}"
|
||||
draft: false
|
||||
prerelease: false
|
||||
files: gfw.pac
|
||||
|
||||
- name: Verify Release
|
||||
run: |
|
||||
echo "Release created with name ${{ env.RELEASE_NAME }}"
|
||||
38
.github/workflows/auto-update-gfw-pac.yml
vendored
38
.github/workflows/auto-update-gfw-pac.yml
vendored
@@ -1,38 +0,0 @@
|
||||
name: GFW PAC Update
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 0 */7 * *'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
update-gfw-pac:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.PERSONAL_TOKEN }}
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Download cn.txt
|
||||
run: curl https://raw.githubusercontent.com/Loyalsoldier/geoip/refs/heads/release/text/cn.txt -o cidrs-cn.txt
|
||||
|
||||
- name: Run gfw-pac.py script
|
||||
run: ./gfw-pac.py -f gfw.pac -p "PROXY 127.0.0.1:3128" --proxy-domains=proxy-domains.txt --direct-domains=direct-domains.txt --localtld-domains=local-tlds.txt --ip-file=cidrs-cn.txt
|
||||
|
||||
- name: Commit changes
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.PERSONAL_TOKEN }}
|
||||
run: |
|
||||
git config --local user.email "action@github.com"
|
||||
git config --local user.name "GitHub Action"
|
||||
git add .
|
||||
git commit -a -m "自动更新 gfw.pac"
|
||||
|
||||
- name: Push changes
|
||||
uses: ad-m/github-push-action@master
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.PERSONAL_TOKEN }}
|
||||
with:
|
||||
github_token: ${{ secrets.PERSONAL_TOKEN }}
|
||||
branch: master
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
科学上网 PAC 文件以及生成器。通过自定义域名和 CNIP 地址生成 PAC(Proxy auto-config) 文件。对存在于自定义域名和解析出的IP不是CNIP的域名使用代理,支持IPv6。
|
||||
|
||||
**此仓库每 7 天自动通过 GitHub Action 从 `Loyalsoldier/geoip` 获取国内地址段并更新 `gfw.pac` 文件**
|
||||
**此仓库每周四自动通过 GitHub Action 从 `Loyalsoldier/geoip` 同步数据并更新 `gfw.pac` 文件**
|
||||
|
||||
## 特性
|
||||
* 开箱即用,直接可用的 `gfw.pac` 包含了常用的直连域名和代理域名以及国内IPv4/IPv6地址段
|
||||
|
||||
@@ -80,68 +80,37 @@ meituan.com
|
||||
meituan.net
|
||||
sogou.com
|
||||
dianping.com
|
||||
o.pki.goog
|
||||
www.googletagmanager.com
|
||||
www.google-analytics.com
|
||||
pagead2.googlesyndication.com
|
||||
adservice.google.com
|
||||
fonts.googleapis.com
|
||||
fonts.gstatic.com
|
||||
www.gstatic.com
|
||||
ssl.gstatic.com
|
||||
quark.cn
|
||||
wps.cn
|
||||
wpscdn.cn
|
||||
push.apple.com
|
||||
time-ios.apple.com
|
||||
time.apple.com
|
||||
time-macos.apple.com
|
||||
setup.icloud.com
|
||||
www.apple.com.cn
|
||||
play.itunes.apple.com
|
||||
appldnld.apple.com
|
||||
configuration.apple.com
|
||||
mesu.apple.com
|
||||
oscdn.apple.com
|
||||
osrecovery.apple.com
|
||||
skl.apple.com
|
||||
swcdn.apple.com
|
||||
swdist.apple.com
|
||||
swdownload.apple.com
|
||||
swscan.apple.com
|
||||
updates-http.cdn-apple.com
|
||||
updates.cdn-apple.com
|
||||
xp.apple.com
|
||||
audiocontentdownload.apple.com
|
||||
devimages-cdn.apple.com
|
||||
devstreaming-cdn.apple.com
|
||||
icloud.cdn-apple.com
|
||||
iosdm-cn.cdn-apple.com
|
||||
js-cdn.music.apple.com
|
||||
oscdn.apple.com
|
||||
speed-test-cnc.cdn-apple.com
|
||||
download.developer.apple.com
|
||||
playgrounds-assets-cdn.apple.com
|
||||
sylvan.apple.com
|
||||
diagassets.apple.com
|
||||
doh.dns.apple.com
|
||||
certs.apple.com
|
||||
crl.apple.com
|
||||
ocsp.apple.com
|
||||
ocsp2.apple.com
|
||||
valid.apple.com
|
||||
appleid.cdn-apple.com
|
||||
apzones.com
|
||||
icloud.com.cn
|
||||
guzzoni.apple.com
|
||||
app-site-association.cdn-apple.com
|
||||
smp-device-content.apple.com
|
||||
idv.cdn-apple.com
|
||||
weatherkit.apple.com
|
||||
adcdownload.apple.com
|
||||
alpdownloadit.cdn-apple.com
|
||||
bricks.cdn-apple.com
|
||||
pancake.apple.com
|
||||
storage.live.com
|
||||
blob.core.windows.net
|
||||
self.events.data.microsoft.com
|
||||
mobile.events.data.microsoft.com
|
||||
browser.events.data.microsoft.com
|
||||
|
||||
@@ -1,12 +1,10 @@
|
||||
#!/usr/bin/python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import urllib.parse
|
||||
import json
|
||||
import urllib.request, urllib.error, urllib.parse
|
||||
from argparse import ArgumentParser
|
||||
import ipaddress
|
||||
import json
|
||||
|
||||
def parse_args():
|
||||
parser = ArgumentParser()
|
||||
@@ -22,7 +20,7 @@ def parse_args():
|
||||
help='直连的域名文件,每行一个')
|
||||
parser.add_argument('--localtld-domains', dest='localtld_rule',
|
||||
help='本地 TLD 规则文件, 不走代理, 每行一个,以 . 开头')
|
||||
parser.add_argument('--ip-file', dest='ip_file',
|
||||
parser.add_argument('--ip-file', dest='ip_file', required=True,
|
||||
help='中国IP地址段文件')
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
4
gfw.pac
4
gfw.pac
@@ -2,9 +2,9 @@ var proxy = "PROXY 127.0.0.1:3128";
|
||||
|
||||
var direct = 'DIRECT';
|
||||
|
||||
var directDomains = ["gov.cn","115.com","123pan.com","123957.com","baidu.com","baidupcs.com","baidustatic.com","bdimg.com","bdstatic.com","cdn.bcebos.com","cdnnode.cn","qq.com","weixinbridge.com","gtimg.com","gtimg.cn","qstatic.com","cdn-go.cn","qpic.cn","qlogo.cn","qqmail.com","tencent.com","bilibili.com","hdslb.com","bilivideo.cn","biliapi.net","iqiyi.com","iqiyipic.com","qy.net","71edge.com","youku.com","ykimg.com","tower.im","weibo.com","weibo.cn","weibocdn.com","sinaimg.cn","sinajs.cn","sina.cn","taobao.com","aliyun.com","aliyuncs.com","alicdn.com","alibabausercontent.com","alipay.com","alipayobjects.com","aliyundrive.com","dingtalk.com","mmstat.com","tmall.com","jd.com","360buyimg.com","300hu.com","126.com","163.com","189.cn","21cn.com","139.com","10086.cn","pinduoduo.com","pddpic.com","zijieapi.com","amemv.com","ecombdapi.com","baike.com","byteimg.com","douyin.com","douyinpic.com","douyinstatic.com","douyinvod.com","supercachenode.com","bytedance.com","bytescm.com","bytecdn.cn","cmbchina.com","mi.com","xiaomi.com","amap.com","autonavi.com","meituan.com","meituan.net","sogou.com","dianping.com","o.pki.goog","www.googletagmanager.com","www.google-analytics.com","pagead2.googlesyndication.com","adservice.google.com","fonts.googleapis.com","fonts.gstatic.com","www.gstatic.com","ssl.gstatic.com","quark.cn","push.apple.com","time-ios.apple.com","time.apple.com","time-macos.apple.com","setup.icloud.com","www.apple.com.cn","play.itunes.apple.com","appldnld.apple.com","configuration.apple.com","mesu.apple.com","oscdn.apple.com","osrecovery.apple.com","skl.apple.com","swcdn.apple.com","swdist.apple.com","swdownload.apple.com","swscan.apple.com","updates-http.cdn-apple.com","updates.cdn-apple.com","xp.apple.com","audiocontentdownload.apple.com","devimages-cdn.apple.com","devstreaming-cdn.apple.com","icloud.cdn-apple.com","iosdm-cn.cdn-apple.com","js-cdn.music.apple.com","oscdn.apple.com","speed-test-cnc.cdn-apple.com","download.developer.apple.com","playgrounds-assets-cdn.apple.com","sylvan.apple.com","diagassets.apple.com","doh.dns.apple.com","certs.apple.com","crl.apple.com","ocsp.apple.com","ocsp2.apple.com","valid.apple.com","appleid.cdn-apple.com","apzones.com","icloud.com.cn","guzzoni.apple.com","app-site-association.cdn-apple.com","smp-device-content.apple.com","idv.cdn-apple.com","weatherkit.apple.com","adcdownload.apple.com","alpdownloadit.cdn-apple.com","bricks.cdn-apple.com","pancake.apple.com","storage.live.com","blob.core.windows.net","self.events.data.microsoft.com","mobile.events.data.microsoft.com","browser.events.data.microsoft.com","ocsp.globalsign.com","ocsp2.globalsign.com","ocsp.digicert.cn","ocsp.dcocsp.cn"];
|
||||
var directDomains = ["gov.cn","115.com","123pan.com","123957.com","baidu.com","baidupcs.com","baidustatic.com","bdimg.com","bdstatic.com","cdn.bcebos.com","cdnnode.cn","qq.com","weixinbridge.com","gtimg.com","gtimg.cn","qstatic.com","cdn-go.cn","qpic.cn","qlogo.cn","qqmail.com","tencent.com","bilibili.com","hdslb.com","bilivideo.cn","biliapi.net","iqiyi.com","iqiyipic.com","qy.net","71edge.com","youku.com","ykimg.com","tower.im","weibo.com","weibo.cn","weibocdn.com","sinaimg.cn","sinajs.cn","sina.cn","taobao.com","aliyun.com","aliyuncs.com","alicdn.com","alibabausercontent.com","alipay.com","alipayobjects.com","aliyundrive.com","dingtalk.com","mmstat.com","tmall.com","jd.com","360buyimg.com","300hu.com","126.com","163.com","189.cn","21cn.com","139.com","10086.cn","pinduoduo.com","pddpic.com","zijieapi.com","amemv.com","ecombdapi.com","baike.com","byteimg.com","douyin.com","douyinpic.com","douyinstatic.com","douyinvod.com","supercachenode.com","bytedance.com","bytescm.com","bytecdn.cn","cmbchina.com","mi.com","xiaomi.com","amap.com","autonavi.com","meituan.com","meituan.net","sogou.com","dianping.com","quark.cn","wps.cn","wpscdn.cn","push.apple.com","setup.icloud.com","appldnld.apple.com","oscdn.apple.com","osrecovery.apple.com","swcdn.apple.com","swdist.apple.com","swdownload.apple.com","swscan.apple.com","updates-http.cdn-apple.com","updates.cdn-apple.com","audiocontentdownload.apple.com","devimages-cdn.apple.com","devstreaming-cdn.apple.com","oscdn.apple.com","certs.apple.com","ocsp.apple.com","ocsp2.apple.com","valid.apple.com","appleid.cdn-apple.com","icloud.com.cn","guzzoni.apple.com","app-site-association.cdn-apple.com","smp-device-content.apple.com","idv.cdn-apple.com","adcdownload.apple.com","alpdownloadit.cdn-apple.com","bricks.cdn-apple.com","self.events.data.microsoft.com","mobile.events.data.microsoft.com","browser.events.data.microsoft.com","ocsp.globalsign.com","ocsp2.globalsign.com","ocsp.digicert.cn","ocsp.dcocsp.cn"];
|
||||
|
||||
var domainsUsingProxy = ["google.com","google.com.hk","googleapis.com","gstatic.com","ggpht.com","googleusercontent.com","youtube.com","googlevideo.com","ytimg.com","github.com","github.io","githubusercontent.com","githubassets.com","bing.com","bing.cn","bing.net","live.com","stackoverflow.com","wikipedia.org","godaddy.com","cloudflare.com","twitter.com","twimg.com","docker.com","facebook.com","facebook.net","fbcdn.net","segment.io","unpkg.com","jsdelivr.com","tv.apple.com"];
|
||||
var domainsUsingProxy = ["google.com.hk","ent.com","youtube.com","googlevideo.com","ytimg.com","github.com","github.io","githubusercontent.com","githubassets.com","bing.com","bing.cn","bing.net","live.com","stackoverflow.com","wikipedia.org","godaddy.com","cloudflare.com","twitter.com","x.com","twimg.com","docker.com","facebook.com","facebook.net","fbcdn.net","segment.io","unpkg.com","jsdelivr.com","tv.apple.com"];
|
||||
|
||||
var localTlds = [".test",".localhost"];
|
||||
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
google.com
|
||||
google.com.hk
|
||||
googleapis.com
|
||||
gstatic.com
|
||||
ggpht.com
|
||||
googleusercontent.com
|
||||
ent.com
|
||||
youtube.com
|
||||
googlevideo.com
|
||||
ytimg.com
|
||||
@@ -20,6 +16,7 @@ wikipedia.org
|
||||
godaddy.com
|
||||
cloudflare.com
|
||||
twitter.com
|
||||
x.com
|
||||
twimg.com
|
||||
docker.com
|
||||
facebook.com
|
||||
|
||||
Reference in New Issue
Block a user