Retour au classement

zhiyi7/gfw-pac

JavaScript

科学上网 PAC 成品文件以及生成器。可自定义代理域名和直连域名。不在自定义名单里的域名再按IP匹配,CNIP走直连,其他走代理,支持IPv6

clashclash-metacnipgeoipgfwhysteriaipv6pacproxyshadowrocketsurgetrojan
Croissance des étoiles
Étoiles
1.2k
Forks
326
Croissance hebdomadaire
Issues
2
5001k
avr. 2015janv. 2019oct. 2022juil. 2026
Artefactsnpmnpm install gfw-pac
README

gfw-pac

科学上网 PAC 文件以及生成器。通过自定义域名和 CNIP 地址生成 PAC(Proxy auto-config) 文件。对存在于自定义域名和解析出的IP不是CNIP的域名使用代理,支持IPv6。

此仓库每周四自动通过 GitHub Action 从 Loyalsoldier/geoip 同步数据并更新 gfw.pac 文件

特性

  • 开箱即用,直接可用的 gfw.pac 包含了常用的直连域名和代理域名以及国内IPv4/IPv6地址段
  • IP规则前置:若域名解析出的 IP 地址属于国内,返回直连,流量不经过代理程序
  • 速度快:优先按域名匹配,高频访问域名节省解析时间。IP段匹配使用Radix Tree,时间复杂度仅为O(m) m<=32(IPv4) 或者 m<=128(IPv6)
  • 不误伤:仅添加非常少的高频域名,减少流量走向错误的概率。
  • 支持 IPv6,不再需要为了IP规则而关闭IPv6或者AAAA解析,可正常开启IPv6,享受v6带来的各种便利。
  • 纯 IP 地址能正确处理,使用DoH的APP可完全正常工作。
  • 支持 iOS/MacOS/Windows/Android、Chrome/Edge/Firefox。生成的 pac 文件体积小,脚本全部使用ES5,大多数现代系统可正常执行。
  • 可自定义需要代理的域名
  • 可自定义直连的域名
  • 可自定义直连的 TLD 域名,例如 .test

用法

  1. 推荐)下载并编辑 gfw.pac 的第一行换成自己的代理服务器直接使用。
  2. 按下面说明手工运行 gfw-pac.py 生成自己的 pac 文件。此种方法可自定义域名流向,更灵活。但现在大多数客户端都可以定义域名匹配规则,特殊域名通过客户端定制即可。

gfw-pac.py 使用说明

usage: gfw-pac.py -f 输出的PAC文件名 -p 代理服务器 [-h]
                  [--proxy-domains 自定义使用代理域名的文件]
                  [--direct-domains 自定义直连域名域名的文件]
                  [--localtld-domains 本地TLD文件]
                  [--ip-file 从 Loyalsoldier/geoip/blob/release 中下载的 text/cn.txt 文件]

参数说明:

-h 显示帮助
-f (必须)输出的 pac 文件
-p (必须)指定代理服务器,例如 PROXY 192.168.1.1:3128
--proxy-domains 自定义使用代理的域名文件,文件里每行一个域名
--direct-domains 自定义直连的域名文件,文件里每行一个域名
--localtld-domains 自定义直连的顶级域,文件里每行一个域名,必须带前导圆点(例如 .test)
--ip-file 从 Loyalsoldier/geoip release 中下载的 text/cn.txt 文件

举例:

./gfw-pac.py -f gfw.pac \
             -p "PROXY 192.168.1.200:3128; DIRECT" \
             --proxy-domains=proxy-domains.txt \
             --direct-domains=direct-domains.txt \
             --localtld-domains=local-tlds.txt \
             --ip-file=cidrs-cn.txt

代理工具普遍支持配置路由规则,为什么还要用 pac 文件?

现代系统(MacOS/iOS/Windows)底层网络框架都会自动执行pac策略,使得大多数应用的http请求能够使用代理,而不仅仅是供浏览器使用。如果依赖于代理工具的路由规则,所有流量都进入代理程序,即使命中代理的直连规则,网络流量也要经过代理程序转发,性能会受影响。而先由网络框架通过 pac 文件决定用代理还是直连后,直连的流量不再经过代理程序,性能更好。当前所有流行代理前端几乎都内置了 pac 文件,当选择代理前端提供的“pac模式”的时候,代理前端会将系统代理脚步设置为它自动生成的 pac 文件。

