Windows系统搭建VisualSVN并结合内网穿透实现远程访问本地服务

文章目录

    • 前言
    • 1. VisualSVN安装与配置
    • 2. VisualSVN Server管理界面配置
    • 3. 安装cpolar内网穿透
      • 3.1 注册账号
      • 3.2 下载cpolar客户端
      • 3.3 登录cpolar web ui管理界面
      • 3.4 创建公网地址
    • 4. 固定公网地址访问

前言

SVN 是 subversion 的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,使得多个人可以共同开发同一个项目,实现共享资源,实现最终集中式的管理。Subversion作为一个通用的系统,可用来管理任何类型的文件,其中包括程序源码。

SVN与CVS一样,也是一个跨平台的软件,支持大多数常见的操作系统。本篇教程主要介绍SVN服务器在Windows平台上的安装和配置过程。与如何结合cpolar内网穿透工具,实现随时随地公网远程访问内网本地服务。

1. VisualSVN安装与配置

首先,到SVN的官方网站:https://www.visualsvn.com/downloads/ 下载服务端安装程序:

image-20230926143820244

下载好安装程序后,双击进入安装配置界面,点击Next进行下一步:

1695710420599

在我接受勾选框打勾,点击Next进入下一步:

1695710606246

默认当前选择,点击Next进入下一步:

1695710653508

本界面中有四个选项,除了端口外的其他三个选项都可以点击Browse进行路径修改:

Location:软件的安装位置,注意不要出现中文、空格或特殊字符。

Repositories:默认版本仓库位置,自己选择。

Server Port:端口号,443 或者 8443 都可以。

Backups:备份文件保存路径。

1695711353780

我这里选择了默认路径与端口,点击Next进入下一步:

1695711605782

不打钩,点击Next进入下一步:

1695711680382

默认第一个选项,点击Next进入下一步:

1695711743763

点击Install进行安装:

1695711892115

安装进度条走完后,点击Finish完成安装。

2. VisualSVN Server管理界面配置

点击Finsih后,会弹出SVN Server的管理界面,点击上方导航中的操作按钮,点击选项中的Properties

1695712428391

在打开的窗口中:

首先点击左侧的第三项:Network

然后点击右侧的Server name下方的选择框,输入服务器名称,这里我选择填写了localhost,也可以填写本地局域网的ip

服务端口默认选择:80

然后把下方使用安全连接的勾选取消,点击下方OK。

image-20230926151747661

然后点击左侧SVN服务下方的Users,右键选择新建user

1695713019078

在弹出的窗口中设置用户名和密码,并确认密码,点击OK

这里的用户名我选择了admin,密码选择了123456,大家可以自行设置

1695713289959

因为设置简单密码会显示下图弹窗,提示密码不符合长度或复杂性要求,本教程仅为演示,所以这里我选择点击继续设置此密码选项。

1695713511696

创建好新用户后,我们点击左侧SVN服务下方的Repositories,右键选择新建Repository(项目),点击Next进入下一步:

1695713876785

填写项目名称,这里我填写了共享文件,大家可以自定义填写,点击Next进入下一步:

1695713970790

默认选择即可,点击Next进入下一步:

1695714105340

默认选择即可,点击Next进入下一步:

1695714147950

打钩选项默认即可,点击Create开始创建:

1695714217070

点击Finish完成项目创建

1695714315998

此时,在浏览器输入localhost,在弹窗中输入刚才在SVN服务时配置的用户名admin和密码123456,点击登录

1695715162300

登录后,即可在本地局域网看到刚才在SVN创建的项目:共享文件

1695715327999

3. 安装cpolar内网穿透

此时VisualSVN Server已经成功登录并运行,不过只能在本地访问,如果打算在公网环境随时随时访问内网的VisualSVN服务,我们需要安装cpolar内网穿透工具来实现。

3.1 注册账号

进入cpolar官网:https://www.cpolar.com/

点击右上角的免费注册,使用邮箱免费注册一个cpolar账号并登录

20221117173301

3.2 下载cpolar客户端

登录成功后,点击下载cpolar到本地并安装(一路默认安装即可)本教程选择下载Windows版本。

20221117173307

3.3 登录cpolar web ui管理界面

