Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

添加PAC模式 #163

Merged
merged 4 commits into from
Nov 2, 2022
Merged

添加PAC模式 #163

merged 4 commits into from
Nov 2, 2022

Conversation

j4587698
Copy link

  1. 增加了Pac模式,目前没有放pac.txt文件,也没有增加下载pac.txt的功能。
  2. 由于c#自带的HttpListener要管理员权限才能使用,否则会报拒绝访问的错误,所以目前使用了TouchSocket作为HttpServer提供Pac文件支持。

@2dust
Copy link
Owner

2dust commented Oct 27, 2022

感谢PR
PAC模式是可有可无的,为了此功能引入TouchSocket不合适
您可以尝试TcpListener

@j4587698
Copy link
Author

@2dust PAC模式对我来说是刚需,我觉得应该有很多机场比较差的人应该也刚需的。
因为机场比较便宜,所以通过机场走不是加速是减速。而目前Rule模式实际上是所有的非国内IP都走代理,所以访问那些没有被墙的网站,使用代理后体验会非常差,通过PAC的话就可以控制只有被墙的才会走。

回头我尝试一下使用TcpListener做个简易httpserver出来。

@j4587698
Copy link
Author

已经修改为使用TcpListener

@2dust
Copy link
Owner

2dust commented Oct 30, 2022

您是否已经测试通过?
请提交一个最新的可用pac文件,并放到guiConfigs目录下

@j4587698
Copy link
Author

自己已经编译使用了,没问题。
我自己用的pac已经很老了,是ssr的,现在已经处理了一个最新的pac文件,程序里没有guiConfigs目录,怎么放呢?

@2dust
Copy link
Owner

2dust commented Nov 1, 2022

自己已经编译使用了,没问题。 我自己用的pac已经很老了,是ssr的,现在已经处理了一个最新的pac文件,程序里没有guiConfigs目录,怎么放呢?

参考sysproxy.exe
压缩pac文件放到资源中;
在读取pac时,如果guiConfigs目录中存在则直接调用,如果不存在则解压到guiConfigs中再读取。
这样用户就可以自行修改pac内容了

@2dust 2dust merged commit 2d251d9 into 2dust:main Nov 2, 2022
@zdm9981
Copy link

zdm9981 commented Feb 3, 2023

@j4587698 看了下pac里的规则是有黑名单和白名单分开的,和之前v2rayN 3.x里的pac使用的adblock plus语法的规则不兼容,能否更新下直接使用adblock plus的规则?感觉更好用些 可以直接把gfwlist放进去了
https://adblockplus.org/en/filter-cheatsheet

@j4587698
Copy link
Author

j4587698 commented Feb 3, 2023

@j4587698 看了下pac里的规则是有黑名单和白名单分开的,和之前v2rayN 3.x里的pac使用的adblock plus语法的规则不兼容,能否更新下直接使用adblock plus的规则?感觉更好用些 就可以直接把gfwlist放进去了 https://adblockplus.org/en/filter-cheatsheet

@zdm9981 PAC的语法其实是操作系统或者浏览器处理的,软件只是把PAC作为一个网址提供给系统。现在给的也是gfwlist。
v2ray 3.x不知道有什么改动,v2ray的第一个pac版本也是我提交的,你可以尝试一下直接放进去,软件唯一做的事情就是把pac文件的__PROXY__字段替换成了对应的ip+端口。

@zdm9981
Copy link

zdm9981 commented Feb 3, 2023

@j4587698 之前的版本里pac都是直接使用的gfwlist,gfwlist里是用 || 和 @@|| 来区分黑白名单放在一个列表里的 看了下新版的v2rayn和clashn把两个名单分开了。问题是目前也没有自动更新pac的功能,只能手动将gfwlist base64解码更新到pac文件里 如果要重新手动将黑白名单区分开比较麻烦。

@j4587698
Copy link
Author

j4587698 commented Feb 3, 2023

@j4587698 之前的版本里pac都是直接使用的gfwlist,gfwlist里是用 || 和 @@|| 来区分黑白名单放在一个列表里的 看了下新版的v2rayn和clashn把两个名单分开了。问题是目前也没有自动更新pac的功能,只能手动将gfwlist base64解码更新到pac文件里 如果要重新手动将黑白名单区分开比较麻烦。

@zdm9981 我不是说了嘛。。PAC文件是操作系统解析的,你的PAC只要符合PAC的语法就可以,不是新版分开不分开,分开是因为gfwlist分开了,你不想分开完全可以用不分开的

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants