Git 設置代理
分兩種情況:第一種是 http/https協議,第二種是 ssh協議;
http/https 協議
# HTTP/HTTPS 協議,port 需與代理軟件設置的一致 # 格式:git config –-global http.proxy http://127.0.0.1:port git config –-global http.proxy http://127.0.0.1:7890 # SOCKS5 協議 # 格式:git config --global http.proxy socks5://127.0.0.1:port git config --global http.proxy socks5://127.0.0.1:7890 # 注意:http 和 socks5 兩者只能選一個
注意:
- --glboal 指 修改 Git 的全局配置文件 ~/.gitconfig,而非各個 Git 倉庫里的配置文件.git/config
- port 代理端口
- Git 不認 https.proxy,設置http.proxy就可以支持 https 了。
ssh 協議
通過使用 ssh 處理連接時,為了通過代理進行連接,必須配置 ssh 本身,在 ~/.ssh/config 文件中設置 ProxyCommand 選項。Linux 和 macOS 是通過 nc 來執行 ProxyCommand 的,Windows 下則是通過 connect。
Linux/Mac
編輯 ~/.ssh/config 文件,給文件加上如下對應內容
# HTTP 代理 Host github.com User git ProxyCommand nc -X connect -x 127.0.0.1:7890 %h %p
- Host 后面 接的 github.com 是指定要走代理的倉庫域名。
- 在 ProxyCommand 中,Linux 和 macOS 用戶用的是 nc。
- -X 選項后面接的是 connect 的意思是 HTTPS 代理。
- -x 選項后面加上代理地址和端口號。
- 在調用 ProxyCommand 時,%h 和 %p 將會被自動替換為目標主機名和 SSH 命令指定的端口(%h 和 %p 不要修改,保留原樣即可)。
# SOCKS5 協議 # 兩種方式任選一個 # 第一種 Host github.com User git ProxyCommand nc -X 5 -x 127.0.0.1:7891 %h %p # 第二種 Host github.com User git ProxyCommand nc -x 127.0.0.1:7891 %h %p
- Host 后面 接的 github.com 是指定要走代理的倉庫域名。
- 在 ProxyCommand 中,Linux 和 macOS 用戶用的是 nc 。
- 在調用 ProxyCommand 時,%h 和 %p 將會被自動替換為目標主機名和 SSH 命令指定的端口( %h 和 %p 不要修改,保留原樣即可)。
- 如果 -X 選項后面接的是數字 5,那么指的就是 socks5 代理。
- 當然不寫上 -X 選項也是可以的,因為在沒有指定協議的情況下,默認是使用socks5代理的。所以2 種的寫法效果一樣 ,都指的是走 socks5 代理
Window
編輯 ~/.ssh/config 文件,給文件加上如下對應內容.windows 的 ~ 路徑一般是C:\Users\用戶名,可在 git bash 中 輸入 cd ~進入 ~目錄,再用pwd命令顯示當前路徑.
# HTTP代理 Host github.com User git ProxyCommand connect -H 127.0.0.1:7890 %h %p # SOCKS5代理 Host github.com User git ProxyCommand connect -S 127.0.0.1:7891 %h %p
- Host 后面 接的 github.com 是指定要走代理的倉庫域名。
- 在 ProxyCommand 中,Windows 用戶用的是 connect。
- -H 選項的意思是 HTTP 代理
- -S 選項指的就是 socks5 代理
- 在調用 ProxyCommand 時,%h 和 %p 將會被自動替換為目標主機名和 SSH 命令指定的端口( %h 和 %p 不要修改,保留原樣即可)。
Nodejs/NPM
安裝好node后,輸入 npm config list 查看npmrc文件所在目錄,打開此文件
輸入下面內容:
proxy=http://127.0.0.1:7890 redistry=http://registry.npm.taobao.org/ https_proxy=http://127.0.0.1:7890
如果找不到路徑,請輸入 npm config list -l 來查看 globalconfig 和 userconfig 的信息,在對應目錄中創建npmrc文件並將上面內容輸入進去即可;
Docker
配置docker通過代理服務器拉取鏡像
問題現象
如果不配置代理服務器就直接拉鏡像,docker 會直接嘗試連接鏡像倉庫,並且連接超時報錯。如下所示:
$ docker pull busybox Using default tag: latest Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)