十八大以来,网络就越发异常了,VPN 断断续续,工作受影响严重。盼星星盼月亮终于盼走了十八大。没想到网络依旧不好用,看来党妈已经想把封锁 VPN 作为常规策略了。幸好 ssh 还好用,于是借机会升级了 Flora_Pac 项目,加入了几个大家都比较期待的小功能,合并了 @forresty 的 fork 的部分代码,现在基本能用了。
项目介绍:https://leaskh.com/2011/12/02/用-Flora_Pac.py-生成自动翻墙的-pac-文件/
项目地址:https://github.com/Leask/Flora_Pac
具体改动:
leask@Flora:~/Documents/Working/Flora_Pac:master> git diff ee2e8e83b2ca5b4d178c091555d99a67d0bcb7fa
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..c2de47f
--- /dev/null
+++ b/README.md
@@ -0,0 +1 @@
+Generate proxy auto-config rules. (Working with GFW)
\ No newline at end of file
diff --git a/flora_pac.py b/flora_pac.py
old mode 100644
new mode 100755
index 528e29a..317335e
--- a/flora_pac.py
+++ b/flora_pac.py
@@ -20,20 +20,27 @@ def generate_pac(proxy):
"// Flora_Pac by @leaskh"<br />
"\n// www.leaskh.com, i@leaskh.com"<br />
"\n"<br />
- "\nfunction FindProxyForURL(url, host)"<br />
- "\n{"<br />
+ "\nfunction FindProxyForURL(url, host) {"<br />
"\n"<br />
"\n var list = ["<br />
+ "\n ['192.168.0.0', '255.255.0.0'],"<br />
)
intLines = 0
for ip,mask,_ in results:
if intLines > 0:
strLines = strLines + ','<br />
intLines = intLines + 1
- strLines = strLines + "\n ['%s', '%s']"%(ip, mask)
+ strLines = strLines + "\n ['%s', '%s']"%(ip, mask)
strLines = strLines + (
"\n ];"<br />
"\n"<br />
+ "\n if (isPlainHostName(host)"<br />
+ "\n || (host == '127.0.0.1')"<br />
+ "\n || (host == 'localhost')"<br />
+ "\n || (/\\b([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\\b/.test(host))) {"<br />
+ "\n return 'DIRECT';"<br />
+ "\n }"<br />
+ "\n"<br />
"\n var ip = dnsResolve(host);"<br />
"\n"<br />
"\n for (var i in list) {"
还是那一句,希望早日不用折腾这些事儿吧。
Comments
博主的内功对于我等来说深不可测。佩服佩服! 不会在GITHUB上下载pac文件,在哪里啊?
是不是下载下来的那个flora_pac直接将“_“改为”.”?我用的wallproxy-plus,是127.0.0.1:8087,是不是要把内容里的有端口的IP的都改成这个?
捉摸了半天终于弄好了,可惜CHROME上的插件老是不起作用。 先把Flora_Pac文件下载下来,后缀加上.py。 装了python3.3.0运行提示错误,又装了python2.7.3运行的。 运行前把default这条改成这个 default = ‘PROXY 127.0.0.1:8087’, 生成了flora_pac.pac,把这个文件拷贝到d盘, 然后在ie的internet属性里-〉连接-〉 选中宽带连接-〉再点设置-〉勾选使用自动脚本 位置这样写file://D:/flora_pac.pac 终于搞定拉,这个用的真过瘾啊,我以前不用gfwlist常常是firefox用wallproxy代理,chrome浏览国内站,切换来切换去的,这下终于爽了。 我想询问下,chrome的插件switchy里位置怎么写,而且我勾选了插件设置的网络选项卡里的宽带连接,但是它不去改宽带连接的脚本,老是去改局域网设置里的脚本。
我对博主的敬仰真是如滔滔江水,连绵不绝!
唯一的问题是改了ie的宽带连接的脚本,chrome虽然也可以用,但是每次都跑ie里改,太郁闷。毕竟有时候得用bt下载,连接国外种子总不能走代理吧。
换了个switchysharp搞定啦,而且switchysharp里设置后,不会改动ie的局域网设置里或者宽带连接设置里的脚本,这不就成了,chrome单独用pac文件了!太好了! switchysharp说本项目基于 SwitchyPlus, SwitchyPlus说本项目基于Switchy。这关系太!!。
pac文件中的dnsResolve用的是哪个DNS?会不会DNS污染给你的IP是某国内的IP地址(假IP,但是落在apnic的国内地址范围内)。这样要翻墙的host由DIRECT走不通啊。
是的,所以你需要有抗dns污染的措施。这个我很难做到了。dnsResolve 用的应该是系统dns。
惭愧,能帮到你我很高心。
现在没有在github上提供pac文件,提供的是一个python的程序,帮助生成pac文件的。至于pac,将来会考虑生成一个样本到github上。但是应该要等等了,现在项目还缺其他更重要的东西。
看帮助文件。
哈哈,不好意思,可能在windows系统还不够好用。我近期会改进加入更多的内网地址优化,之后有时间会优化一下在windows下的体验。
抱歉,业余项目时间不多。