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

2011-07-04 21:16:55 +08:00
 ccp0101
在Network -> Interface -> Proxies -> SOCKS里面填的正确的。Safari却完全不鸟它的存在。是不是全局代理设置的bug?
9341 次点击
所在节点    macOS
15 条回复
smallcolor
2011-07-04 21:36:28 +08:00
你需要自己建一个HTTP服务器,把pac放到上面。
file://已经不行了。
ccp0101
2011-07-04 22:01:56 +08:00
@smallcolor 这样啊。但是直接设置SOCKS都不行了?
linsk
2011-07-05 08:14:52 +08:00
我也遇到,时好时坏的。
honururu
2011-07-05 15:07:58 +08:00
@smallcolor 已经这样设置了,还是时灵时不灵。
ccp0101
2011-07-05 15:20:01 +08:00
@honururu 是吧大家都这样。。有没有用firefox能够代理的?
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
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
2011-07-05 20:59:52 +08:00
@ccp0101 然后PAC里面按照@yoyicue的hack改下。 具体怎么改说一下吧,没弄明白
honururu
2011-07-05 21:13:16 +08:00
@ccp0101 能否发个autoproxy.pac上来,我用7070端口,谢谢
ccp0101
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
2011-07-05 21:21:37 +08:00
@ccp0101 如何解码?谢谢
honururu
2011-07-05 21:26:55 +08:00
@ccp0101 能否发一个pac到我的邮箱honururu#gmail.com
ccp0101
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
2011-07-05 21:35:32 +08:00
@honururu 我的被我改的面目全非了。
honururu
2011-07-05 21:51:44 +08:00
基本搞定了,但是我的路径用的是http://localhost/~<user>/autoproxy.pac.
如果用file://XXX还是会变为全局代理,点下面choose按钮也一样。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/15333

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX