Mac代理相关设置
前言
在公司有代理,所以在公司都是连的公司的代理
回家用的是clash verge开代理
然后就混乱了
设置一下两个代理快捷的切换配置
终端代理
先搞一下终端的代理配置
临时添加
# company
export http_proxy="http://192.168.0.112:8123"
export https_proxy="http://192.168.0.112:8123"
export socks_proxy="socks://192.168.0.112:1080"
# home
export http_proxy="http://127.0.0.1:7897"
export https_proxy="http://127.0.0.1:7897"
export socks_proxy="socks://127.0.0.1:7897"
配置别名开启
# 追加到 ~/.zshrc 或 ~/.bashrc 末尾
proxyon() {
case "${1:-0}" in
1) # company
export http_proxy="http://192.168.0.112:8123"
export https_proxy="http://192.168.0.112:8123"
export socks_proxy="socks://192.168.0.112:1080"
;;
2) # home clash verge
export http_proxy="http://127.0.0.1:7897"
export https_proxy="http://127.0.0.1:7897"
export socks_proxy="socks://127.0.0.1:7897"
;;
*)
echo "Usage: proxyon 1|2"
return 1
;;
esac
echo "Proxy ON (mode $1)"
}
proxyoff() {
unset http_proxy https_proxy socks_proxy
echo "Proxy OFF"
}
默认自动开启公司代理
# 在 ~/.zshrc 再追加一行
echo 'proxyon 1' >> ~/.zshrc
# 在 ~/.bashrc 再追加一行
echo 'proxyon 1' >> ~/.bashrc
# zsh
source ~/.zshrc
# bash
source ~/.bashrc
脚本快速切换终端代理
20250908更新:
后来设置了快速切换终端默认代理的脚本,如下:
jay:~ $ cat /usr/local/bin/switch-proxy
#!/bin/bash
# 检查参数
if [[ "$1" != "1" && "$1" != "2" && "$1" != "0" ]]; then
echo "Usage: switch-proxy [0|1|2]"
echo " 0: disable proxy"
echo " 1: company proxy"
echo " 2: home proxy"
exit 1
fi
# 定义要修改的文件列表
FILES=("$HOME/.zshrc" "$HOME/.bash_profile")
for FILE in "${FILES[@]}"; do
if [[ -f "$FILE" ]]; then
# 删除旧的 proxyon 和 proxyoff 行
sed -i.bak '/^# __PROXY_AUTO__$/ {N; d;}' "$FILE"
# 根据参数添加新的配置
if [[ "$1" == "0" ]]; then
echo "# __PROXY_AUTO__" >> "$FILE"
echo "proxyoff" >> "$FILE"
else
echo "# __PROXY_AUTO__" >> "$FILE"
echo "proxyon $1" >> "$FILE"
fi
fi
done
# 自动 source,使当前 shell 立即生效
source ~/.zshrc 2>/dev/null
source ~/.bash_profile 2>/dev/null
echo "Proxy switched to: $1"%
非终端的代理快速开启/关闭
在家用clash的话开关非常简单,直接clash里面开关就可以了,这里主要讲下在公司的代理快速开启和关闭:
核心通过终端和快捷指令,实现在菜单栏点击就能开启和关闭代理
步骤
打开快捷指令

右边找到终端-运行shell脚本

填命令
networksetup -setwebproxy "Wi-Fi" 192.168.0.111 6666
networksetup -setsecurewebproxy "Wi-Fi" 192.168.0.112 7777
networksetup -setsocksfirewallproxy "Wi-Fi" 192.168.0.113 8888
echo "已开启代理"
关闭的
networksetup -setwebproxystate "Wi-Fi" off
networksetup -setsecurewebproxystate "Wi-Fi" off
networksetup -setsocksfirewallproxystate "Wi-Fi" off
echo "已关闭代理"
最后勾选在菜单栏中固定