在浏览器上访问127.0.0.1:9200,使用所注册的cpolar邮箱账号登录cpolar web ui管理界面(默认为本地9200端口)

20221117173316

3.4 创建公网地址

登录成功进入主界面后,我们点击左侧仪表盘的隧道管理——隧道列表,再点击创建隧道.

1695718676197

  • 隧道名称:可自定义命名,不能与已有的隧道名重复,这里我填写了svn

  • 协议:选择http

  • 本地地址:80

  • 域名类型:免费套餐选择随机域名

  • 地区:China Top

点击创建

1695719361633

此时,点击左侧状态中的在线隧道列表,可以看到刚才创建的svn隧道,生成了两个公网地址,有两种访问方式,分别是http 和https,随意复制一个地址,在公网电脑浏览器打开即可,如下图所示即代表成功实现公网访问本地内网的VisualSVN Server。

image-20230926171550179

4. 固定公网地址访问

需要注意的是,本次教程中使用的是免费cpolar所生成的公网随机临时地址,该地址24小时内会发生变化,对于需要长期在外网环境使用VisualSVN Server的用户来讲,配置一个固定地址就很有必要。

因此我们可以为其配置二级子域名,该地址为固定地址,不会随机变化【ps:cpolar.cn已备案】

注意需要将cpolar套餐升级至基础套餐或以上,且每个套餐对应的带宽不一样。【cpolar.cn已备案】

登录cpolar官网,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称。

1695721287104

以本次教程为例,地区选择China VIP,二级域名填写mysvn,描述填写svntest,点击保留

1695721584218

保留成功后复制保留的二级子域名地址,登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道:mysvn,点击右侧的编辑

1695722097556

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名mysvn
  • 地区:选择China VIP

点击更新

1695722164012

更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。

1695722230101

最后,我们使用固定的公网地址进行连接访问,复制二级子域名:http://mysvn.vip.cpolar.cn 到另一台公网电脑浏览器打开,无报错和连接异常,输入用户名密码后,可以看到连接成功,这样一个固定不变的地址访问就设置好了,您可以随时随地使用该域名来公网访问内网VisualSVN Server。

image-20230926175819144

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/270964.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

gin gorm学习笔记

代码仓库 https://gitee.com/zhupeng911/go-advanced.git https://gitee.com/zhupeng911/go-project.git 1. gin介绍 Gin 是使用纯 Golang 语言实现的 HTTP Web框架,Gin接口设计简洁,提供类似Martini的API,性能极高,现在被广泛使用…

《幸运的基督徒》Python

题目描述 有15个基督徒和15个非基督徒在海上遇险, 为了能让一部分人活下来不得不将其中15个人扔到海里面去, 有个人想了个办法就是大家围成一个圈,由某个人开始从1报数, 报到9的人就扔到海里面,他后面的人接着从1开始报…

XXE-XML实体注入漏洞

目录 1.xml基础 1.1什么是xml 1.2xml文档结构 1.3 什么是DTD 1.4 什么是实体 1.5 什么是外部实体 2.xxe漏洞 2.1xxe漏洞基本介绍 2.2xxe漏洞的危害 经典漏洞案例分析 3.xxe漏洞挖掘和利用 3.1. 识别潜在的XML入口 3.2. 检查XML处理逻辑 3.3. 构造试探Payload 常…

VMware永久授权终结,该如何转移阵地减少损失

2023年,随着VMware被博通(Broadcom)收购,VMware产品停止了永久订阅,仅以按年付费订阅的形式提供服务。这无疑是增加了客户在VMware的使用成本,也给VMware的未来带来众多不确定因素。 2024年2月Broadcom终止…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:PanGesture)

