大家觉得有需要一个支持 PAC 文件的代理服务器么? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
liangqing
V2EX    分享创造

大家觉得有需要一个支持 PAC 文件的代理服务器么?

  •  
  •   liangqing 2015-09-17 09:11:30 +08:00 9787 次点击
    这是一个创建于 3686 天前的主题,其中的信息可能已经有所发展或是发生改变。

    就是代理服务器自动解析 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 文件的代理服务器么?或者现在已经有很成熟的方案了?
    如果有必要的话,撸主就继续完善它,把它存在的问题解决掉
    如果没必要的话,或者现在已经有很成熟的解决方案了,撸主就自己凑合也能用了。。

    18 条回复    2018-07-23 09:05:36 +08:00
    goodbest
        1
    goodbest  
       2015-09-17 11:12:08 +08:00
    存在即合理。
    其实就等于不用在服务器端配置 iptable 之类的了呗?这样也挺好。

    加油
    kawaiiushio
        2
    kawaiiushio  
       2015-09-17 13:43:37 +08:00
    白名单持续更新 https://github.com/akar1nchan/gfvvlist

    黑名单我不打算更了
    ltxnwt
        3
    ltxnwt  
       2015-09-17 18:51:46 +08:00   3
    有需要,已经量化
    https://opennet.xyz/
    ajan
        4
    ajan  
       2015-09-18 15:03:53 +08:00
    @ltxnwt 好东西
    cc55555
        5
    cc55555  
       2015-09-18 16:54:11 +08:00
    @ltxnwt 有木有邀请码来一枚~
    nothing2
        6
    nothing2  
       2015-09-18 17:38:19 +08:00
    @liangqing pac 加在 wifi 自动代理里面,相当好用。谢谢
    everyx
        7
    everyx  
       2015-09-18 21:17:49 +08:00 via Android
    其实根据 WPAD 协议配置一下也不用手动设置了
    qw7692336
        8
    qw7692336  
       2015-09-19 12:22:18 +08:00 via Android
    可以做到全局吗
    liangqing
        9
    liangqing  
    OP
       2015-09-21 10:17:27 +08:00
    @hgyhyx 这个的确不错!在 Mac 电脑上随便 tinyproxy 开个 http 代理就能局域网使用了。为啥之前没发现。。。不过这个只支持 Mac 吧, Linux , Windows 我都没发现这个功能呢。
    liangqing
        10
    liangqing  
    OP
       2015-09-21 10:18:18 +08:00
    @everyx 这个太复杂了,而且只是支持浏览器,别的应用或者移动设备可能也需要使用代理呢。
    liangqing
        11
    liangqing  
    OP
       2015-09-21 10:19:42 +08:00
    @qw7692336 可以的阿,我自己一直这么用的,不过我做的这个东西需要完善一下才能方便使用。如果你是 mac 电脑的话,可以参考 6 楼的方法,不错哈~
    ob
        12
    ob  
       2015-10-19 23:21:50 +08:00
    @kawaiiushio 白名单会不会有个问题?比如我把 twitter.com 设为白名单的时候, twimg.com ,或者 twittercdn.com (举例)这些相关联的域名有时候没办法一个一个找出来,导致显示的页面不全。这些相关联名单要怎么维护?
    ob
        13
    ob  
       2015-10-19 23:25:34 +08:00
    @ltxnwt 配置过 opennet.xyz 的 pac 文件,可以直接用。话说用的 pac.opennet.eu.org:25 这个代理是怎么搭建的,想要在自己的服务器上搭建个一样的,速度会更快一些。
    有知道的话,帮忙解答下,谢谢!
    kawaiiushio
        14
    kawaiiushio  
       2015-10-20 00:15:30 +08:00
    @ob 白名是指域名或者 IP 指向身在大的服器地址名
    kawaiiushio
        15
    kawaiiushio  
       2015-10-20 00:21:18 +08:00
    @ob 是 HTTP PROXY 也就是容明文 存在安全 如需要假 可以在 server 上配置 HTTP PROXY 服端
    @liangqing 部分 linux 行版不支持 pac 解析 需要安件 主流行版基本支持 在置 Windows 的置在 IE 的 internet 置面可以找到局域代理
    ob
        16
    ob  
       2015-10-20 00:26:44 +08:00
    @kawaiiushio
    刚试了下,把 pac 地址内容拷到其他站点下面( 25 端口那个地址保持不变,竟然就不能访问了,百度提示: DNS 错误)

    架设地址:
    http://bbs.itzmx.com/thread-8815-1-1.html
    kawaiiushio
        17
    kawaiiushio  
       2015-10-20 13:24:08 +08:00
    @ob 为什么不试试看神奇的 cow 呢 https://github.com/cyfdecyf/cow
    reguser12005
        18
    reguser12005  
       2018-07-23 09:05:36 +08:00
    这个太好了, 就需要这个. 如果是用 go 语言就更好了.
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1660 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    orld is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 16:22 PVG 00:22 LAX 09:22 JFK 12:22
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86