在Mac上配置終端走代理,需設置終端(如zsh或bash)使用HTTP/HTTPS/SOCKS代理,以便命令行工具(如curl、git、npm)通過代理訪問網絡。以下是詳細步驟,適用于macOS 10.15及以上版本。
前提條件
- 代理服務器信息:需知道代理服務器的地址、端口及類型(HTTP、HTTPS或SOCKS)。例如:
http://proxy.example.com:8080
或socks5://127.0.0.1:1080
。 - 終端:默認使用zsh(macOS Catalina及以上),若使用bash,步驟類似。
- 管理員權限:部分配置可能需要修改系統文件。
配置步驟
以下是配置終端走代理的幾種方法,根據需求選擇適合的方案。
方法 1:臨時設置代理(單次會話)
適用于臨時測試代理設置,關閉終端后失效。
-
打開終端:
- 打開“應用程序 > 實用工具 > 終端”。
-
設置環境變量:
- 對于HTTP/HTTPS代理,運行以下命令(替換為你的代理地址和端口):
export http_proxy=http://proxy.example.com:8080 export https_proxy=http://proxy.example.com:8080 export all_proxy=http://proxy.example.com:8080
- 對于SOCKS5代理,運行:
export all_proxy=socks5://127.0.0.1:1080
- 說明:
http_proxy
:用于HTTP請求。https_proxy
:用于HTTPS請求。all_proxy
:通用代理設置,部分工具(如curl)會優先使用。
- 對于HTTP/HTTPS代理,運行以下命令(替換為你的代理地址和端口):
-
驗證代理:
- 測試代理是否生效:
curl -I https://www.google.com
- 若返回HTTP狀態碼(如200),說明代理生效。若失敗,檢查代理地址或網絡。
- 測試代理是否生效:
-
取消臨時代理:
- 清除代理設置:
unset http_proxy https_proxy all_proxy
- 清除代理設置:
方法 2:持久化代理配置(全局生效)
適用于長期使用代理,配置寫入終端配置文件。
-
編輯終端配置文件:
- 確定你的終端Shell:
- 默認zsh:編輯
~/.zshrc
。 - bash:編輯
~/.bashrc
。
- 默認zsh:編輯
- 打開配置文件(以zsh為例):
nano ~/.zshrc
- 確定你的終端Shell:
-
添加代理設置:
- 在文件末尾添加以下行(替換為你的代理地址和端口):
export http_proxy=http://proxy.example.com:8080 export https_proxy=http://proxy.example.com:8080 export all_proxy=http://proxy.example.com:8080
- SOCKS5代理示例:
export all_proxy=socks5://127.0.0.1:1080
- 在文件末尾添加以下行(替換為你的代理地址和端口):
-
保存并應用:
- 保存文件(nano中按
Ctrl+O
,回車,然后Ctrl+X
退出)。 - 應用配置:
source ~/.zshrc
- 或重啟終端。
- 保存文件(nano中按
-
驗證代理:
- 測試:
curl -I https://www.google.com
- 確認是否通過代理訪問。
- 測試:
方法 3:特定工具的代理配置
某些工具(如git、npm)需要單獨配置代理。
-
配置git代理:
- 設置HTTP/HTTPS代理:
git config --global http.proxy http://proxy.example.com:8080 git config --global https.proxy http://proxy.example.com:8080
- SOCKS5代理:
git config --global http.proxy socks5://127.0.0.1:1080 git config --global https.proxy socks5://127.0.0.1:1080
- 取消git代理:
git config --global --unset http.proxy git config --global --unset https.proxy
- 設置HTTP/HTTPS代理:
-
配置npm代理:
- 設置代理:
npm config set proxy http://proxy.example.com:8080 npm config set https-proxy http://proxy.example.com:8080
- 取消npm代理:
npm config delete proxy npm config delete https-proxy
- 設置代理:
方法 4:使用代理客戶端(如Shadowsocks、V2Ray)
若使用代理客戶端(如Shadowsocks、V2Ray),可通過系統代理或本地SOCKS5代理配置終端。
-
檢查代理客戶端:
- 確保代理客戶端運行并提供本地代理端口(如
127.0.0.1:1080
)。
- 確保代理客戶端運行并提供本地代理端口(如
-
配置終端走本地代理:
- 編輯
~/.zshrc
,添加:export http_proxy=http://127.0.0.1:1080 export https_proxy=http://127.0.0.1:1080 export all_proxy=socks5://127.0.0.1:1080
- 保存并運行:
source ~/.zshrc
- 編輯
-
驗證:
- 測試:
curl -I https://www.google.com
- 測試:
注意事項
- 大小寫敏感:環境變量
http_proxy
和HTTP_PROXY
可能被不同工具識別,確保使用小寫形式(如http_proxy
),部分工具也支持大寫。 - 代理認證:
- 若代理需要用戶名和密碼,格式為:
export http_proxy=http://username:password@proxy.example.com:8080
- 若代理需要用戶名和密碼,格式為:
- 繞過代理:
- 設置
no_proxy
跳過特定域名:export no_proxy="localhost,127.0.0.1,.example.com"
- 設置
- 系統代理同步:
- 若已通過系統偏好設置配置代理(系統設置 > 網絡 > 高級 > 代理),終端可能自動繼承,優先級低于手動設置。
- 性能問題:
- 代理可能導致命令行工具(如Homebrew、npm)速度變慢,檢查代理服務器穩定性。
- 取消持久化配置:
- 編輯
~/.zshrc
或~/.bashrc
,刪除相關代理行,運行source ~/.zshrc
。
- 編輯
問題排查
- 代理無效:
- 確認代理服務器地址和端口正確。
- 測試代理:
curl -x http://proxy.example.com:8080 https://www.google.com
。
- 連接超時:
- 檢查代理客戶端是否運行,或網絡防火墻是否阻止連接。
- 命令未生效:
- 確保
source ~/.zshrc
已執行,或重啟終端。
- 確保
- 若有具體錯誤信息,請提供,我可進一步協助。