近日,公司部门头儿要求笔者搭建1个专属于部门的SVN服务器,要求是:上海、深圳等地都能访问,且服务器要稳定有效。什么?我不会啊!SVN服务器平时不是在局域网里面使用的吗?怎么让外网访问内网的SVN服务?要买云服务器吗?遭不住呢,赶紧上网搜索了几天,所幸我遇到的问题都是别人走过的路,终于让我找到了两种完美的解决方案:
①内网穿透
内网穿透可参考我的上一篇文章https://blog.csdn.net/ZZLLLLLLZ/article/details/141167561。
大致原理:将部署在公司服务器的SVN服务端映射到公网域名上,这样一来,其他分部就可以通过外网的SVN客户端访问到内网的SVN服务端了。打通了外网和内网的隔阂,目前笔者已成功部署。
②购买SVN服务器托管平台
这个方案是我摸索了内网穿透好久才找到的(找到的时候内心崩溃了:怎么没有早点发现!),一直以为只有Git才有代码托管平台,没曾想SVN也有托管平台,而且速度比内网穿透快多了。我个人推荐的平台有以下3个:wsfdb.cn、SVN999、SVNBucket。
来比对下各个托管平台的优缺点,大家仔细斟酌购买使用:
wsfdb.cn:部署在阿里云服务器,个人比较推荐。
优点:套餐实惠,不限制成员数量和项目数量,SVN项目成员可在网站中自定义创建,无需SVN成员再注册wsfdb账号。
缺点:就是这个网站有时候颠颠的,可能会无法响应和重新加载(可能是它家服务器被外部攻击了吧,小概率事件,不影响使用)。SVN999:部署在阿里云服务器。
优点:套餐和wsfdb相差无几,不限制SVN成员数量。
缺点:限制SVN项目数量,而且需要SVN项目成员注册SVN999账号,即不支持自定义SVN成员账号。SVNBucket:部署在腾讯云服务器。
优点:套餐是这3家中最实惠的,同样的价格,买到的项目空间比前面2个更大,且不限制成员数量和项目数量。
缺点:也是需要SVN项目成员注册SVNBucket账号,即不支持自定义SVN成员账号。
比对完SVN服务器托管平台,我们再来比对内网穿透方式和托管平台方式两者的优缺点:
内网穿透方式
使用内网穿透服务,本质上是间接借用了别人搭建好的服务器进行穿透。如果需要更好用的SVN访问和拉取速度,需要购买别人的增值服务套餐,即部署到更好的物理服务器/云服务器、更快的带宽中,而且需要在一台不关机的电脑上部署VisualSVN Server服务端。
优点:内网穿透不仅可以穿透SVN服务,支持svn协议或http(s)协议(意味着可以在网页访问SVN服务端内容,每个SVN项目组员可在http(s)协议打开的网页中修改自己的密码),还可用于其他远程控制服务、网站部署服务等等。
缺点:需要些网络知识,内网穿透知识;需要一台不关机的电脑实时运行购买的内网穿透工具(电脑一关机,内网穿透服务失效)。
SVN服务托管平台方式
优点:开箱即用,所见即所得;不需要实时运行的电脑,只需要选购好对应的增值服务套餐,接着打开SVN托管网站部署好SVN服务即可。
缺点:正如上述内网穿透方式的优点所述,内网穿透方式的优点即是SVN托管方式的缺点,只能用于SVN服务托管,拓展性不好(专业性的SVN服务,没有花里胡哨),一般只支持svn协议,由于不支持http(s)协议,所以SVN项目组成员不能自行修改密码,SVN项目组成员的账号和密码由SVN托管平台的账号来统筹。如果您只需要SVN远程访问服务,直接选择这种方式,即刻解君愁。
总结:上述2种方式都需要一定的付费才能体验到更好的服务,想折腾选择内网穿透,想一步到位选择SVN服务托管平台。
最后附上SVN客户端和服务端的下载网站:
TortoiseSVN客户端:https://www.visualsvn.com/visualsvn/download/#tortoisesvn
TortoiseSVN汉化包:https://files-1255322048.cos.ap-chengdu.myqcloud.com/LanguagePack_1.14.5.29465-x64-zh_CN.msi
VisualSVN Server服务端:https://www.visualsvn.com/server/download/