拖动手势事件,当滑动的最小距离超过设定的最小值时触发拖动手势事件。 说明: 从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 接口 PanGesture(value?: { fingers?: number; direction?: PanDir…

List之ArrayList、LinkedList深入分析

集合 Java 集合, 也叫作容器,主要是由两大接口派生而来:一个是 Collection接口,主要用于存放单一元素;另一个是 Map 接口,主要用于存放键值对。对于Collection 接口,下面又有三个主要的子接口&…

【Python刷题】环形链表

问题描述 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置&a…

论文阅读:SDXL Improving Latent Diffusion Models for High-Resolution Image Synthesis

SDXL Improving Latent Diffusion Models for High-Resolution Image Synthesis 论文链接 代码链接 介绍 背景:Stable Diffusion在合成高分辨率图片方面表现出色,但是仍然需要提高本文提出了SD XL,使用了更大的UNet网络,以及增…

MyBatis的#{}和${}:安全与灵活并存的SQL之道

MyBatis的#{}和${}:安全与灵活并存的SQL之道 MyBatis是一款广泛使用的Java持久化框架,提供了强大的SQL映射和数据库操作功能。在编写MyBatis的SQL语句时,我们经常会遇到#{}和${}两种不同的占位符语法。本文将详细解析#{}和${}的区别以及它们在…

今天面了一个来字节要求月薪23K,明显感觉他背了很多面试题...

最近有朋友去字节面试,面试前后进行了20天左右,包含4轮电话面试、1轮笔试、1轮主管视频面试、1轮hr视频面试。 据他所说,80%的人都会栽在第一轮面试,要不是他面试前做足准备,估计都坚持不完后面几轮面试。 其实&…

迭代器失效问题(C++)

迭代器失效就是迭代器指向的位置已经不是原来的含义了,或者是指向的位置是非法的。以下是失效的几种情况: 删除元素: 此处发生了迭代器的失效,因为erase返回的是下一个元素的位置的迭代器,所以在删除1这个元素的时候&…

JavaEE之volatile关键字

一.内存可见性问题 什么是内存可见性问题 计算机运行的程序/代码,往往需要访问数据。这些数据往往存在于内存中。 cup使用此变量时,就会把内存中的数据先读出来,加载到cpu寄存器中,再去参与运算。 但是,关键是cpu读…

MySQL 教程 2.4

MySQL UNION 操作符 本教程为大家介绍 MySQL UNION 操作符的语法和实例。 描述 MySQL UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合,并去除重复的行。 UNION 操作符必须由两个或多个 SELECT 语句组成,每个 SELECT 语句的列数…

【kubernetes】关于k8s集群如何将pod调度到指定node节点?

目录 一、k8s的watch机制 二、scheduler的调度策略 Predicate(预选策略) 常见算法: priorities(优选策略)常见的算法有: 三、k8s的标签管理之增删改查 四、k8s的将pod调度到指定node的方法 方案一&am…

P1308 [NOIP2011 普及组] 统计单词数

题目描述: 思路: 1、首先判断一下,此字符是不是字母,因为题目给出有可能有空格的存在,如果是字母,全部变成小写字母,这样方便后面比较 2、把文章全部变为字符串,用字符串数组来存&…

Pytorch学习 day05(RandomCrop、Transforms工具使用总结)

RandomCrop 将PIL或Tensor格式的输入图片,随机裁剪指定尺寸的部分输入尺寸可以为序列或单个整形数字代码如下: from PIL import Image from torchvision import transforms from torch.utils.tensorboard import SummaryWriterimg Image.open("i…

《剑指offer》76--删除链表中重复的结点[C++]

目录 题目: 思路: 贴代码: 代码输出 题目: 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,最后返回链表头指针。 如: 链表1->…

.Net6使用JWT认证和授权

文章目录 目的实现案例一.项目所需包:二.配置项目 appsettings.json 文件:三.创建Model文件夹,添加AppConfig类和UserRole类1.AppConfig类获取appsettings.json文件中的值2.UserRole类用于区分用户信息和权限 四.主体代码案例:1.L…

kasan排查kernel内存越界示例(linux5.18.11)

参考资料: 1,内核源码目录中的Documentation\dev-tools\kasan.rst 2,KASAN - Kernel Address Sanitizer | Naveen Naidu (naveenaidu.dev) 一、kasan实现原理 KASAN(Kernel Address SANitizer)是一个动态内存非法访…

C#与python交互(flask发送Get/Post请求)

先运行python,再运行C# **ps: 注意修改端口号**python发送Get/Post请求 # -*- coding: utf-8 -*- # Time : 2024/1/25 15:52 # Author : YY # File : post_test.py # Content:提交数据给客户端 from flask import Flask, request, jsonify, redirect…