Related issue: https://github.com/gfwlist/gfwlist/issues/1531
我们公司是www.aixcoder.com,我们的部分用户反映我们的服务延迟很大,经调查,发现是我们的API端口 https://api.aixcoder.com/ 匹配了用户电脑上的gfwlist里面的"api.ai"规则,从而走了代理。
4.1.6
Windows 10
把本地的pac.txt改名为pac.js,加入以下命令并用node执行:
console.log(FindProxyForURL("https://api.aixcoder.com/getmodels", "api.aixcoder.com"))
// 输出 __PROXY__,去掉`rules`中的"||api.ai"后输出DIRECT;
无论是否去掉 api.ai 都应该对 https://api.aixcoder.com/getmodels 输出DIRECT
见上
无
你好,Shadowsocks for Windows 使用了第三方的PAC列表服务,该PAC列表不由Shadowsocks for Windows控制,也无法控制该列表。
此问题确认,我在 pac.txt 中增加了一个名为 ip138.co 的内容后,访问 ip138.com 也会经过代理。

4.1.4正常,疑似 9ee988d9f194652302fcf47032d2490fd5281171 引入的问题
末尾加个斜杠试一下
目前的版本加个斜杠的确可以了。
不过 gfwlist 里面那么多都没斜杠,不可能一个个的去加吧……
This behavior is quite similar to ABP which is not GFWList intends to be.
所以有人在负责这个issue吗?
现在要么联系作者去除被墙ip要么告知用户让他们修改规则,或者开发小app去修改用户CFW列表
@williamxxy 这个问题应该出在规则模式匹配的代码上,应该由这个项目的维护者来修复
这个项目目前有人维护,但是维护人员可能忙于现实生活工作,无法及时处理。
PS:Shadowsocks for Windows 是开源软件,如果贵公司有能力,也可以帮忙改一下,然后提交一个PR,这样速度可能会更快。(我不会写程序)
估计是将GFWList转换为 PAC.TXT 时,里面进行判断的JS脚本有点问题。
可以给gfwlist提交这个问题,让他们加上斜杠
@felixhao28 其实匹配代码是直接把早些年的adblocks的代码直接搬过来的
@studentmain 9ee988d 只是将userrule单独出了一套逻辑,就像iptables一样链式匹配,PAC的生成和解析没动过。挺奇怪的。
看来得单独维护测试代理脚本。现在的gzip形式资源文件难以和项目本身一起维护。
倒是可以考虑不再gzip,反正主程序一直zip打包
我在Win7 VM里测试4.1.4是有这个问题的,关键是保存pac后要禁用再启用一次。
大家可以试一下这个版本,看有没有问题。第一次要更新一下pac才会生效:https://ci.appveyor.com/project/celeron533/shadowsocks-windows/builds/27564857/job/f302ls4yuv3406li/artifacts
问题源于ABP规则和GFWList规则的差异,在试图通过从头编写PAC解决。
问题源于ABP规则和GFWList规则的差异,在试图通过从头编写PAC解决。
理论上只要为 || 开头的域名规则结尾添加 ^ 就满足 ABP 的规则了:
||example.com --> ||example.com^||example.com/sub/ --> ||example.com/sub/ (no change)(uBlock Origin 应该是类似的做法,我没仔细翻源码。)
目前的版本加个斜杠的确可以了。
不过 gfwlist 里面那么多都没斜杠,不可能一个个的去加吧……
临时解决的话,用查找替换的方式工作量还是不大的。通配符或者正则表达式任君选择
问题源于ABP规则和GFWList规则的差异,在试图通过从头编写PAC解决。
https://github.com/komsomolskinari/pacfw ,基于https://github.com/xtons/smart-pac 以及自己之前的一些工作(主要是把解析GFWList的工作从PAC外面丢到了里面),还没加几个测试,不过看上去可以用。