V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ccp0101
V2EX  ›  macOS

为什么我的Lion无法连接socks proxy?

  •  
  •   ccp0101 · 2011-07-04 21:16:55 +08:00 · 9146 次点击
    这是一个创建于 4669 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在Network -> Interface -> Proxies -> SOCKS里面填的正确的。Safari却完全不鸟它的存在。是不是全局代理设置的bug?
    15 条回复    1970-01-01 08:00:00 +08:00
    smallcolor
        1
    smallcolor  
       2011-07-04 21:36:28 +08:00
    你需要自己建一个HTTP服务器,把pac放到上面。
    file://已经不行了。
    ccp0101
        2
    ccp0101  
    OP
       2011-07-04 22:01:56 +08:00
    @smallcolor 这样啊。但是直接设置SOCKS都不行了?
    linsk
        3
    linsk  
       2011-07-05 08:14:52 +08:00
    我也遇到,时好时坏的。
    honururu
        4
    honururu  
       2011-07-05 15:07:58 +08:00
    @smallcolor 已经这样设置了,还是时灵时不灵。
    ccp0101
        5
    ccp0101  
    OP
       2011-07-05 15:20:01 +08:00
    @honururu 是吧大家都这样。。有没有用firefox能够代理的?
    yoyicue
        6
    yoyicue  
       2011-07-05 15:32:29 +08:00
    @ccp0101
    这个原因 是safari 不支持 sock5 只能用 socks, pac有一个 hack 写法
    SOCKS5 127.0.0.1:7070; SOCKS 127.0.0.1:7070

    曾经为此改过 switchy 的js
    gist.github.com/941950
    ccp0101
        7
    ccp0101  
    OP
       2011-07-05 16:25:43 +08:00
    解决咯。。

    首先system preferences里面设置PAC的时候不要手动打file://xxxx,按下面的choose file,因为URL格式不一样,变成file://localhost/<PATH>
    file://localhost/Volumes/Data/bin/autoproxy.pac

    然后PAC里面按照@yoyicue的hack改下。

    现在chrome和twitter等可以走代理了
    honururu
        8
    honururu  
       2011-07-05 20:59:52 +08:00
    @ccp0101 然后PAC里面按照@yoyicue的hack改下。 具体怎么改说一下吧,没弄明白
    honururu
        9
    honururu  
       2011-07-05 21:13:16 +08:00
    @ccp0101 能否发个autoproxy.pac上来,我用7070端口,谢谢
    ccp0101
        10
    ccp0101  
    OP
       2011-07-05 21:13:17 +08:00
    像autoproxy2pac下载的文件都是base64编码过的。需要先解码。然后可以看到

    var PROXY = "SOCKS 127.0.0.1:7070";

    将它改成

    var PROXY = "SOCKS5 127.0.0.1:7070; SOCKS 127.0.0.1:7070";
    honururu
        11
    honururu  
       2011-07-05 21:21:37 +08:00
    @ccp0101 如何解码?谢谢
    honururu
        12
    honururu  
       2011-07-05 21:26:55 +08:00
    @ccp0101 能否发一个pac到我的邮箱honururu#gmail.com
    ccp0101
        13
    ccp0101  
    OP
       2011-07-05 21:34:51 +08:00
    找到
    eval(decode64("


    decode64("之后到最后的"))之间的内容就是编码后的。

    例如像我的pac中:
    ... 1.length);return _3;}eval(decode64("LyoKICogUHJ .... VGQVVMVDsKfQo="))

    那么LyoKICogUHJ .... VGQVVMVDsKfQo=这部分就是编码的

    将这部分内容保存到一个文件A。

    到http://www.motobit.com/util/base64-decoder-encoder.asp

    将Choose File选择文件A,选择decode the data from a Base64 string (base64 decoding) 和output to a textbox (as a string),然后convert the source data

    过一会儿会出现以下开头的内容

    /*
    * Proxy Auto-Config file generated by autoproxy2pac
    * Rule source: http://autoproxy-gfwlist.googlecode.com/svn/trunk/gfwlist.txt
    * Last update: Tue, 05 Jul 2011 09:14:20 GMT
    */
    function FindProxyForURL(url, host) {
    var PROXY = "SOCKS 127.0.0.1:7070";
    var DEFAULT = "DIRECT";

    复制框中所有内容并保存到decoded.pac

    decoded.pac就是解码后的。
    ccp0101
        14
    ccp0101  
    OP
       2011-07-05 21:35:32 +08:00
    @honururu 我的被我改的面目全非了。
    honururu
        15
    honururu  
       2011-07-05 21:51:44 +08:00
    基本搞定了,但是我的路径用的是http://localhost/~<user>/autoproxy.pac.
    如果用file://XXX还是会变为全局代理,点下面choose按钮也一样。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3470 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 11:50 · PVG 19:50 · LAX 04:50 · JFK 07:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.