V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
liangqing
V2EX  ›  分享创造

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

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

    就是代理服务器自动解析 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   ·   实用小工具   ·   2754 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 09:24 · PVG 17:24 · LAX 01:24 · JFK 04:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.