前言

在公司有代理,所以在公司都是连的公司的代理

回家用的是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里面开关就可以了,这里主要讲下在公司的代理快速开启和关闭:

核心通过终端和快捷指令,实现在菜单栏点击就能开启和关闭代理

步骤

打开快捷指令

image-20250815140034897

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

image-20250815140145214

填命令

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 "已关闭代理"

最后勾选在菜单栏中固定

image-20250815140505181

你可以看到菜单栏出现快捷指令图标点进去就有代理开启和代理关闭的快捷指令

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就完事了,这样就也不用切换来切换去了

End