mac終端代理


轉載來自:https://github.com/Qingquan-Li/blog/issues/131

環境:

  • macOS
  • 網絡代理服務器(購買或自行搭建)
  • 網絡代理客戶端(ClashX等)

macOS 下的終端默認是不走系統代理的,即使我們已經打開了網絡代理客戶端的"全局代理"。

一、開啟全局代理模式

打開網絡代理客戶端,並打開全局代理模式。

二、配置終端代理

在終端命令行中,配置代理。

以使用 ClashX 代理客戶端為例,HTTP 代理端口為 7890 ,Socks5 代理端口為 7891。端口是可修改的。HTTP 代理或 Socks5 代理,配置時選其中一種復制到終端即可。

點擊 ClashX => 復制終端代理命令,即可復制到一下命令:

# 配置http訪問的 export https_proxy=http://127.0.0.1:7890 # 配置https訪問的 export http_proxy=http://127.0.0.1:7890 # 配置http和https訪問 export all_proxy=socks5://127.0.0.1:7891

這種方法只在當前終端窗口有效,關閉或新建終端窗口后將實效。
或執行 $ export all_proxy='' 使其失效。
或在網絡代理客戶端中關閉全局代理模式,使其失效。

如果想長期有效,請把以上命令添加到 Shell 配置文件 .bash_profile 或者 .zshrc ,然后執行 $ source ~/.bash_profile 或者 $ source ~/.zshrc 使配置生效。

附:局域網內配置其他電腦( macOS / Linux )終端的網絡代理:

  1. 網絡代理客戶端(這里是ClashX)設置“全局”連接模式,打開“允許局域網連接”;
  2. $ export all_proxy=socks5://運行着網絡代理客戶端的電腦的IP地址:7891

附:局域網內共享電腦的網絡代理給其他設備:

這里已經配置好網絡代理的宿主電腦,使用的網絡代理客戶端是 ClashX 。
在局域網內,把宿主電腦的網絡代理共享給其他設備。

  1. iPhone => 設置 => wifi => 配置代理 => 手動模式 => 服務器-運行着ClashX電腦的IP地址 => 端口7890 。
  2. Ubuntu => System Setting => Network => Network proxy => 運行着ClashX電腦的IP地址 + 端口7890/7891 。

三、驗證

對比配置終端代理前后的 IP 和 歸屬地址:

$ curl cip.cc  # 查詢IP、歸屬地址、運營商
 
alias proxy='export all_proxy=socks5://127.0.0.1:7891' alias unproxy='unset all_proxy' alias ip='curl cip.cc'

你好👋,我配置里面是如上設置的,我使用的是IPLC線路Proxy之后還是本機IP,請問我有什么地方做的不對呢?我以前是使用的SSR這樣是沒問題的,現在切換到了ClashX。

 
 

hello,建議檢查一下是否開了全局代理,如果沒開全局,確實會繼續顯示本機 IP 的。

如果還是不行,因為我不知道你具體使用的方案,建議可以完全按上面的流程走一遍。

附一張圖:

agent

 

有什么辦法可以使用規則判斷模式來使終端走代理么,因為不想一直在全局和規則上切換

 
 

@mipawn 理論上,都是要先開全局的。
如果不想一直開着全局,可以試一下,運行 $ curl cip.cc 確定終端已經在走代理了,然后把全局改為規則,再次運行 $ curl cip.cc 看看此時終端是不是還在走代理。

 

@FatliTalk 按照這個步驟試了一下,只有在全局模式下才能使終端處於代理模式之下。搜了一下相關話題,也沒找到解決方案,不知是否有新的辦法能夠在規則模式下使終端處於代理模式?謝謝。

 
 

@tzayuan 需要開全局的,至少我是這樣。

 
 

@FatliTalk 感謝回復。我又測試了一下,發現規則模式下的終端代理是按照規則模式進行代理的。如把cip.cc加入規則中后,執行curl cip.cc就可以返回正確的代理后的信息。通過這種方式,可以不完美的實現終端的規則模式下代理,只是可能漏掉一些終端訪問地址的規則導致這些訪問地址是通過本地網絡進行訪問的。

但同時我產生了兩個新的疑問:

  1. 當我在規則中加入cip.cc后,通過執行curl cip.cc的確可以返回代理后的信息,但是我發現執行curl www.cip.cc則返回的還是我的本地網絡的信息,因此推測規則中的cip.cc並不包含***.cip.cc,對此還是存疑的;

  2. 同時我在瀏覽器中訪問cip.cc,自動返回的是www.cip.cc,這里是否應理解為cip.cc主機配置了自動返回www.cip.cc為訪問該主機的默認返回頁面?

 
 

@tzayuan 對於疑問1,我認為你的推斷正確,即需要配置完整的URL。已經肉翻,無法測試驗證。
對於疑問2,你打開瀏覽器的 Developer Tools 訪問 cip.cc 可以看到被 301 重定向到 www.cip.cc 了。

 
 
alias proxy='export all_proxy=socks5://127.0.0.1:7891' alias unproxy='unset all_proxy' alias ip='curl cip.cc'

你好👋,我配置里面是如上設置的,我使用的是IPLC線路Proxy之后還是本機IP,請問我有什么地方做的不對呢?我以前是使用的SSR這樣是沒問題的,現在切換到了ClashX。

最后是怎么解決的呢,我和你一樣的情況

 
 

@HelperInCa 必須在全局規則下才能生效


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM