如何通过内网穿透实现远程访问本地Linux 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

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.mfbz.cn/a/270871.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Nature | 大型语言模型(LLM)能够发现和产生新知识吗?

大型语言模型(LLM)是基于大量数据进行预训练的超大型深度学习模型。底层转换器是一组神经网络,这些神经网络由具有自注意力功能的编码器和解码器组成。编码器和解码器从一系列文本中提取含义,并理解其中的单词和短语之间的关系。通…

python 通过opencv及face_recognition识别人脸

效果: 使用Python的cv2库和face_recognition库来进行人脸检测和比对的 0是代表一样 认为是同一人。 代码: pip install opencv-python pip install face_recognition# 导入cv2库,用于图像处理 import cv2 # 导入face_recognition库&#…

跨域 - CORS跨域资源共享介绍

目录 1,介绍2,简单请求判定交互规范 3,非简单请求交互规范1,发送预检请求2,预检请求响应3,浏览器发送真实的请求,服务器完成真实的响应。 附带身份凭证 相关内容: 浏览器同源策略和跨…

C# WPF上位机开发(MySql访问)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 前面我们学习了数据库sqlite,不过这是一种小型的数据库,作为内部使用还可以。但是,如果要与外面的其他供应商进…

doris数据模型,06-Aggregate(聚合模型)

聚合模型的特点 将表中的列分为Key和Value。 Key是数据的维度列,比如时间,地区等等。key相同时会发生聚合。 Value是数据的指标列,比如点击量,花费等等。 每个指标列还会有自己的聚合函数,如:sum&#xff…

路由器常见故障分析及处理方法!

对当前的大多数网络来说,无论是实现网络互连还是访问Internet,路由器是不可或缺的。 由于路由器的重要性,对它的管理就成了维护人员的日常工作中重要的一部分,而路由器的故障分析和排除也是令许多维护人员极为困扰的问题之一。 路…

蓝牙物联网在智慧医疗中的应用

物联网技术开启了万物互联的时代,并且随着智慧城市建设的加速推进及物联网技术对各行业的逐步渗透,“智慧”概念应运而生,诸如智慧能源、智慧交通、智慧医疗等“遍地开花”,可以说,物联网技术给各行业带来了产业模式上…

asp.net core 教程

asp.net core 教程 写在前面新建项目Get和PostGETPOST MVC-模型控制视图如何通俗理解MVC代码实例 API模型(前后端分离)前端代码后端代码 文件配置优先级优先级顺序 从数据库读取配置文件数据缓存 写在前面 学了快一年多的C#了! 我最开始学的…

【数据结构入门精讲 | 第五篇】栈知识点及考研408、企业面试练习

在上一篇中我们进行了表的专项练习,在这篇文章中我们将介绍栈的相关知识点。 目录 基础概念顺序栈链栈判断题选择题填空题函数题R6-1 在一个数组中实现两个堆栈 编程题R7-1 汉诺塔的非递归实现R7-2 表达式转换R7-3 出栈序列的合法性R7-4 包装机R7-1 彩虹瓶 基础概念…

QT TCP通信:用QT制作一个TCPServer与TCPClient的通信

文章目录 前言1. TCP通信原理和流程阐述1.1 TCP 通信原理简述1.2 TCP服务端建立与通信流程1.3 TCP客户端通信流程 2. 关键源码阐述2.1 服务端代码2.2 客户端代码 总结 前言 之前项目上用到了TCP通信,作为TCP的服务端上位机与下位机进行控制信号传输。 这篇博客就对…

<meta name=“Keywords“ content=““ >、<meta name=“Description“ content=““ > 等用法解释

今天在看网站代码&#xff0c;发现类似<meta name"Keywords" content"" >、<meta name"Description" content"" >这样的写法&#xff0c;不知道具体代表什么意思&#xff0c;于是上网搜了一下&#xff0c;下面是在网上找到…

【Linux--信号】

目录 一、信号的概念1.1查看系统的信号1.2信号的处理方式 二、信号的产生方式2.1通过终端按键2.2kill命令2.3系统调用2.4软条件产生信号2.5硬件异常产生信号 三、信号的保存3.1概念的认识3.2sigset_t3.3信号集操作函数3.4sigprocmask && sigpending3.4.1sigprocmask3.4…

Java基础回顾——JDBC

文章目录 介绍使用JDBC事务JDBC BatchJDBC连接池 介绍 Java为关系数据库定义了一套标准的访问接口&#xff1a;JDBC&#xff08;Java Database Connectivity&#xff09; JDBC是Java程序访问数据库的标准接口 好处&#xff1a; 各数据库厂商使用相同的接口&#xff0c;Java…

udp广播的例子

以下是一个使用C语言描述广播发送和接收的简单示例&#xff1a; 发送端&#xff08;广播发送&#xff09;&#xff1a; #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/socket.h> #include <netinet/in.h> #inclu…

西南科技大学计算机网络实验二 (IP协议分析与以太网协议分析)

一、实验目的 通过分析由跟踪执行traceroute程序发送和接收捕获得到的IP 数据报,深入研究在IP 数据报中的各种字段,理解IP协议。基于ARP命令和Ethereal进行以太网帧捕获与分析,理解和熟悉ARP协议原理以及以太网帧格式。 二、实验环境 与因特网连接的计算机网络系统;主机操…

往年面试精选题目(前50道)

常用的集合和区别&#xff0c;list和set区别 Map&#xff1a;key-value键值对&#xff0c;常见的有&#xff1a;HashMap、Hashtable、ConcurrentHashMap以及TreeMap等。Map不能包含重复的key&#xff0c;但是可以包含相同的value。 Set&#xff1a;不包含重复元素的集合&#…

使用pytorch神经网络拟合计算模型

一. 内容简介 python调用百度翻译api&#xff0c;将中文论文翻译英文&#xff0c;并保留部分格式 二. 软件环境 2.1vsCode 2.2Anaconda version: conda 22.9.0 2.3数据文件 链接&#xff1a;https://pan.baidu.com/s/1csJOoErGyx77MW_FImVKjg?pwd1234 三.主要流程 3.…

Spring Boot整合MyBatis-Plus框架快速上手

最开始&#xff0c;我们要在Java中使用数据库时&#xff0c;需要使用JDBC&#xff0c;创建Connection、ResultSet等&#xff0c;然后我们又对JDBC的操作进行了封装&#xff0c;创建了许多类似于DBUtil等工具类。再慢慢的&#xff0c;出现了一系列持久层的框架&#xff1a;Hiber…

HBase 超大表迁移、备份、还原、同步演练手册:全量快照 + 实时同步(Snapshot + Replication)不停机迁移方案

博主历时三年精心创作的《大数据平台架构与原型实现&#xff1a;数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行&#xff0c;点击《重磅推荐&#xff1a;建大数据平台太难了&#xff01;给我发个工程原型吧&#xff01;》了解图书详情&#xff0c;…

在x64上构建智能家居(home assistant) (六) 安装Node-RED Companion Integration

点击HACS 搜索node-red 右侧单击后点击安装 安装完成后, 选设备
最新文章