socks5代理配置

如果你希望在 境內(nèi)機(jī)器 上運(yùn)行 git 命令時,通過 境外服務(wù)器 A 作為代理訪問外網(wǎng),那么 proxychains 應(yīng)該安裝在 境內(nèi)機(jī)器 上。下面我將詳細(xì)說明如何實(shí)現(xiàn)這一目標(biāo)。


實(shí)現(xiàn)步驟

1. 確保境外服務(wù)器 A 上有 SOCKS5 代理服務(wù)

你需要確保境外服務(wù)器 A 上運(yùn)行了一個 SOCKS5 代理服務(wù)。如果沒有,可以使用以下方法之一:

方法 1:通過 SSH 創(chuàng)建 SOCKS5 代理

你可以直接通過 SSH 在境內(nèi)機(jī)器上連接到境外服務(wù)器 A,并啟用 SOCKS5 代理功能:

在境內(nèi)機(jī)器上運(yùn)行以下命令:

ssh -N -D 7890 user@境外服務(wù)器A的IP
  • -N:表示不執(zhí)行遠(yuǎn)程命令,僅建立連接。
  • -D 7890:表示在本地創(chuàng)建一個 SOCKS5 代理,監(jiān)聽端口為 7890。
  • user:是你在境外服務(wù)器 A 上的用戶名。
  • 境外服務(wù)器A的IP:是境外服務(wù)器 A 的 IP 地址。

運(yùn)行此命令后,境內(nèi)機(jī)器的 127.0.0.1:7890 就會成為一個 SOCKS5 代理,流量會通過境外服務(wù)器 A 轉(zhuǎn)發(fā)。


2. 在境內(nèi)機(jī)器上安裝 proxychains

由于你需要在 境內(nèi)機(jī)器 上運(yùn)行 git 命令并通過 SOCKS5 代理訪問外網(wǎng),所以 proxychains 應(yīng)安裝在 境內(nèi)機(jī)器 上。

安裝 proxychains

在境內(nèi)機(jī)器上運(yùn)行以下命令安裝 proxychains

sudo apt update
sudo apt install proxychains

如果你使用的是 CentOS 或 RHEL,可以運(yùn)行:

sudo yum install proxychains

3. 配置 proxychains

安裝完成后,編輯 proxychains 的配置文件,通常位于 /etc/proxychains.conf。

運(yùn)行以下命令打開配置文件:

sudo nano /etc/proxychains.conf

找到類似以下的部分:

# The option below identifies how the ProxyList is treated.
# only one option should be uncommented at time,
# otherwise the behavior is undefined.
#
# dynamic_chain
#strict_chain
# random_chain

dynamic_chain 取消注釋(推薦),并注釋掉其他選項(xiàng):

dynamic_chain
#strict_chain
#random_chain

然后在文件的末尾,添加你的 SOCKS5 代理地址和端口:

socks5  127.0.0.1 7890
  • 127.0.0.1:表示代理運(yùn)行在本地(因?yàn)槲覀兺ㄟ^ SSH 創(chuàng)建了 SOCKS5 代理)。
  • 7890:是 SOCKS5 代理的監(jiān)聽端口。

保存并退出(在 nano 中按 Ctrl+O 保存,按 Ctrl+X 退出)。


4. 使用 proxychains 運(yùn)行 git 命令

現(xiàn)在你可以通過 proxychains 運(yùn)行 git 命令,讓它的流量通過 SOCKS5 代理轉(zhuǎn)發(fā)到境外服務(wù)器 A。

例如:

proxychains git clone https://github.com/user/repo.git

proxychains 會攔截 git 的網(wǎng)絡(luò)請求,并將流量通過 SOCKS5 代理轉(zhuǎn)發(fā)到境外服務(wù)器 A。


5. 驗(yàn)證代理是否生效

可以通過 curl 測試代理是否生效:

proxychains curl https://www.google.com

如果返回了 Google 的頁面內(nèi)容,說明代理配置成功。


補(bǔ)充說明

  1. 保持 SSH 連接活躍
    如果你通過 SSH 創(chuàng)建了 SOCKS5 代理(ssh -N -D),需要保持這個 SSH 會話一直運(yùn)行。你可以使用 tmuxscreen 來保持會話后臺運(yùn)行。

    例如,使用 tmux

    tmux
    ssh -N -D 7890 user@境外服務(wù)器A的IP
    

    然后按 Ctrl+B,再按 D,可以將會話放到后臺運(yùn)行。

  2. Git 使用 SSH 協(xié)議時的特殊配置
    如果你使用的是 Git 的 SSH 協(xié)議(例如 git@github.com:user/repo.git),需要額外配置 SSH 的代理。

    編輯 ~/.ssh/config 文件,添加以下內(nèi)容:

    Host github.com
        ProxyCommand nc -x 127.0.0.1:7890 %h %p
    

    這樣,Git 的 SSH 連接也會通過 SOCKS5 代理。


總結(jié)

  • 境外服務(wù)器 A 上無需安裝 proxychains,只需要提供 SOCKS5 代理服務(wù)(可以通過 SSH 創(chuàng)建)。
  • 境內(nèi)機(jī)器 需要安裝并配置 proxychains,以便將 git 或其他命令的流量通過 SOCKS5 代理轉(zhuǎn)發(fā)到境外服務(wù)器 A。
  • 通過 proxychains,你可以輕松代理所有命令行工具的網(wǎng)絡(luò)請求。

如果你還有其他問題,歡迎隨時提問!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容