Vagrant 利用代理加速下載

諾大的院子發表於2019-10-11

前言

Vagrant利用代理加速下載,原理就是利用SS/SSR代理繞過牆的限制,加快下載速度。這裡的加速,包括下面兩點:

  1. 加快Vagrant Box的下載速度
  2. 加快Vagrant內虛擬機器如Yum, Git等軟體的下載速度

環境

  • 作業系統:Windows 7
  • Vagrant版本:2.2.5

原料

  • SS/SSR
  • Privoxy

配置HTTP/HTTPS代理(可選)

Vagrant的加速只支援使用HTTP/HTTPS代理,如果你的SS/SSR不支援HTTP/HTTPS代理,可以藉助Privoxy將SS/SSR的socks代理轉換為HTTP代理。

Privoxy目前最新版下載地址:https://www.privoxy.org/sf-download-mirror...

其中.exe檔案是安裝版,.zip檔案是便捷版,按需下載即可。

轉發HTTP/HTTPS請求

Privoxy安裝完成後,編輯安裝目錄中的config.txt檔案,在末尾加入:

forward-socks5t / 127.0.0.1:16666 .

注意最後還有一個.,這句話表示將傳送到Privoxy的請求轉發到127.0.0.1:16666這個socks5代理上,socks5代理的地址根據你的SS/SSR的實際地址修改。

修改監聽地址

Privoxy的預設監聽地址是127.0.0.1:8118,但是在虛擬機器內無法訪問這個址,所以需要將127.0.0.1修改為宿主機的IP地址,為了方便,可以修改為0.0.0.0,如下修改config.txt的對應配置:

listen-address  0.0.0.0:8118

配置完成後,啟動Privoxy程式,使用telnet指令檢查HTTP代理服務是否可用。

Vagrant Box下載加速

配置Vagrant Box的下載加速比較簡單,原理就是新增一個代理地址的環境變數,根據所使用的命令列工具略有不同

  • CMD

    # 127.0.0.1:8118 即為上面配置的HTTP代理
    set http_proxy=127.0.0.1:8118
    set https_proxy=127.0.0.1:8118
  • Git Bash

    export http_proxy=127.0.0.1:8118
    export https_proxy=127.0.0.1:8118

至於PowerShell,因為它的環境變數設定比較麻煩,需要的可以自行搜尋。

注意以上方式設定環境變數只針對當前會話視窗有效,當重開視窗時需要重新執行一遍指令。

虛擬機器內下載加速

加速虛擬機器內的下載,利用的是vagrant-proxyconf這個外掛。按照官網介紹,這個外掛可以設定虛擬機器內的http_proxy環境變數,為Apt, Docker, Git, npm, PEAR, Subversion, Yum這些軟體設定代理,加快它們的下載速度。

  • 安裝

    vagrant plugin install vagrant-proxyconf
  • 配置

    如果要代理全域性生效的話,修改$HOME/.vagrant.d/Vagrantfile檔案 (如果只應用到一個專案,則修改專案的Vagrantfile檔案),加入以下內容:

    Vagrant.configure("2") do |config|
    if Vagrant.has_plugin?("vagrant-proxyconf")
    config.proxy.http     = "https://192.168.0.2:8118/"
    config.proxy.https    = "https://192.168.0.2:8118/"
    config.proxy.no_proxy = "localhost,127.0.0.1,.example.com"
    end
    # ... other stuff
    end

    注意代理地址需要填寫宿主機的IP地址,而不是127.0.0.1

至此,所有配置完成,敲入vagrant up,你會發現所有的下載速度將會有質的提升。

相關文章