就是代理服务器自动解析 PAC 文件(其实就是 javascript ),知道如何将请求转发出去,不需要浏览器去解析判断了。
这样的话,只要在浏览器或者系统网络里面指定代理服务器即可,而不需要指定 PAC 文件,好处就是:
1 、有些浏览器对 PAC 文件支持不是很好,而且如果 PAC 文件太大的话,浏览器会卡
2 、统一了设置,不需要每个浏览器都设置 PAC 地址了,直接设置系统代理即可,这样对于那些移动设备也可以很方便通过局域网使用该代理。
3 、标准的 PAC 文件其实能力还是挺有限的(能够判断的条件有限),如果 PAC 文件不局限于浏览器来解析的话,那可以增加很多扩展,这样就能支持更多的逻辑。
4 、可以在代理服务器做一些解析 PAC 的缓存,这样的话,可以提高全局的性能。
我之前做了一个粗糙的版本(原谅我,安利一下): https://github.com/liangqing/PacProxy ,
之后自己(包括妹子)跌跌撞撞用了三年,功能也比较有限,有很多缺点:
* 仅仅支持 socks5 代理服务器,这个可能是最大缺陷,一定要支持 http/https 才行(否则就要在前面套一个 privoxy 转换,好麻烦)
* 有 Bug ,不过写了个脚本自动重启,所以一直也能用。。所以就没去修复了。。
* 代码已经比较过时了, nodejs 4 出来以后就没法用了,因为有些接口变了。
所以在这里想问下大家,觉得有必要做一个支持 PAC 文件的代理服务器么?或者现在已经有很成熟的方案了?
如果有必要的话,撸主就继续完善它,把它存在的问题解决掉
如果没必要的话,或者现在已经有很成熟的解决方案了,撸主就自己凑合也能用了。。
1
goodbest 2015-09-17 11:12:08 +08:00
存在即合理。
其实就等于不用在服务器端配置 iptable 之类的了呗?这样也挺好。 加油 |
2
kawaiiushio 2015-09-17 13:43:37 +08:00
|
3
ltxnwt 2015-09-17 18:51:46 +08:00 3
有需要,已经量化
https://opennet.xyz/ |
7
everyx 2015-09-18 21:17:49 +08:00 via Android
其实根据 WPAD 协议配置一下也不用手动设置了
|
8
qw7692336 2015-09-19 12:22:18 +08:00 via Android
可以做到全局吗
|
9
liangqing OP @hgyhyx 这个的确不错!在 Mac 电脑上随便 tinyproxy 开个 http 代理就能局域网使用了。为啥之前没发现。。。不过这个只支持 Mac 吧, Linux , Windows 我都没发现这个功能呢。
|
11
liangqing OP @qw7692336 可以的阿,我自己一直这么用的,不过我做的这个东西需要完善一下才能方便使用。如果你是 mac 电脑的话,可以参考 6 楼的方法,不错哈~
|
12
ob 2015-10-19 23:21:50 +08:00
@kawaiiushio 白名单会不会有个问题?比如我把 twitter.com 设为白名单的时候, twimg.com ,或者 twittercdn.com (举例)这些相关联的域名有时候没办法一个一个找出来,导致显示的页面不全。这些相关联名单要怎么维护?
|
13
ob 2015-10-19 23:25:34 +08:00
@ltxnwt 配置过 opennet.xyz 的 pac 文件,可以直接用。话说用的 pac.opennet.eu.org:25 这个代理是怎么搭建的,想要在自己的服务器上搭建个一样的,速度会更快一些。
有知道的话,帮忙解答下,谢谢! |
14
kawaiiushio 2015-10-20 00:15:30 +08:00
@ob 白名單是指域名或者 IP 指向身在大陸的服務器地址名單
|
15
kawaiiushio 2015-10-20 00:21:18 +08:00
|
16
ob 2015-10-20 00:26:44 +08:00
@kawaiiushio
刚试了下,把 pac 地址内容拷到其他站点下面( 25 端口那个地址保持不变,竟然就不能访问了,百度提示: DNS 错误) 架设地址: http://bbs.itzmx.com/thread-8815-1-1.html |
17
kawaiiushio 2015-10-20 13:24:08 +08:00
@ob 为什么不试试看神奇的 cow 呢 https://github.com/cyfdecyf/cow
|
18
reguser12005 2018-07-23 09:05:36 +08:00
这个太好了, 就需要这个. 如果是用 go 语言就更好了.
|