Mac下对网络设备使用proxy自动配置脚本可以透明使用代理穿墙(可以配合ssh tunnel和tor)。但是我一直不知道如何用脚本让系统重新载入pac文件(在更新了pac的规则时我们需要重载配置)。昨天一位叫做Dylan的网友留言告诉了我如何做,我在此记录一下。在命令行下面:
networksetup listallnetworkservices
然后会会返回一个网络连接服务的列表:
An asterisk (*) denotes that a network service is disabled.
Bluetooth DUN
ADSL
Ethernet
FireWire
AirPort
Bluetooth PAN
我一般需要配置pac文件的是Ethernet和AirPort,那么相应的重载命令是:
sudo networksetup -setautoproxystate 'AirPort' off
sudo networksetup -setautoproxyurl 'AirPort' 'file://localhost/Users/tin/pac/tin.pac'
sudo networksetup -setautoproxystate 'AirPort' on
sudo networksetup -setautoproxystate 'Ethernet' off
sudo networksetup -setautoproxyurl 'Ethernet' 'file://localhost/Users/tin/pac/tin.pac'
sudo networksetup -setautoproxystate 'Ethernet' on
然后pac文件就已经被重载完毕啦!在此感谢Dylan。
顺便共享一下我在bash下的alias:
alias px='ssh -qTfnNC -D 7777 tin@zztin.com'
alias rpx="sudo networksetup -setautoproxystate 'AirPort' off;sudo networksetup -setautoproxyurl 'AirPort' 'file://localhost/Users/tin/pac/tin .pac';sudo networksetup -setautoproxystate 'AirPort' on;sudo networksetup -setautoproxystate 'Ethernet' off;sudo networksetup -setautoproxyurl 'Ethernet' 'file://localhost/Users/tin/pac/tin.pac';sudo networksetup -setautoproxystate 'Ethernet' on"
比较奇怪的是safari不能通过proxy查询dns,现在只好用ff+foxproxy.
不知有什么诡异的设定能搞定safari吗?
用privoxy把socks代理转变为http代理,浏览器就可以使用代理做dns查询了。
博主能否提供一个编译好的for mac osX 10.6.2的privoxy,我去下载,似乎都只有源码,编译这种事情对我等菜鸟来说,难度太高,搞不定。要是有空的话,打包个有图形界面的app那就太完美了。谢谢。另外,pac文件我写来写去都不能工作,博主能提供一个在mac osx 10.6 下可用的pac文件范本么?