跟代理工具提供的 pac 文件有什么不一样?

维护 pac 文件并不是代理工具的优先工作。一些代理工具提供的 pac 文件在不断融合的过程中包含了广告过滤、隐私保护等太多内容,以及体积庞大到无人可维护的域名列表,年久失修导致非常容易漏掉或者误伤。另一个极端则是仅有非常少的规则,大多数流量还是进入了客户端,甚至都不支持IPv6。而这个 pac 文件仅添加访问频率最高的域名,可以明确知道哪些域名直连、哪些域名代理,域名列表没有的再通过 IP 地址段匹配确认,可以保证99%以上的国内流量不进入代理程序。

技巧

  • 自行解决 DNS 污染问题。
  • 经常来下载包含最新数据的 pac 文件。
  • 代理工具最好也配置 GEOIP/GEOSITE 等路由规则(及时更新数据的前提下)。
Dépôts similaires
clash-verge-rev/clash-verge-rev

A modern GUI client based on Tauri, designed to run in Windows, macOS and Linux for tailored proxy experience

TypeScriptnpmGNU General Public License v3.0clashclash-meta
clashverge.dev
133k9.6k
Alvin9999/new-pac

翻墙-科学上网、自由上网、免费科学上网、免费翻墙、fanqiang、油管youtube/视频下载、软件、VPN、一键翻墙浏览器,vps一键搭建翻墙服务器脚本/教程,免费shadowsocks/ss/ssr/v2ray/goflyway账号/节点,翻墙梯子,电脑、手机、iOS、安卓、windows、Mac、Linux、路由器翻墙、科学上网、youtube视频下载、youtube油管镜像/免翻墙网站、美区apple id共享账号、翻墙-科学上网-梯子

PythonPyPIfanqiangfree-ssr
59.2k9.8k
chen08209/FlClash

A multi-platform proxy client based on ClashMeta,simple and easy to use, open-source and ad-free.

DartGNU General Public License v3.0clashclash-meta
46.4k2.9k
hiddify/hiddify-app

Multi-platform auto-proxy client, supporting Sing-box, X-ray, TUIC, Hysteria, Reality, Trojan, SSH etc. It’s an open-source, secure and ad-free.

DartOtherproxysingbox
hiddify.com
31.6k2.9k
Z-Siqi/Clash-for-Windows_Chinese

clash for windows汉化版. 提供clash for windows的汉化版, 汉化补丁及汉化版安装程序

JavaScriptnpmclashwindows
28.4k3.2k
Loyalsoldier/clash-rules

🦄️ 🎃 👻 Clash Premium 规则集(RULE-SET),兼容 ClashX Pro、Clash for Windows 等基于 Clash Premium 内核的客户端。

GNU General Public License v3.0clashgeosite
27.7k2.2k
vernesong/OpenClash

A Clash Client For OpenWrt

HTMLMIT Licenseclashopenwrt
26.8k4k
mihomo-party-org/clash-party

:electron: Another Mihomo GUI.

TypeScriptnpmGNU General Public License v3.0clash-metamihomo
clashparty.org
25.6k2k
zzzgydi/clash-verge

A Clash GUI based on tauri. Supports Windows, macOS and Linux.

TypeScriptnpmrustclash
22k3.2k
Pawdroid/Free-servers

🚀 免费订阅地址,🚀 免费节点,🚀 6小时更新一次,共享节点,节点质量高可用,完全免费。免费clash订阅地址,免费翻墙、免费科学上网、免费梯子、免费ss/v2ray/trojan节点、谷歌商店、翻墙梯子。🚀 Free subscription address, 🚀 Free node, 🚀 Updated every 6 hours, shared node, high-quality node availability, completely free. Free clash subscription address, free ss/v2ray/trojan node.

shadowrocketshadowsocks
v2cross.com
18.3k1.2k
tindy2013/subconverter

Utility to convert between various subscription format

C++GNU General Public License v3.0clashclashr
16.9k3.8k
free-nodes/clashfree

clash节点、免费clash节点、免费节点、免费梯子、clash科学上网、clash翻墙、clash订阅链接、clash for Windows、clash教程、免费公益节点、最新clash免费节点订阅地址、clash免费节点每日更新

clashfreefq
clashgithub.com
16.1k1.3k