前言
Vagrant利用代理加速下載,原理就是利用SS/SSR代理繞過牆的限制,加快下載速度。這裡的加速,包括下面兩點:
- 加快Vagrant Box的下載速度
- 加快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
,你會發現所有的下載速度將會有質的提升。