通过在 CentOS 7 系统以容器方式部署 SVN 为例,演示用户怎样通过互联网访问内网 SVN 提交代码更新。

先决条件

拥有一个有效的 ZeroNews 账户

第 1 步: 以容器方式部署 SVN

  1. 创建 SVN 容器的配置文件目录及数据存储目录。
svn 文件: /opt/docker/svn/
mkdir -p /opt/docker/svn
  1. 运行 svn 容器, 隧道 SVN 容器端口 3690:3690
docker run -d --name svn-server -v /opt/docker/svn:/var/opt/svn -p 3690:3690 garethflowers/svn-server

创建 SVN 仓库 repo
docker exec -it svn-server svnadmin create repo

修改 svn 配置
/opt/docker/svn/repo/conf/svnserve.conf
 anon-access = none
 auth-access = write
 password-db = passwd
 authz-db = authz

创建 svn 用户
/opt/docker/svn/repo/conf/passwd
 [user] # 标签下添加用户
 user01 = 123456

用户授权
/opt/docker/svn/repo/conf/authz
[repo:/]
 user01 = rw

第 2 步:部署 ZeroNews 内网穿透

我们通过 Docker 容器方式部署 ZeroNews 内网穿透

选择快速开始方式

登录 https://user.zeronews.cc ,在「快速开始」页面,选择 Docker 安装方式,然后选择 ZeroNews 公共仓库(国内),按步骤操作。 img

按步骤运行 ZeroNews 服务

通过以下命令在 ZeroNews 官方仓库下载 ZeroNews 容器镜像
sudo docker pull docker.zeronews.cc/zeronews/zeronews:latest
创建数据目录并启动容器
选择 Docker Run 方式运行,执行如下命令
sudo mkdir -p /opt/zeronews
sudo docker run -d --name zeronews --net host \
  -v /opt/zeronews:/etc/zeronews \
  -e TOKEN=<your token> \
  docker.zeronews.cc/zeronews/zeronews:latest
请复制快速开始页面的 AuthToken 替换 <your token> 占位符。

查看运行中的客户端状态

ZeroNews 容器启动成功后,在 ZeroNews 控制台「关联客户端」页面查看已上线的 ZeroNews 容器设备。

第 3 步:为 SVN 添加域名及隧道

为 SVN 添加域名

在 ZeroNews 管理平台的「自定义域名」管理界面中,添加域名(以 svnmt 为例):
  1. 在「域名类型」中选择「默认域名」,并在「子域名前缀」中输入 svnmt,然后点击「域名可用性检测」
  2. 若下方「接入域名」显示为「可注册」,则表示该域名当前可添加使用,点击单选框选择该域名
  3. 点击「提交」,完成域名添加
  4. 在该域名条目下,点击「关联端口」,添加 TCP 端口,例如 23690

为 SVN 添加公网隧道

在 ZeroNews 管理平台的「隧道管理」页面下,添加隧道:
  1. 选择隧道模式
    • 在「隧道模式」下拉框中,保持选择 「标准隧道」
  2. 选择隧道特性
    • 在「隧道特性」下拉框中,选择 「Raw」(默认透传模式)
  3. 配置协议与带宽
    • 隧道协议:选择 「TCP」
    • 带宽(Mbps):在输入框中填写所需的带宽数值(例如 1)
  4. 设置公网域名
    • 在「公网域名」选项中,点击选择 「自定义域名」
    • 在下方的「选择自定义域名」下拉框中,选择刚才添加的域名,例如 svnmt.hn.takin.cc:23690
  5. 选择公网 TCP 端口:
    • 选择刚才添加的 TCP 端口号
  6. 配置内网映射信息
    • 绑定设备:点击下拉框选择需要绑定的在线设备
    • 内网 IP:在输入框中填写内网 IP 地址,例如 127.0.0.1
    • 内网端口:在输入框中填写 SVN 容器映射的端口号 23690
  7. 完成添加
    • 点击右下角的 「确认」 按钮即可保存
创建成功之后,您就可以在隧道列表页面看到可访问的隧道。

第 4 步:连接 SVN 服务

使用 TortoiseSVN 客户端连接 SVN 服务器,输入公网域名地址和端口号 svnmt.hn.takin.cc:23690 即可连接。 提示:文档截图及示例中的域名、隧道地址可能与您当前实际使用的不一致,请以 ZeroNews 控制台显示的实际地址为准。