自用的 autoproxy 脚本,附带让规则即时生效的方法。

2012-04-13 11:55:10 +08:00
 slene
总是遇到代码小白求配置文件,他们自己修改的话,总会出点错。
每行一个域名,没有多余符号代码,方便添加。自用暂时没发现问题,有问题请帮忙改进。
适用于chrome safari和全局。代码不多就不贴到别处了。有时间考虑做成APP。

======================================================================

var domains = function(){/*

t.co

wordpress.com
blogger.com
blogspot.com

*/};

lines = new String(domains);
domains = lines.substring(lines.indexOf("/*") + 2, lines.lastIndexOf("*/")).trim().split(/\s+/);

for(var i = 0; i < domains.length; i++){
domains[i] = domains[i].replace('.', '\\.');
}

var REGEXP = new RegExp('^http[s]?:\/\/([\\w\\d-]+\\.)*' + '(' + domains.join('|') + ')' + '(\\/.*)?$');
var SOCKS = 'SOCKS5 127.0.0.1:7070; SOCKS 127.0.0.1:7070';

function FindProxyForURL(url, host) {
try{
if(REGEXP.test(url)) return SOCKS;
}catch(e){}

return 'DIRECT';
}

======================================================================

顺便贴个不用打开设置面板即时更新autoproxy文件的方法。
假设你的autoproxy文件在 http://127.0.0.1/SwitchyAuto.txt
在控制终端下执行。

适用于wifi:
networksetup -setautoproxystate Wi-Fi on && networksetup -setautoproxyurl Wi-Fi http://127.0.0.1/SwitchyAuto.txt?$RANDOM

适用于网线:
networksetup -setautoproxystate Ethernet on && networksetup -setautoproxyurl Ethernet http://127.0.0.1/SwitchyAuto.txt?$RANDOM

可以加到你的 .bashrc 里
alias setproxy='networksetup -setautoproxystate Wi-Fi on && networksetup -setautoproxyurl Wi-Fi http://127.0.0.1/SwitchyAuto.txt?$RANDOM'
alias setproxye='networksetup -setautoproxystate Ethernet on && networksetup -setautoproxyurl Ethernet http://127.0.0.1/SwitchyAuto.txt?$RANDOM'

每次只要打开终端,执行 setproxy 或者 setproxye 就可以。
4455 次点击
所在节点    macOS
2 条回复
est
2012-04-13 11:57:41 +08:00
在chrome里即时生效:

chrome://net-internals/#proxy

然后点击re-apply settings.
slene
2012-04-13 11:59:36 +08:00
@est
我主要用safari

付上面代码的 dpaste 地址,http://dpaste.com/730996/

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

https://tanronggui.xyz/t/32135

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

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

© 2021 V2EX