如何在Linux系统安装SVN并配置固定公网地址远程访问【内网穿透】

news2025/1/10 10:36:18

文章目录

  • 前言
  • 1. Ubuntu安装SVN服务
  • 2. 修改配置文件
    • 2.1 修改svnserve.conf文件
    • 2.2 修改passwd文件
    • 2.3 修改authz文件
  • 3. 启动svn服务
  • 4. 内网穿透
    • 4.1 安装cpolar内网穿透
    • 4.2 创建隧道映射本地端口
  • 5. 测试公网访问
  • 6. 配置固定公网TCP端口地址
    • 6.1 保留一个固定的公网TCP端口地址
    • 6.2 配置固定公网TCP端口地址
  • 7. 使用固定TCP端口地址远程SVN服务

前言

由于文档资料越来越多,将所有资料都存放在自己的电脑上容易混淆,并且也不利于分享。这种情况下,考虑将资料上传SVN统一管理,这样一来其他人也能很方便的查略各种资料。

当SVN安装在局域网内的话,想要远程访问资料库或者代码将会受到限制,为了能从公共网络访问内网SVN资料库,[cpolar](cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站)能很好的解决这一需求,cpolar是一个能把内网服务暴露至公网进行访问的工具。

SVN分为服务端和客户端,服务端主要是做数据资料存储,客户端主要是图形化工具连接服务端获取服务端数据资料,下面介绍在ubuntu系统安装服务端,在通过客户端远程访问。

1. Ubuntu安装SVN服务

命令行输入安装命令:

sudo apt install subversion

20230131111701

查看svn版本,出现版本信息表示安装成功:

svnserve --version

20230131111702

创建版本库,执行如下系列命令

cd /opt
sudo mkdir svn
cd svn
sudo mkdir repository

创建好后输入以下命令创建仓库

sudo svnadmin create /opt/svn/repository

20230131111703

创建成功后我们repository目录下会发现一系列文件,其中:

  • conf文件夹下是存放的配置文件,包括SVN用户名的权限、密码这些;
  • db里面的包含我们上传到SVN服务器上面的文档、代码等数据的不同版本。

这里需要注意的是要对db文件夹释放权限,否则客户端可能无法连接SVN服务器。

20230131111704

输入以下命令,对db文件夹释放权限,释放成功后db文件夹会变成绿色

sudo chmod -R 777 db

20230131111705

2. 修改配置文件

首先修改repository文件下的conf这个文件夹里面的文件

2.1 修改svnserve.conf文件

这个文件里面主要设置我们的SVN访问方式.输入编辑命令:

sudo vim svnserve.conf

i键进入编辑
解开四个参数的#号注释

202301311117063

然后按Esc键退出编辑,输入:wq保存退出

2.2 修改passwd文件

这个文件主要是添加用户名和密码,输入命令进入编辑:

sudo vim passwd

i进行编辑

添加以下信息,账号密码可自行定义!

20230131111707

添加完成Esc键退出,输入:wq保存退出.

2.3 修改authz文件

这个文件主要是对登录用户的权限管理,输入以下命令进入编辑:

sudo vim authz

i进行编辑
添加如下信息

20230131111708

然后Esc键退出编辑,输入:wq保存退出

3. 启动svn服务

输入以下命令启动svn

sudo svnserve -d -r /opt/svn/

4. 内网穿透

上面我们在本地Ubuntu虚拟机安装了svn服务端,但目前只能在局域网络下访问,如离开了局域网将无法连接svn。不过我们可以通过cpolar来实现公网访问,突破局域网的限制,不需要公网IP,不需要设置路由器。

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

4.1 安装cpolar内网穿透

  • 支持一键脚本安装命令
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • token认证

登录cpolar官网后台,点击左侧的验证,查看自己的认证token,之后将token贴在命令行里:

cpolar authtoken xxxxxxx

20230206171248

  • 向系统添加服务
sudo systemctl enable cpolar
  • 启动cpolar服务
sudo systemctl start cpolar

4.2 创建隧道映射本地端口

成功启动cpolar服务后,我们在浏览器上访问本地9200端口【http://127.0.0.1:9200 】,登录cpolar web UI管理界面。

登录成功后,点击左侧仪表盘的隧道管理——创建隧道,创建一个tcp协议的隧道指向本地3690端口:

  • 隧道名称:可自定义,注意不要与已有的隧道名称重复
  • 协议:tcp
  • 本地地址:3690
  • 域名类型:免费选择随机域名
  • 地区:选择China VIP

