如何快速自建Git服務,實現異地同步?

單單大牛發表於2017-12-07

對於程式設計師和極客來說,像SVN、Git這樣的原始碼版本控制系統肯定並不陌生。然而,現在公網IP資源稀缺,很多網路環境都是私網IP,搞定自建SVN、Git的異地訪問就成了一件非常麻煩的事情,那有沒有不需要公網IP、相對安全,並且操作又簡單的方法?

enter image description here

其實,有外網訪問及同步程式碼需求的話,就可以用蒲公英異地組網建立異地虛擬區域網的方式來實現,無需公網IP、操作簡單的同時也能滿足程式碼同步時的安全要求,另外,更可支援移動裝置。

那麼,接下來我們就實戰一番,用Bonobo Git Server外加蒲公英異地組網來打造一個可以支援外網訪問的原始碼版本控制系統吧~

搭建Bonobo Git Server服務

首先,我們需要通過搭建Bonobo Git Server來實現一個可內網訪問的Git原始碼版本控制系統。這裡之所以採用Bonobo Git Server,是因為這是開源免費的,而且部署簡單,使用Windows自帶IIS(Internet資訊服務)的即可完成,同時它還有Web UI,支援瀏覽器訪問。

1.安裝並設定Bonobo Git Server

如果,系統中已經開啟IIS,那麼只要下載Bonobo Git Server,解壓放到C:inetpubwwwroot目錄即可。

Bonobo Git Server解壓到以下目錄即可:

enter image description here

不過,通常家用版的Win7、Win8和Win10都需要手動開啟,過程並不麻煩,進入到"開啟或關閉Windows功能"頁面後,找到"Internet資訊服務"一欄勾上即可。

如需開啟IIS可參考以下截圖:

enter image description here

接著,還需設定Bonobo Git Server資料夾下App_Data的訪問許可權,允許"IIS_IUSRS"使用者訪問和修改即可,同樣可以參考以下截圖中的設定:

enter image description here

2.執行Bonobo Git Server

隨後,開啟IIS的控制皮膚,在左側列表中右鍵Bonobo Git Server,選擇"轉換為應用程式",之後本機就可以在瀏覽器中鍵入地址"http://localhost/Bonobo.Git.Server"訪問Bonobo Git Server的Web介面了。

enter image description here

此時,區域網內的主機可以通過IP地址的形式可以訪問到Web介面(如:"http://localhost/Bonobo.Git.Server"),也可通過Git GUI等來同步程式碼。

enter image description here

由於,外出後不在同一區域網,就無法使用自行搭建的Git服務來同步程式碼。除了通過DDNS方式,很多老司機為了安全和私密性也會用PPTP、L2tp、IpSec等方法來實現異地遠端訪問。

然而如果沒有公網IP或不能在路由器內做相應的設定,想要實現Git異地同步就比較困難了。然而蒲公英異地組網,不僅不用公網IP,而且操作非常簡單,可以輕鬆解決難題~

值得一提的是,由於使用蒲公英組建的是封閉區域網,傳輸時使用非對稱RSA/AES演算法加密,並支援可獨立管理的登入ID,因此在一定程度上就可以保證內網資料的安全,滿足Git同步程式碼的各類需求。

enter image description here

蒲公英異地組網擁有路由器硬體及軟體客戶端,可以彼此搭配。這裡,為了不修改現有網路結構,採用了蒲公英路由器X1旁路模式外加客戶端的組網方式。除了親民的X1外,蒲公英路由器還擁有更加高階的X3、G5、X5以及X6,可以適用於企業應用場景。

1.新增異地組網成員

使用蒲公英異地組網的過程非常簡便,路由器接入網路,登入管理後臺,並繫結Oray賬號,點選"我要組網"就能進入組網介面。

enter image description here

此時,可以看到蒲公英X1已經在"路由器成員"列表中了,然後點選新增到"已選中網路成員"列表。

enter image description here

為了便於外網裝置訪問,還需按需新增軟體客戶端成員,這裡,暫時新增一個客戶端成員,生成的ID可以用於軟體客戶端的登入,最後點選"完成"即可。

enter image description here

到這裡,組網已經基本完成,蒲公英路由器下方的裝置和軟體客戶端之間已經能夠互訪了。但是,此次並不想用蒲公英路由器替換現有的撥號路由,改變網路結構。因此,就要開啟蒲公英路由器的旁路模式,讓蒲公英異地組網內的成員訪問到蒲公英路由器上層網路內的裝置。

enter image description here

2.開啟蒲公英路由器的旁路模式

開啟蒲公英路由器的旁路模式其實相當簡單,只要在組網介面中點選"旁路設定",然後根據提示輸入蒲公英路由器上層網段及子網掩碼位數就行了。

  1. 點選"新增旁路路由":

enter image description here

  1. 輸入蒲公英路由器上層網段及子網掩碼位數:

enter image description here

完後以上所有的操作後,組網設定就告一段落了,接下來,我們就可以通過登入蒲公英軟體客戶端的方式來實現外網訪問了~

enter image description here

外網訪問測試

使用剛才生成的ID及密碼,登入蒲公英軟體客戶端後可以看到網路內的成員列表,目前,除了本機外,還有蒲公英路由器X1~

enter image description here

雙擊蒲公英X1可以直接彈出Ping視窗,可以看到本機已經成功Ping通了蒲公英X1。

enter image description here

蒲公英X1上方的執行有Bonobo Git Server的主機呢?那就再開啟另一個CMD視窗來Ping下吧~鍵入主機IP,同樣成功了!

enter image description here

而在瀏覽器中鍵入"http://192.168.11.127/Bonobo.Git.Server"同樣能夠開啟Bonobo Git Server的Web UI!

enter image description here

然後,我們再試下在Git GUI中能不能同步程式碼吧~輸入測試專案的Git庫URL,就成功將其克隆到了本地,而在修改後也能推送到Git伺服器!這樣看來,在外遠端同步是毫無壓力了!

enter image description here enter image description here

值得一提的是,手機等移動裝置也可通過蒲公英軟體客戶端登入,同樣可以訪問到Bonobo Git Server的Web UI,這樣一來即使出門在外,沒有電腦的情況下,也可以隨時瞭解到專案進度。

enter image description here enter image description here 心得及總結

總體而言,蒲公英異地組網實現遠端Git同步的方案,不需要熟悉專業的網路知識,也不需要配置路由器,步驟簡單,對網路也沒有要求。更重要的是,蒲公英組建的是封閉區域網,在一定程度上也可以保證程式碼安全。

其實,除了用於Git異地同步,使用蒲公英異地組網能夠做到事情還有很多,不管是萌新還是老司機都可以嘗試下,通過蒲公英異地組網來實現,遠端裝置之間的互聯。

相關文章