在ubuntu系统安装SVN服务端,并通过客户端进行远程访问
文章目录
- 前言
- 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

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

创建版本库,执行如下系列命令
cd /opt
sudo mkdir svn
cd svn
sudo mkdir repository
创建好后输入以下命令创建仓库
sudo svnadmin create /opt/svn/repository

创建成功后我们repository目录下会发现一系列文件,其中:
- conf文件夹下是存放的配置文件,包括SVN用户名的权限、密码这些;
- db里面的包含我们上传到SVN服务器上面的文档、代码等数据的不同版本。
这里需要注意的是要对db文件夹释放权限,否则客户端可能无法连接SVN服务器。

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

2. 修改配置文件
首先修改repository文件下的conf这个文件夹里面的文件
2.1 修改svnserve.conf文件
这个文件里面主要设置我们的SVN访问方式.输入编辑命令:
sudo vim svnserve.conf
按i键进入编辑
解开四个参数的#号注释

然后按Esc键退出编辑,输入:wq保存退出
2.2 修改passwd文件
这个文件主要是添加用户名和密码,输入命令进入编辑:
sudo vim passwd
按i进行编辑
添加以下信息,账号密码可自行定义!

添加完成Esc键退出,输入:wq保存退出.
2.3 修改authz文件
这个文件主要是对登录用户的权限管理,输入以下命令进入编辑:
sudo vim authz
按i进行编辑
添加如下信息

然后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

- 向系统添加服务
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
点击创建

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

5. 测试公网访问
官方网站下载svn客户端:https://tortoisesvn.net/downloads.html

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

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

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

6. 配置固定公网TCP端口地址
由于以上使用cpolar所创建的隧道使用的是随机公网地址,该地址为随机临时地址,24小时内会发生变化,不利于长期远程访问。
为了更好的连接,我们可以为其配置二级子域名,该地址为固定地址,不会随机变化
需要注意,配置固定TCP端口地址需要将cpolar升级到专业版套餐或以上。【cpolar支持21天退款保证】
6.1 保留一个固定的公网TCP端口地址
登录cpolar官网,点击左侧的预留,选择保留的TCP地址,我们先来为远程SVN保留一个固定端口地址。
- 地区:选择China VIP
- 描述:即备注,可自定义填写
点击保留

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

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

修改隧道信息,将保留成功的固定tcp地址配置到隧道中
- 端口类型:修改为固定tcp端口
- 预留的tcp地址:填写保留成功的地址
点击更新

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

7. 使用固定TCP端口地址远程SVN服务
右键打开relocate

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

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