你可以看到菜单栏出现快捷指令图标点进去就有代理开启和代理关闭的快捷指令
20250919更新
公司的梯子ip无法被openai拉黑了,导致我调不了gpt,开发不了了要
于是把公司的梯子也配置到clash里面去了
大致配置是下面这样的:
port: 7890
socks-port: 7891
allow-lan: false
bind-address: '*'
mode: rule
log-level: debug
external-controller: '127.0.0.1:9090'
experimental:
ignore-resolve-fail: true
secret: ''
dns:
enable: false
ipv6: true
default-nameserver: [ 223.5.5.5, 119.29.29.29, 8.8.8.8 ]
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
use-hosts: true
nameserver: [ 'https://doh.pub/dns-query', 'https://dns.alidns.com/dns-query' ]
fallback: [ 'https://doh.dns.sb/dns-query', 'https://dns.cloudflare.com/dns-query', 'https://dns.twnic.tw/dns-query', 'tls://8.8.4.4:853' ]
fallback-filter: { geoip: true, ipcidr: [ 240.0.0.0/4, 0.0.0.0/32 ] }
proxies:
- name: "DIRECT"
type: direct
- name: "company"
type: http
server: 192.168.1.1
port: 55002
# myself
- name: "ChatGPT"
type: http
server: 127.0.0.1
port: 6666
proxy-groups:
- name: auto
type: select
proxies:
- company
- ChatGPT
- "DIRECT"
rules:
#chatGPT
- DOMAIN-KEYWORD,openai,ChatGPT
- DOMAIN-SUFFIX,openai.com,ChatGPT
- DOMAIN-SUFFIX,chat.openai.com.cdn.cloudflare.net,ChatGPT
- DOMAIN-SUFFIX,chatgpt.com,ChatGPT
- DOMAIN-SUFFIX,oaistatic.com,ChatGPT
- DOMAIN-SUFFIX,oaiusercontent.com,ChatGPT
- DOMAIN-SUFFIX,auth0.com,ChatGPT
- DOMAIN-SUFFIX,bing.com,ChatGPT
- DOMAIN-SUFFIX,live.com,ChatGPT
- DOMAIN-SUFFIX,ai.com,ChatGPT
- DOMAIN-SUFFIX,deepl.com,ChatGPT
- DOMAIN-SUFFIX,sentry.io,ChatGPT
- DOMAIN-SUFFIX,challenges.cloudflare.com,ChatGPT
- DOMAIN-SUFFIX,events.statsigapi.net,ChatGPT
- DOMAIN-SUFFIX,featuregates.org,ChatGPT
- DOMAIN-SUFFIX,identrust.com,ChatGPT
- DOMAIN-SUFFIX,intercom.io,ChatGPT
- DOMAIN-SUFFIX,intercomcdn.com,ChatGPT
- DOMAIN-SUFFIX,openaiapi-site.azureedge.net,ChatGPT
- DOMAIN-SUFFIX,openaicom.imgix.net,ChatGPT
- DOMAIN-SUFFIX,openaicomproductionae4b.blob.core.windows.net,ChatGPT
- DOMAIN-SUFFIX,openaicom-api-bdcpf8c6d2e9atf6.z01.azurefd.net,ChatGPT
- DOMAIN-SUFFIX,production-openaicom-storage.azureedge.net,ChatGPT
- DOMAIN-SUFFIX,o33249.ingest.sentry.io,ChatGPT
- DOMAIN-SUFFIX,bard.google.com,ChatGPT
- DOMAIN-SUFFIX,copilot.microsoft.com,ChatGPT
- DOMAIN-SUFFIX,anthropic.com,ChatGPT
- DOMAIN-SUFFIX,bard.google.com,ChatGPT
- DOMAIN-SUFFIX,copilot.microsoft.com,ChatGPT
- DOMAIN-SUFFIX,perplexity.ai,ChatGPT
- DOMAIN-SUFFIX,cdn.usefathom.com,ChatGPT
- DOMAIN-SUFFIX,anthropic.com,ChatGPT
- DOMAIN-SUFFIX,claude.ai,ChatGPT
- DOMAIN-SUFFIX,grok.com,ChatGPT
- DOMAIN-SUFFIX,codeium.com,ChatGPT
- DOMAIN,edgeservices.bing.com,ChatGPT
- DOMAIN,www.bing.com,ChatGPT
- DOMAIN,assets.msn.cn,ChatGPT
- DOMAIN-SUFFIX,bing.net,ChatGPT
- DOMAIN,sydney.bing.com,ChatGPT
- DOMAIN-KEYWORD,bing.com,ChatGPT
- DOMAIN-SUFFIX,bingapis.com,ChatGPT
- DOMAIN,functional.events.data.microsoft.com,ChatGPT
- DOMAIN-KEYWORD,generativelanguage,ChatGPT
- DOMAIN-KEYWORD,colab,ChatGPT
- DOMAIN-SUFFIX,apis.google.com,ChatGPT
- DOMAIN-SUFFIX,gemini.google.com,ChatGPT
- DOMAIN-KEYWORD,developerprofiles,ChatGPT
# 按顺序执行规则
- GEOIP,CN,DIRECT
- MATCH,auto
然后导入clash就完事了,这样就也不用切换来切换去了