在ubuntu系统安装SVN服务端,并通过客户端进行远程访问

news2024/12/22 20:00:54

文章目录

  • 前言
  • 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/1261237.html

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

相关文章

浅谈基于EIoT能源物联网的工厂智能照明系统应用改造

【摘要】:随着物联网技术的发展,许多场所针对照明合理应用物联网照明系统,照明作为工厂的重要能耗之一,工厂的照明智能化控制,如何优化控制、提高能源的利用率,达到节约能源的目的。将互联网的技术应用到工…

使用jenkins和tomcat创建并部署maven项目

准备三台服务器: 192.168.58.139 部署tomcat 详细参照:http://t.csdnimg.cn/Yp2z2 192.168.58.140 部署gitlab 详细参照:http://t.csdnimg.cn/Sb1uz 192.168.58.153 部署Jenkins 详细参照…

AT89S52单片机------中断系统

目录 单片机的内部结构 中断请求标志寄存器 (1)TCON寄存器 (2)SCON寄存器 (3)定时器2的控制寄存器T2CON 中断允许与中断优先级的控制寄存器 中断允许寄存器IE 中断优先级寄存器IP 响应中断请求的条件 外部中断响应时间 外部中断的触发方式选择 中断请求的撤销 1.定…

小程序域名SSL证书的重要性

1. 数据安全 小程序中可能涉及用户的个人信息、支付信息等敏感数据,而未加密的通信容易受到中间人攻击。通过使用SSL证书,所有数据在传输过程中都会被加密,确保用户信息不被窃取或篡改。 2. 用户信任 浏览器和操作系统对使用SSL证书的网站…

【java】编译时bug 项目启动前bug合集

文章目录 1. jdk8中 Optional orElseThrow 编译时报错java: 未报告的异常错误X; 必须对其进行捕获或声明以便抛出2. 启动项目时提示 Error running Application: Command line is too long. Shorten command line for Application or also for Spring Boot default configurati…

代码随想录算法训练营 ---第四十六天

第一题: 简介: 本题的重点在于确定背包容量和物品数量 确定dp数组以及下标的含义 dp[i] : 字符串长度为i的话,dp[i]为true,表示可以拆分为一个或多个在字典中出现的单词。 2.确定递推公式 如果确定dp[j] 是true,且…

Arch Linux 安装 dwm 窗口管理器

窗口管理器是管理桌面上各种窗口的组件,主要功能有:窗口堆叠方式,窗口移动规则等。大多数人接触到的是堆叠式窗口管理器,一个窗口可以叠放在其他窗口之上,调整窗口的主要方式是鼠标。而dwm(Dynamic Window …

32 - MySQL调优之事务:高并发场景下的数据库事务调优

数据库事务是数据库系统执行过程中的一个逻辑处理单元,保证一个数据库操作要么成功,要么失败。谈到他,就不得不提 ACID 属性了。数据库事务具有以下四个基本属性:原子性(Atomicity)、一致性(Con…

深入了解PBKDF2加密技术:原理与实践

摘要:本文详细介绍了PBKDF2(Password-Based Key Derivation Function 2)加密技术,包括其原理、算法流程和实际应用,旨在帮助读者更好地理解这一重要的加密方法。 PBKDF2在线加密 -- 一个覆盖广泛主题工具的高效在线平…

算法通关村第十二关-黄金挑战字符串冲刺题

最长公共前缀 描述 : 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 题目 : LeetCode 14.最长公共前缀 : 分析 : 第一种方式,我们可以竖着比较,如图所示,每前进一个位置就…

css实现鼠标移入背景图片变灰并浮现文字的效果

首先上效果图 说明一下我的html结构 如上图是一个div包裹的img标签, div的块大小width, height 自己定义, 我说明一下核心样式代码 下面写法是scss, 请自行替换 .web-query-image {position: relative; // 相对定位, 方便浮现文案进行绝对定位border-radius: 8px;box-sizing: …

MySQL安装与配置教程

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

14、矩阵键盘

矩阵键盘介绍 在键盘中按键数量越多时,为了减少I/O口的占用,通常将按键排列成矩阵形式 采用逐行或逐列的“扫描”,就可以读出任何位置按键的状态 扫描的概念 数码管扫描(输出扫描) 原理:显示第1位—&g…

【力扣】907.子数组的最小值之和

【力扣】907.子数组的最小值之和 文章目录 【力扣】907.子数组的最小值之和1. 题目介绍2. 解法2.1 方法一:单调栈2.2 方法二:动态规划 3. Danger参考 1. 题目介绍 给定一个整数数组 arr,找到 min(b) 的总和,其中 b 的范围为 arr …

蓝桥杯第100 题 九宫幻方 DFS 全排列 C++ 解题思维

题目 九宫幻方https://www.lanqiao.cn/problems/100/learning/?page1&first_category_id1&name%E4%B9%9D 思路和解题方法 一 (DFS) 首先,定义了一些全局变量和数组。vis数组用于标记已经出现过的数字,a数组用于存储数独的初始状态…

A start job is running for Hold unt…s up (1d 18h 52min 25s / no limit) 如何去掉

在host串口里一直出现打印 A start job is running for Hold unt…s up (1d 18h 52min 25s / no limit) 这个是有一个进程一直在执行中,那么是什么呢?因为我的host通过SSH连接后就可以进入host shell界面了。那这个线程是什么程序导致的呢? …

Windows全系列 本地密码暴力破解

首先 咱们要准备两个工具: 第一个是 pwdump-master 第二个是 saminside_softradar-com.exe这两个工具 我会一并上传 需要的同学 可以自取本文章操作思路是: 第一步 首先把我刚刚提到的两个软件 以某种手段放置于机器中 如果是真实机 就用U盘 拷贝到真实机…

力扣 hot100 最小覆盖子串 滑动窗口 字符计数

&#x1f468;‍&#x1f3eb; 题目地址 &#x1f37b; AC code class Solution {public String minWindow(String s, String t){int n s.length();int m t.length();if (n < m)return "";char[] tt t.toCharArray();int[] cnt new int[128];// 字符计数数组…

NOIP2007提高组第二轮T3:矩阵取数游戏

题目链接 [NOIP2007 提高组] 矩阵取数游戏 题目描述 帅帅经常跟同学玩一个矩阵取数游戏&#xff1a;对于一个给定的 n m n \times m nm 的矩阵&#xff0c;矩阵中的每个元素 a i , j a_{i,j} ai,j​ 均为非负整数。游戏规则如下&#xff1a; 每次取数时须从每行各取走一…

【扩散模型】DDIM从原理到实战

DDIM从原理到实战 1. DDIM简介2. 实战DDIM2.1 载入一个预训练过的pipeline2.2 DDIM采样2.3 反转&#xff08;invert&#xff09; 3. 组合封装参考资料 DDPM过程的一个问题是在训练后生成图像的速度。当然&#xff0c;我们可能能够生成令人惊叹的图像&#xff0c;但生成一张图像…