转发SVN到外网

起因

最近由于全国防控原因,需要居家办公,但SVN是内网的,所以有了转发外网的需求。

这里使用开源反向代理软件frp来实现简单好用。

这里只简单介绍使用frp对svn进行转发的说明,实际frp非常强大,可以实现非常多类型的需求。有兴趣了解更多使用方式的,可以直达项目主页:

frp仓库地址

简单介绍

frp分为 服务端 frps 和 客户端 frpc 两部分 。

  • frps 运行在服务端,需要一个有公网 IP 的服务器,可以使用 腾讯云或者阿里云的VPS
  • frpc 运行在一台内网主机上

svn:// 协议的默认端口是 3690 , 所以实际上是使用 frp 转发 3690 端口即可。

如果自定义了 svn 的协议端口,在 frpc.ini 中将 3690 端口改成相应端口即可。

下载frp

frp 是用 golang 写的,几乎可以跨所有平台。

并且 服务端和客户端都在一个文件包 里,区别只是执行文件和配置文件不同。

  • frp服务端对应文件

    • frps 服务端的执行文件
    • frps.ini 服务端的配置文件
  • frp客户端对应文件

    • frpc 客户端的执行文件
    • frpc.ini 客户端的配置文件

release 下载对应平台的 frp 即可。

配置

  • frps.ini 配置

    1
    2
    3
    [common]
    bind_port = 6900
    log_filr = ./frps.log
  • frpc.ini 配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    [common]
    server_addr = 运行frps的服务器的公网ip
    server_port = 6900

    [svn]
    type = tcp
    local_ip = 172.16.0.18
    local_port = 3690
    remote_port = 6690

启动frp

  • 服务端启动 frps

    1
    ./frps -c frps.ini
  • 客户端启动 frps

    1
    ./frpc -c frpc.ini

效果

  • 至此,可以在外网通过 6690 端口访问内网的 svn 服务了。

image-20200308220228980

文章作者: 普通程序员
文章链接: https://programmerauthor.github.io/2020/03/08/frp-svn/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 普通程序员