MacOS下如何为同一应用内的特定窗口设置代理
MacOS下如何为同一应用内的特定窗口设置代理
嘿,我完全懂你的需求——同一应用开多个窗口,每个窗口要走不同的代理甚至不代理,就像你说的Chrome那种场景:一个窗口裸连,另外两个分别走不同代理。之前用Proxifier只能给整个应用套代理,确实没法实现窗口级别的区分,在MacOS上我有几个实用的方案可以试试:
方法一:利用Chrome的多用户配置文件(最省心)
Chrome本身就支持独立的用户配置文件,每个配置文件对应的窗口是完全隔离的,代理设置自然也互不影响:
- 打开Chrome,点击右上角的用户头像(如果没显示,就在菜单里找「用户」选项)
- 选择「添加」,给新配置文件起个好记的名字(比如「Proxy1窗口」「Proxy2窗口」),选个区分度高的头像
- 每个配置文件打开的新窗口,你可以单独去
chrome://settings/system,点击「打开您计算机的代理设置」,给这个配置文件设置对应的代理;而原来的默认用户窗口,保持不设置代理就行。这样几个窗口就各自走各自的网络了。
方法二:用终端启动独立Chrome实例(更灵活)
如果不想用多用户配置,也可以通过终端命令启动带有指定代理的Chrome独立进程,每个进程对应一个窗口:
- 打开「终端」应用,输入以下命令启动走代理#1的Chrome窗口(记得把
your-proxy-1:port换成实际的代理地址和端口):
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --proxy-server=http://your-proxy-1:port --user-data-dir=/tmp/chrome-proxy1
- 同理,要启动走代理#2的窗口,只需要修改代理地址和数据目录路径:
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --proxy-server=http://your-proxy-2:port --user-data-dir=/tmp/chrome-proxy2
这里的--user-data-dir很关键,它指定了独立的用户数据目录,确保这个新启动的Chrome实例和你平时用的完全分开,不会共享任何设置。原来的不代理窗口正常打开Chrome就行,不用加任何参数。
要是你用的是其他应用,窗口级代理的实现会麻烦一些,但针对Chrome来说,上面这两个方案基本就能完美解决你的问题啦。
备注:内容来源于stack exchange,提问作者PaulVO




