有 Flora_Pac 用户(yyxst***@gmail.com 等)提出能不能提供官方 HTTP host 方式,通过 request 参数来返回适用的 PAC 文件(类似于 autoproxy2pac)。这个需求我早前就有考虑,起初主要担心集中提供 PAC host 会导致服务器被墙而徒劳无功。但最近又想了想,很多朋友的机器上其实是没有开发环境的,他们也不见得全都熟悉 Python 等工具,本着让翻墙能尽可能简单便利,尽可能降低门槛的期望,我简单实现了一下这个功能。目前的实现相当简陋,但凑合能用。
使用相当简单,我就不写什么教程了,直接上几个 demo 大家一看就懂了:
* 创建代理地址为 SOCKS 127.0.0.1:8964 的 PAC 文件:
$ curl http://flora.leaskh.com/pac?proxy=SOCKS%20127.0.0.1%3A8964
* 创建代理地址为 SOCKS5 127.0.0.1:8964 的 PAC 文件:
$ curl http://flora.leaskh.com/pac?proxy=SOCKS5%20127.0.0.1%3A8964
* 创建代理地址为 HTTP 127.0.0.1:6489 的 PAC 文件:
$ curl http://flora.leaskh.com/pac?proxy=PROXY%20127.0.0.1%3A6489
* 当第一代理 ( SOCKS5 127.0.0.1:8964 ) 失败时尝试第二代理 ( SOCKS 127.0.0.1:8964 ):
$ curl http://flora.leaskh.com/pac?proxy=SOCKS5%20127.0.0.1%3A8964%3B%20SOCKS%20127.0.0.1%3A8964
基本上就这样,如 demo 所示,直接把代理服务器地址转义后填入 proxy 参数中,请求 Flora_Pac 服务器(http://flora.leaskh.com/pac)就行。其中 URL 参数的转义规则 Google 一下很容易查到。下面列出可能会被用到的几个符号:
* 空格 ' ' ===> %20 或者 +
* 冒号 : ===> %3A
* 分号 ; ===> %3B
先写到这里,有疑问欢迎联系我。最后,再一次期望有一天我们不再需要翻墙。