如何快速自建Git服務,實現異地同步?
對於程式設計師和極客來說,像SVN、Git這樣的原始碼版本控制系統肯定並不陌生。然而,現在公網IP資源稀缺,很多網路環境都是私網IP,搞定自建SVN、Git的異地訪問就成了一件非常麻煩的事情,那有沒有不需要公網IP、相對安全,並且操作又簡單的方法?
其實,有外網訪問及同步程式碼需求的話,就可以用蒲公英異地組網建立異地虛擬區域網的方式來實現,無需公網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解壓到以下目錄即可:
不過,通常家用版的Win7、Win8和Win10都需要手動開啟,過程並不麻煩,進入到"開啟或關閉Windows功能"頁面後,找到"Internet資訊服務"一欄勾上即可。
如需開啟IIS可參考以下截圖:
接著,還需設定Bonobo Git Server資料夾下App_Data的訪問許可權,允許"IIS_IUSRS"使用者訪問和修改即可,同樣可以參考以下截圖中的設定:
2.執行Bonobo Git Server
隨後,開啟IIS的控制皮膚,在左側列表中右鍵Bonobo Git Server,選擇"轉換為應用程式",之後本機就可以在瀏覽器中鍵入地址"http://localhost/Bonobo.Git.Server"訪問Bonobo Git Server的Web介面了。
此時,區域網內的主機可以通過IP地址的形式可以訪問到Web介面(如:"http://localhost/Bonobo.Git.Server"),也可通過Git GUI等來同步程式碼。
由於,外出後不在同一區域網,就無法使用自行搭建的Git服務來同步程式碼。除了通過DDNS方式,很多老司機為了安全和私密性也會用PPTP、L2tp、IpSec等方法來實現異地遠端訪問。
然而如果沒有公網IP或不能在路由器內做相應的設定,想要實現Git異地同步就比較困難了。然而蒲公英異地組網,不僅不用公網IP,而且操作非常簡單,可以輕鬆解決難題~
值得一提的是,由於使用蒲公英組建的是封閉區域網,傳輸時使用非對稱RSA/AES演算法加密,並支援可獨立管理的登入ID,因此在一定程度上就可以保證內網資料的安全,滿足Git同步程式碼的各類需求。
蒲公英異地組網擁有路由器硬體及軟體客戶端,可以彼此搭配。這裡,為了不修改現有網路結構,採用了蒲公英路由器X1旁路模式外加客戶端的組網方式。除了親民的X1外,蒲公英路由器還擁有更加高階的X3、G5、X5以及X6,可以適用於企業應用場景。
1.新增異地組網成員
使用蒲公英異地組網的過程非常簡便,路由器接入網路,登入管理後臺,並繫結Oray賬號,點選"我要組網"就能進入組網介面。
此時,可以看到蒲公英X1已經在"路由器成員"列表中了,然後點選新增到"已選中網路成員"列表。
為了便於外網裝置訪問,還需按需新增軟體客戶端成員,這裡,暫時新增一個客戶端成員,生成的ID可以用於軟體客戶端的登入,最後點選"完成"即可。
到這裡,組網已經基本完成,蒲公英路由器下方的裝置和軟體客戶端之間已經能夠互訪了。但是,此次並不想用蒲公英路由器替換現有的撥號路由,改變網路結構。因此,就要開啟蒲公英路由器的旁路模式,讓蒲公英異地組網內的成員訪問到蒲公英路由器上層網路內的裝置。
2.開啟蒲公英路由器的旁路模式
開啟蒲公英路由器的旁路模式其實相當簡單,只要在組網介面中點選"旁路設定",然後根據提示輸入蒲公英路由器上層網段及子網掩碼位數就行了。
- 點選"新增旁路路由":
- 輸入蒲公英路由器上層網段及子網掩碼位數:
完後以上所有的操作後,組網設定就告一段落了,接下來,我們就可以通過登入蒲公英軟體客戶端的方式來實現外網訪問了~
外網訪問測試
使用剛才生成的ID及密碼,登入蒲公英軟體客戶端後可以看到網路內的成員列表,目前,除了本機外,還有蒲公英路由器X1~
雙擊蒲公英X1可以直接彈出Ping視窗,可以看到本機已經成功Ping通了蒲公英X1。
蒲公英X1上方的執行有Bonobo Git Server的主機呢?那就再開啟另一個CMD視窗來Ping下吧~鍵入主機IP,同樣成功了!
而在瀏覽器中鍵入"http://192.168.11.127/Bonobo.Git.Server"同樣能夠開啟Bonobo Git Server的Web UI!
然後,我們再試下在Git GUI中能不能同步程式碼吧~輸入測試專案的Git庫URL,就成功將其克隆到了本地,而在修改後也能推送到Git伺服器!這樣看來,在外遠端同步是毫無壓力了!
值得一提的是,手機等移動裝置也可通過蒲公英軟體客戶端登入,同樣可以訪問到Bonobo Git Server的Web UI,這樣一來即使出門在外,沒有電腦的情況下,也可以隨時瞭解到專案進度。
心得及總結
總體而言,蒲公英異地組網實現遠端Git同步的方案,不需要熟悉專業的網路知識,也不需要配置路由器,步驟簡單,對網路也沒有要求。更重要的是,蒲公英組建的是封閉區域網,在一定程度上也可以保證程式碼安全。
其實,除了用於Git異地同步,使用蒲公英異地組網能夠做到事情還有很多,不管是萌新還是老司機都可以嘗試下,通過蒲公英異地組網來實現,遠端裝置之間的互聯。
相關文章
- 如何實現高效地IT服務管理
- 自建服務端實現Tinker熱修復服務端
- 增量FTP實現檔案的異地同步FTP
- 如何用華為影像服務快速實現濾鏡功能
- svn異地同步
- Google 雲服務搭建 git服務,實現Hexo自動部署GoGitHexo
- sync-player:使用websocket實現異地同步播放視訊Web
- sync-player:使用websocket實現異地同步播放影片Web
- 實時同步服務
- Linux 實現本、異地遠端資料實時同步功能Linux
- 基於 Nginx&Lua 實現自建服務端埋點系統Nginx服務端
- 快速搭建輕量級git服務GogsGitGo
- 如何用HMS Core位置和地圖服務實現附近地點路徑規劃功能地圖
- golang快速實現服務端網頁截圖Golang服務端網頁
- 用 Go + WebSocket 快速實現一個 chat 服務GoWeb
- 自建Serveo.net類似的服務
- 如何實現一個地相簿封裝,可以快速切換地圖封裝地圖
- 基於 swoole 的 websocket 服務實現狀態同步Web
- 異地資料中心的資料實時同步,該怎樣智慧化實現?
- Golang快速實現一個簡單RPC服務GolangRPC
- NGINX如何實現rtmp推流服務Nginx
- Spring Boot中如何優雅地實現非同步呼叫?Spring Boot非同步
- 使用OpenSSL自建一個HTTPS服務HTTP
- 服務計算 TDD實踐——實現快速排序演算法排序演算法
- Python如何快速實現分散式任務?Python分散式
- 如何快速又正確地在C++裡實現鎖C++
- 怎麼自己製作地圖?如何快速實現簡單地圖繪製?地圖
- tar+ssh實現異地備份
- 如何在Java中實現非同步任務排程?Java非同步
- 【Serverless】Unity快速整合認證服務實現郵件登入ServerUnity
- 騰訊位置服務Flutter業務實踐——地圖SDK Flutter外掛實現(一)Flutter地圖
- Docker實現服務發現Docker
- Win8.1 Update如何禁用OneDrive同步服務
- NodeJs服務註冊與服務發現實現NodeJS
- 關於異地資料同步的方案
- MemQ 實現非同步任務MQ非同步
- 如何實現在家訪問公司內網服務內網
- 如何使用地圖Picker快捷接入地圖服務?地圖