在Mac下使用脚本重载proxy自动配置脚本(pac)

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"

3 thoughts on “在Mac下使用脚本重载proxy自动配置脚本(pac)”

  1. 比较奇怪的是safari不能通过proxy查询dns,现在只好用ff+foxproxy.
    不知有什么诡异的设定能搞定safari吗?

  2. 用privoxy把socks代理转变为http代理,浏览器就可以使用代理做dns查询了。

  3. 博主能否提供一个编译好的for mac osX 10.6.2的privoxy,我去下载,似乎都只有源码,编译这种事情对我等菜鸟来说,难度太高,搞不定。要是有空的话,打包个有图形界面的app那就太完美了。谢谢。另外,pac文件我写来写去都不能工作,博主能提供一个在mac osx 10.6 下可用的pac文件范本么?

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.