一.需求描述
之前想着异地协同开发,一开始想到的是使用异地组网的方式(参见N2N服务篇文章),后面发现是我想复杂了,那个方法需要多台电脑同时开启N2N
edge。后面才想明白其实不需要组网,各个客户端只需要能够顺利访问部署了VisualSVN
Server服务的那台电脑就行了,而SVN服务端电脑是没有必要去访问到各个客户端的。所以其实只需要使用最简单的方法,Frp内网穿透就行了。
二.实现条件
- 拥有公网IP的云服务器一台。(Linux和Win都可,尽量大带宽),用于搭建Frp服务端。
- 部署项目的机器A,安装VisualSVN Server,同时作为Frp客户端。
- 用于拉库测试的任意网络环境的机器B
三.实现步骤
1.云服务器搭建frp服务。
- 项目地址:frp
- 下载对应版本Frp,根据你的云服务器系统选择Linux或Win版本
(啊哈,既然有了Win的服务器了,我为啥不把VisualSVN Server直接安装到云服务器上呢,因为我腾讯云带宽4M,下载速度太慢,故选择购买了便宜国外大带宽小硬盘服务器,测试下来传输速度1-2MB) 这里我下载的是Linux版本作为Frp服务器,需要修改frps.ini文件(其实frp还有很多高级配置),给出简单示例:
[common] bind_port = 7000 dashboard_port = 7500 dashboard_user = admin dashboard_pwd = 123456 vhost_http_port = 8888
- 运行frps服务(可自行添加自启)
/home/frp/frps -c /home/frp/frps.ini &
2.部署项目的机器A配置
- 运行SVNServer服务端和Frp客户端。
- 下载Windows版Frp,修改frpc.ini,在该文件目录下运行CMD命令行窗口输入命令:
frpc.exe -c frpc.ini
frpc.ini配置
[common] server_addr = 你的云服务器的公网IP server_port = 7000 [svn] type = tcp local_port = 7777 local_ip = 127.0.0.1 remote_port = 7777
- 这里的local_port是机器A上SVNServer的端口,默认为443或80,可以改成自己想要的,防止冲突。
3.拉库测试的机器B
- 检出:
https://你的云服务器IP地址:7777/svn/仓库名