Ubuntu 安裝配置代理(Linux for clash + proxychains)

語言: CN / TW / HK

寫在前面

  • 這兩天要裝 FSL 軟體發現第一步不掛代理是真的慢,所以決定研究一下怎麼在 Linux 上掛代理
  • 簡單搜尋後選擇使用 Linux for clashproxychains 解決代理問題
  • 網上的教程很多但我試過之後大多會出現一些細節問題,而且千篇一律
  • 所以整理一下掛代理的安裝配置流程和細節
  • 順嘴提一句 clash 是真的好用

配置環境

  • 虛擬機器: VMware workstation pro 16
  • 虛擬機器作業系統: ubuntu-18.04-desktop-amd64
  • Linux for clash版本:clash-linux-amd64-v1.11.8

Clash 安裝配置

Linux for clash 下載

  • 訪問 clash版本釋出頁選擇合適的版本下載
  • 這裡也提供我使用的 clash-linux-amd64-v1.11.8 快速下載地址
  • 可以通過瀏覽器下載,也可以使用 wget下載,clash 很小可以自行選擇下載方式,以下提供 wget 下載命令 bash wget http://github.com/Dreamacro/clash/releases/download/v1.11.8/clash-linux-amd64-v1.11.8.gz

Linux for clash 安裝

  • 首先對下載下來的壓縮包解壓,可以採用命令解壓或者雙擊後提取,下面附解壓命令

    bash gzip -d clash-linux-amd64-v1.11.8.gz

  • 解壓後對 clash-linux-amd64-v1.11.8 檔案賦予執行許可權

    bash chmod +x clash-linux-amd64-v1.11.8

    注意:雙擊提取後的檔名可能為clash-linux-amd64,對應更改後續命令即可

  • 使用 mv 命令將檔案移動到指定目錄,方便全域性訪問 clash

    bash sudo mv clash-linux-amd64-v1.11.8 /usr/local/bin/clash - 終端執行 clash -v 命令檢查 clash 能否正常執行,正常終端顯示結果如下:

    bash Clash v1.11.8 linux amd64 with go1.19 Fri Aug 26 13:20:30 UTC 2022

    Linux for clash 配置

    • clash 執行需要依賴相應的 YAML 配置檔案,預設讀取 $HOME/.config/clash/config.yaml
    • 當沒有這份檔案的時候,clash 會使用預設配置生成一份,所以我們可以直接執行一下 clash ,來獲取模版,同時會自動下載 Country.mmdb 檔案
    • 第一次在終端執行 clash 的結果如下:

    bash INFO[0000] Can't find config, create a initial config file INFO[0000] Can't find MMDB, start download INFO[0000] Mixed(http+socks) proxy listening at: 127.0.0.1:7890 - 此時已獲得配置檔案的模板,但這模板並沒有什麼用,yaml 檔案的內容往往需要代理方提供,這就需要去購買 VPN - 大家可以自行找找,這裡所需的 VPN 不能是基於軟體(僅能在安裝它所提供的軟體後才可使用)的,而是可以提供訂閱連結(即可以取得配置檔案的) - 在取得相應的配置檔案後將其改名為 config.yaml 並替換相應目錄下的初始檔案

Linux for clash 執行

  • 在配置完成後即可在終端執行 sudo clash 執行,若無報錯則執行成功
  • 執行後可以瀏覽器訪問 Clash控制檯
  • 如果訪問失敗,開啟設定->網路->網路代理,切換為手動,設定下圖引數後 代理配置引數
  • 訪問成功後將進入如下介面: clash控制檯
  • 點選設定,檢查允許來自區域網的連線是否開啟 設定頁面
  • 訪問嘗試外網網站,如 Google
  • 至此 Linux for clash 已經安裝配置好,接下來將介紹如何配置開啟自啟動,如果不需要的可以跳過下一小節

Linux for clash 開機自啟

  • 自啟動的話將 clash 託管給 systemd 來管理
  • 新建 clash.service 檔案 bash sudo gedit /etc/systemd/system/clash.service
  • 將以下內容寫入到檔案中,注意修改 ExecStart 的路徑 bash [Unit] Description=Clash - A rule-based tunnel in Go Documentation=http://github.com/Dreamacro/clash/wiki [Service] OOMScoreAdjust=-1000 ExecStart=/usr/local/bin/clash -f /root/.config/clash/config.yaml Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target
  • ExecStart 的路徑可以使用以下命令進行查詢

    bash ls $HOME/.config/clash/config.yaml - 配置開機自啟,並啟動 clash 服務

    bash sudo systemctl enable clash sudo systemctl start clash sudo systemctl status clash

  • clash 執行起來之後,會在 http://127.0.0.1:7890 這個地址監聽 HTTP_PROXY 服務

  • 接下來需要為 Linux 配置代理,使所有的 http 請求,都經由這個代理服務進出
  • Linux 提供了專門的環境變數 http_proxyhttps_proxy 進行相關配置
  • 採用以下命令設定並將其寫入 .bashrc 檔案中,使得每次開啟終端都可以生效 bash echo -e "export http_proxy=http://127.0.0.1:7890\nexport https_proxy=http://127.0.0.1:7890" >> ~/.bashrc
  • 重新打開個終端,配置即可生效

Proxychains 安裝配置

下載安裝

  • 使用 apt 進行安裝,命令如下:

    bash sudo apt-get install proxychains

代理配置

  • 開啟 /etc/proxychains.conf 檔案

    bash sudo gedit /etc/proxychains.conf - 在檔案最後改成相應的代理方式、地址和埠,根據 clash 的配置,修改如下:

    bash http 127.0.0.1 7890

代理使用

  • 在命令前加 proxychains 即可
  • 可以使用一下命令檢視是否成功

    bash proxychains curl -kIsS http://www.google.com

寫在最後

  • 目前上述方法已在 Ubuntu 18.04Ubuntu 16.04 上測試完成
  • 若有其他問題歡迎評論指出