点击创建

20230131111709

隧道创建成功后,点击左侧的状态——在线隧道列表,可以看到,刚刚创建的隧道已经有生成了相应的公网地址,将其复制下来

20230131111710

5. 测试公网访问

官方网站下载svn客户端:https://tortoisesvn.net/downloads.html

20230131111711

SVN安装完在桌面鼠标右键,点击svncheckout,输入我们复制的cpolar公网地址,然后点击ok

20230131111712

输入我们前面创建的账号密码

20230131111713

接着右键,这时候出现svn update,点击,没有出现error即连接成功

20230131111714

6. 配置固定公网TCP端口地址

由于以上使用cpolar所创建的隧道使用的是随机公网地址,该地址为随机临时地址,24小时内会发生变化,不利于长期远程访问。

为了更好的连接,我们可以为其配置二级子域名,该地址为固定地址,不会随机变化

需要注意,配置固定TCP端口地址需要将cpolar升级到专业版套餐或以上。【cpolar支持21天退款保证】

6.1 保留一个固定的公网TCP端口地址

登录cpolar官网,点击左侧的预留,选择保留的TCP地址,我们先来为远程SVN保留一个固定端口地址。

  • 地区:选择China VIP
  • 描述:即备注,可自定义填写

点击保留

20230131111715

地址保留成功后,系统会生成相应的固定公网地址,将其复制下来

20230131111716

6.2 配置固定公网TCP端口地址

在浏览器上访问9200端口,http://127.0.0.1:9200/,登录cpolar web ui管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到svn隧道,点击右侧的编辑

20230131111717

修改隧道信息,将保留成功的固定tcp地址配置到隧道中

  • 端口类型:修改为固定tcp端口
  • 预留的tcp地址:填写保留成功的地址

点击更新

20230131111718

隧道更新成功后,点击左侧仪表盘的状态——在线隧道列表,找到我的世界隧道,可以看到公网地址已经更新成为了固定tcp地址。

20230131111719

7. 使用固定TCP端口地址远程SVN服务

右键打开relocate

20230131111720

修改连接地址,改为固定tcp的地址,修改完点击OK

20230131111721

接着右键svn update,点击,没有出现error即连接成功

20230131111722

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024-03-11,12(HTML,CSS)

1.HTML的作用就是在浏览器摆放内容。 2.HTML基本骨架 head:网页头部,是给浏览器看的代码,例如CSS body:网页主体,是给用户看的代码,例如图片,文字。 title:网页标题 3.标签的两种…

Redis中set,zset

集合类型set中的数据是无序的,不能重复的 SET SADD key value [value....] 将一个或者多个元素添加到集合set中,重复的元素是无法进行添加的 返回值为添加成功的数字smembers key 获取set中所有的元素,返回元素的顺序是无序的sismember key…

React Hooks 那些事儿

翻了波之前写的文章还有笔记,发现关于前端的文章并不多(好歹也划水做过点前端开发)。巧了,最近没什么好话题可写,做下 React Hooks 学习笔记吧。 Effect Hook 不得不说 Hook 的出现降低了我们在 React 中处理副作用&…

【漏洞复现】SpringBlade error/list SQL 注入漏洞

免责声明:文章来源互联网收集整理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该…

定时执行专家 —— 让工作更高效,生活更便捷

在现代社会,高效的时间管理已经成为我们工作和生活中不可或缺的一部分。为了实现这一目标,我们经常会借助各种工具和软件来辅助我们完成定时任务。今天,我要为大家介绍一款功能强大、操作简便的定时任务执行软件——《定时执行专家》。这款软…

上海计算机学会 2023年11月月赛 丙组T5 推箱子(数学 思维 排序)