相关文章:
在ubuntu系统安装SVN服务端,并通过客户端进行远程访问
文章目录 前言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…...
STL函数对象-C++
1. 函数对象 1.1 函数对象概念 概念: 重载函数调用操作符的类,其对象常称为函数对象函数对象使用重载的 () 时,行为类似函数调用,也叫仿函数 本质: 函数对象(仿函数)是一个类,不…...
Ubuntu 设置Nginx开机自启
1.建立自启动服务文件 vim /usr/lib/systemd/system/nginx.service Descriptionnginx - high performance web server Afternetwork.target remote-fs.target nss-lookup.target [Service] Typeforking ExecStart/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx…...
npm中的npx命令
1.概念 npx是一个执行npm软件包的二进制文件,通俗的讲,他可以执行npm的一些指令。 2.示例 用babel将ES6语法转为ES5语法 npx babel src/js -d dist/js会执行babel的相关功能,如果没有安装,也会自动安装。 当在执行npx <co…...
python绘制Z形图 青少年电子学会等级考试 中小学生python编程等级考试一级真题答案解析2023年5月
目录 python绘制Z形图 一、题目要求 二、算法分析 三、程序代码...
conda环境下module ‘PIL.Image‘ has no attribute ‘ANTIALIAS‘
1 问题描述 在训练语音模型时,出现如下错误: Traceback (most recent call last):File "/opt/Bert-VITS2-2.0.2.1/train_ms.py", line 660, in <module>run()File "/opt/Bert-VITS2-2.0.2.1/train_ms.py", line 282, in run…...
蓝桥杯每日一题2023.11.26
题目描述 奖券数目 - 蓝桥云课 (lanqiao.cn) 将每一个数字进行一一枚举,如果检查时不带有数字4则答案可以加1 #include<bits/stdc.h> using namespace std; int ans; bool check(int n) {while(n){if(n % 10 4)return false;n / 10; }return true; } int m…...
Centos 7.9 Install Docker Insecure Registry
文章目录 1. 镜像存储规划2. 安装定制 docker3. 部署 registry4. 验证镜像仓库 1. 镜像存储规划 linux LVM /dev/sdb mount dir /data【linux LVM 磁盘挂载目录】 创建两个目录 一个 docker 数据存储目录 :/data/docker,默认一般为linux为 /var/lib/d…...
探秘网络通信:UDP与TCP/IP的奥秘
**> 🎏:你只管努力,剩下的交给时间 🏠 :小破站 探秘网络通信:UDP与TCP/IP的奥秘 前言第一:UDP基础概念UDP的基础概念:UDP的特点和优势UDP与TCP/IP的关系 工作原理1. 无连接性和面…...
Docker的学习笔记
1.1 docker的介绍 1.2 docker的一次安装 //如果是root用户,不加sudo也行curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/gpg | sudo apt-key add -echo deb https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/ buster stable…...
解析直播第三方美颜SDK:技术原理与应用
时下,直播平台和主播们纷纷引入美颜技术,以提升视觉效果和用户体验。而在众多美颜技术中,直播第三方美颜SDK成为许多开发者和平台的首选,因其灵活性和高效性而备受推崇。 一、技术原理:美颜算法的精髓 第三方美颜SDK…...
线程基本方法
1。设置线程名 继承Thread类的线程,可以直接使用.setName()方法,设置线程名。也可以使用构造方法,需要注意java默认不继承构造方法,所以需要自己调用下父类的构造方法。 public class Demo {public static void main(String[…...
Linux操作系统 1.初识Linux
一、Linux学习大致内容 二、操作系统概述 操作系统的作用: 常见操作系统: 1、pc(电脑端):windows、Linux、MacOS 2、移动端:Android、ios、鸿蒙系统 总结 1.计算机由哪两个部分组成?、 硬件…...
分布式事务-两阶段提交2PC
2PC协议就是两阶段提交,用来解决分布式事务,分为两个阶段,分别为Prepare和Commit,也是PC由来。 第一阶段Prepare 提交事务请求 如图所示,主要流程有以下三个方面 询问:事务协调者(Manager)向所有的事务参与…...
初识Spring (Spring 核心与设计思想)
文章目录 什么是 Spring什么是容器什么是 IoC理解 Spring IoCDI 概念 什么是 Spring Spring 官网 官方是这样说的: Spring 让每个人都能更快、更轻松、更安全地进行 Java 编程。春天的 专注于速度、简单性和生产力使其成为全球最受欢迎Java 框架。 我们通常所说的 Spring 指的…...
智能优化算法应用:基于教与学算法无线传感器网络(WSN)覆盖优化 - 附代码
智能优化算法应用:基于教与学算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于教与学算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.教与学算法4.实验参数设定5.算法结果6.参考文献7.…...
Bitcoin SV 和 Bitcoin Core 之间首次跨链原子交换
我们已经执行了 Bitcoin SV 和 Bitcoin Core 之间的首次原子交换。 这一成就代表了比特币 SV 的重大进步,以去信任的方式促进了与其他区块链的无缝互操作性。 图片源自Gemini 在上一篇文章中,我们解释了原子交换的高级理论。 我们深入研究了使用哈希时间…...
RT-DETR改进 | 2023 | InnerEIoU、InnerSIoU、InnerWIoU、InnerDIoU等二十余种损失函数
论文地址:官方Inner-IoU论文地址点击即可跳转 官方代码地址:官方代码地址-官方只放出了两种结合方式CIoU、SIoU 本位改进地址: 文末提供完整代码块-包括InnerEIoU、InnerCIoU、InnerDIoU等七种结合方式和其AlphaIoU变种结合起来可以达到二十…...
JDBC编程基础
JDBC编程基础 JDBC介绍创建JDBC项目的步骤1.引入依赖2.注册驱动3.获取数据库连接4.获取sql执行对象 JDBC 常用 API 详解sql执行对象PreparedStatement作用 事务管理结果集对象 JDBC项目demo测试 JDBC介绍 每个数据库都会提供一组API来支持程序员实现自己客户端,自己…...
Linux shell命令
Linux shell命令 1、Shell简介 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。 Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问…...
S2-Pro与JDK1.8环境适配:企业老旧系统集成AI能力指南
S2-Pro与JDK1.8环境适配:企业老旧系统集成AI能力指南 1. 引言 "我们的核心业务系统还在用JDK1.8,能接入最新的AI能力吗?"这是很多技术负责人面临的现实困境。据统计,全球仍有超过65%的企业应用运行在Java 8环境中&…...
Virtuoso新手必看:tsmcN65工艺库安装避坑指南(从下载到验证)
Virtuoso新手必看:tsmcN65工艺库安装避坑指南(从下载到验证) 在集成电路设计领域,工艺库的安装是每位工程师必须掌握的基础技能。对于刚接触Cadence Virtuoso的新手来说,tsmcN65这样的先进工艺库安装过程往往充满挑战…...
Z-Image-Turbo_Sugar脸部Lora与Transformer架构浅析:理解其背后的AI原理
Z-Image-Turbo_Sugar脸部Lora与Transformer架构浅析:理解其背后的AI原理 最近在玩AI画图的朋友,可能都听说过各种“Lora”模型,比如专门画特定风格、特定角色的。今天咱们就来聊聊其中一个挺有意思的模型——Z-Image-Turbo_Sugar脸部Lora。这…...
REX-UniNLU C++高性能集成:模型推理加速方案
REX-UniNLU C高性能集成:模型推理加速方案 1. 为什么在C里跑NLU模型是个现实需求 很多做企业级文本处理的朋友都遇到过类似情况:业务系统用C写的,性能要求高、响应要快、不能随便加新语言栈。这时候突然需要接入一个中文NLP能力——比如从客…...
Qwen3.5-9B-AWQ-4bit生产环境落地:CSDN GPU平台一键部署与服务管理手册
Qwen3.5-9B-AWQ-4bit生产环境落地:CSDN GPU平台一键部署与服务管理手册 1. 平台与模型介绍 Qwen3.5-9B-AWQ-4bit是一个支持图像理解的多模态模型,能够结合上传图片与文字提示词,输出中文分析结果。这个量化版本特别适合在生产环境中部署&am…...
从零部署Granite TimeSeries FlowState R1:Linux服务器环境保姆级配置指南
从零部署Granite TimeSeries FlowState R1:Linux服务器环境保姆级配置指南 最近在折腾时间序列预测项目,需要找一个既专业又能在生产环境稳定运行的模型。试了几个方案后,最终锁定了Granite TimeSeries FlowState R1。这名字听起来有点复杂&…...
5分钟搞定OpenClaw+Qwen3.5-9B:飞书机器人配置指南
5分钟搞定OpenClawQwen3.5-9B:飞书机器人配置指南 1. 为什么选择OpenClawQwen3.5-9B组合 上周我在团队内部尝试用OpenClaw对接Qwen3.5-9B模型搭建飞书机器人时,意外发现这个组合特别适合小团队的轻量化需求。相比直接调用商业API,本地部署的…...
OpenClaw技能开发指南:为Phi-3-vision-128k-instruct定制多模态自动化流程
OpenClaw技能开发指南:为Phi-3-vision-128k-instruct定制多模态自动化流程 1. 为什么需要为特定模型开发OpenClaw技能? 去年夏天,我接手了一个数据分析项目,需要每周手动从上百张仪表盘截图里提取数字并整理成Excel报表。这种重…...
PCL快速部署指南:Ubuntu20下APT安装与版本管理技巧
1. 为什么选择APT安装PCL? 第一次接触点云库PCL的朋友,可能会被它的依赖关系吓到。我自己刚开始折腾的时候,光是解决VTK、FLANN这些依赖项的版本冲突就花了两天时间。后来发现,对于大多数应用场景来说,直接用Ubuntu的…...
uniapp实战:ucharts饼图点击事件全解析(附跳转页面实现)
uniapp实战:ucharts饼图点击事件全解析(附跳转页面实现) 在移动端H5开发中,数据可视化图表的交互体验直接影响用户感知。最近接手一个uniapp项目时,发现ucharts的饼图交互存在几个关键痛点:如何区分图例点…...
