对于程序员和极客来说,像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异地同步,使用蒲公英异地组网能够做到事情还有很多,不管是萌新还是老司机都可以尝试下,通过蒲公英异地组网来实现,远程设备之间的互联。