第五题:T5推箱子 标签:排序、数学、思维题意:给定 t t t组数据,每组数据给定长度为 n n n的字符串, 表示箱子, _ \_ _表示空格,求把箱子都推到一起(即两两箱子之间没有空格&#…

idea+maven+tomcat+spring 创建一个jsp项目

概述:我真服了,这个垃圾学校还在教jsp,这种技术我虽然早会了,但是之前搞的大多都是springboot web类型的,这里我就复习一下,避免以后忘记这种垃圾技术 第一步:创建maven项目 第二步&#xff1a…

Leetcode 3.12

leetcode hot 100 链表1.两两交换链表中的节点2.随机链表的复制3.排序链表 链表 1.两两交换链表中的节点 两两交换链表中的节点 1.必须要设置一个dummy (temp) 结点2.保存第二个节点3.先让第一个节点指向第三个节点4.再让第二个节点指向第一个节点5.最后让dummy指向第二个节点…

基于深度学习的番茄叶片病害检测系统(含UI界面、yolov8、Python代码、数据集)

项目介绍 项目中所用到的算法模型和数据集等信息如下: 算法模型:     yolov8 yolov8主要包含以下几种创新:         1. 可以任意更换主干结构,支持几百种网络主干。 数据集:     网上下载的数据集&#x…

宏景eHR downlawbase SQL注入漏洞复现

0x01 产品简介 宏景eHR人力资源管理软件是一款人力资源管理与数字化应用相融合,满足动态化、协同化、流程化、战略化需求的软件。面向复杂单组织或多组织客户,支持流程,B/S架构。特别适合集团化管理和跨地域使用的产品,融合了最新的互联网技术和先进的人力资源管理理念和实…

浏览器与服务器通信过程(HTTP协议)

目录 1 概念 2 常见的 web 服务器有 3 浏览器与服务器通信过程 3.1 DNS 3.2 URL 4 HTTP请求方法和应答状态码 4.1 HTTP请求报文段实例 4.2 HTTP请求方法 5 HTTP应答报头和应答状态 5.1 HTTP的应答报头结构 5.2 HTTP的应答状态 1 概念 浏览器与 web 服务器在应用层通…

【DAY11 软考中级备考笔记】数据结构 查找和排序

数据结构 查找和排序 3月12日 – 天气:晴 1. 顺序查找 顺序查找就是简单的从头一个一个的进行比较,注意它的平均查找长度 2. 折半查找 折半查找和二叉排序树一致: 优点:查找效率很高 缺点:要求必须是循序存储并且表中…

UVC 设备框架在 Linux 4.15 内核的演变

1. 概述 发现之前的uvc框架和现在的还是有一些差别的(比如从videobuf 过渡到videobuf2),写个blog记录一下,方便以后查询,我的内核版本:Linux 4.15 UVC(USB Video Class)设备框架是…

Shadertoy内置函数系列 - mod 取模运算

mod函数返回x % 3的结果 先看一个挑战问题题目: Create a pattern of alternating black and red columns, with 9 columns of each color. Then, hide every third column that is colored red.The shader should avoid using branching or conditional statemen…

jeecg 项目 springcloud 项目有一个模块 没加载进来 只需要 把这个模块放到 可以加载到模块的位置 刷新依赖

springcloud 项目有一个模块 没加载进来 只需要 把这个模块放到 可以加载到模块的位置 刷新依赖

docker+elasticsearch

一,环境准备:安装docker(往期文章) 二,elasticsearch简介: 用于储存数据 三,部署: 1),拉取镜像 使用本作者提供的java17镜像 2),…

刷题日记——01字符串、非素数个数(厦门大学机试)

题目1——01字符串 分析 经过拆解找规律&#xff0c;发现是两个斐波那契 那么代码就好写了呀 #include <stdio.h>unsigned long long f(int n){if(n0||n1){return n;}return (f(n-1)f(n-2))%2333333; }int main(){int n;scanf("%d",&n);printf("%…

服务器段的连接端口和监听端口编程实现

new ServerSocket(int)是开启监听端口&#xff0c;并不是连接端口。真正的连接端口是随机开辟的空闲端口&#xff0c;当连接创建完成后&#xff0c;监听关口可以继续等待下一次连接请求&#xff0c;处于空闲等待状态。 编程实现方式 1 、主线程一直处于阻塞等待状态&#xff0c…

【功能大全】手机短信验证码一键注册登录流程

目录 发送验证码 注册登录 用户表设计 ​编辑申请腾讯云短信与密钥 找到云短信服务 开通腾讯云短信服务 ​编辑​​​​​创建短信签名 ​编辑​编辑创建短信正文模版​编辑​编辑 等待审核 测试短信​编辑 SDK密钥创建 SpringBoot集成腾讯云短信 pom中导入腾讯云短…

Unity 显示MeshRenderer的渲染层级

Unity 显示MeshRenderer的渲染层级 前言源码MeshRendererInspectorSkinnedMeshRendererInspector 参考 前言 Mesh Renderer和Skinned Mesh Renderer组件默认不显示Order&#xff0c;找了个工具显示一下。 源码 下面两个代码放入Editor文件夹中 MeshRendererInspector Me…