上一篇終於搞定 git repository server, 利用簡單的設定就能不走 ssh 而能同步 git 裡的東西

但因為我人處理不知為什麼要管得要嚴不嚴, 網路亂管的公司裡

所以 git port 就被可惡的防火牆擋了, 為了這件事, 只好找翻牆的工具啦

估了很久, 發現一套很好用的軟體 connect.c

document 參考這篇, 超完整

FreeBSD 有 ports 可以用, net/proxy-connect, 這個就不用說明了

而 google 上找到一堆 git 利用 proxy 的方法, 但都不是我要的, 因為方法都太麻煩, 以下介紹則是利用 connect.c 來讓 git 翻牆

1. 把 connect.c 生成 connect <– 自行想辦法, 只要有 .c 檔, 之後利用 gcc 就可能生出來

2. 需要一個 shell script 當做 GIT_PROXY_COMMAND 來用, 這部份 google 上很多, 但也很雜, 可參考這篇

#!/bin/sh
export CONNECT_USER='proxy username'
export CONNECT_PASSWORD='proxy password'
/usr/local/bin/connect -H http://proxy_ip:proxy_port $@

把它存成 gitgw.sh , 假設存在 /usr/local/bin/gitgw.sh

其中 CONNECT_USER, CONNECT_PASSWORD 是為了讓 http proxy 和 socks 都能共用, 要是有人想走 socks4 or socks5 的話, 變數不用改
若只想用 http proxy 的話, 可以改成 HTTP_PROXY_USER, HTTP_PROXY_PASSWORD, 這部份是參考上面那篇Document

3. 設定 GIT_PROXY_COMMAND 來讓 git 正式走 proxy

setenv GIT_PROXY_COMMAND /usr/local/bin/gitgw.sh

以上是 tcsh 的用法, 其他的用法就請自行修改

4. 經過以上設定, git 就能正式利用 proxy 功能讓和 remote repository 同步了

git over proxy

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料

Verified by MonsterInsights