Linux系统安装SVN服务端结合内网穿透实现远程访问本地svn资料库
发布时间 - 2025-07-22 00:00:00 点击率:次文章目录
前言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系统上安装服务端,并通过客户端远程访问。
- 在Ubuntu上安装SVN服务通过命令行输入以下命令进行安装:
sudo apt install subversion
20250131111701查看SVN版本,以确认安装是否成功:
svnserve --version
20250131111702创建版本库,执行以下系列命令:
cd /optsudo mkdir svncd svnsudo mkdir repository
创建好后,输入以下命令创建仓库:
sudo svnadmin create /opt/svn/repository
20250131111703创建成功后,在repository目录下会发现一系列文件,其中:
conf文件夹下存放配置文件,包括SVN用户名、权限和密码;db文件夹内包含上传到SVN服务器上的文档、代码等数据的不同版本。注意需要对db文件夹设置权限,否则客户端可能无法连接SVN服务器。
20250131111704输入以下命令,对db文件夹设置权限,设置成功后db文件夹会变成绿色:
sudo chmod -R 777 db
202501311117052. 配置文件的修改首先修改repository文件下的conf文件夹内的文件。
2.1 编辑svnserve.conf文件这个文件主要设置我们的SVN访问方式。输入编辑命令:
sudo vim svnserve.conf
按i键进入编辑模式,解除四个参数的#号注释。
20250131111706然后按Esc键退出编辑,输入:wq保存并退出。
2.2 编辑passwd文件这个文件主要是添加用户名和密码。输入命令进入编辑:
sudo vim passwd
按i键进行编辑,添加以下信息,账号密码可以自行定义:
20250131111707添加完成后按Esc键退出,输入:wq保存并退出。
2.3 编辑authz文件这个文件主要是对登录用户的权限进行管理。输入以下命令进入编辑:
sudo vim authz
按i键进行编辑,添加如下信息:
20250131111708然后按Esc键退出编辑,输入:wq保存并退出。
- 启动SVN服务输入以下命令启动SVN:
sudo svnserve -d -r /opt/svn/
- 实现内网穿透我
们在本地Ubuntu虚拟机上安装了SVN服务端,但目前只能在局域网络下访问,离开了局域网将无法连接SVN。然而,我们可以通过cpolar来实现公网访问,突破局域网的限制,无需公网IP,无需设置路由器。
4.1 安装cpolar内网穿透工具支持一键脚本安装,输入以下命令:
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
在cpolar官网后台登录后,点击左侧的验证,查看自己的认证token,然后将token贴在命令行中:
cpolar authtoken xxxxxxx
20250206171241248向系统添加服务:
sudo systemctl enable cpolar
启动cpolar服务:
sudo systemctl start cpolar
4.2 设置隧道以映射本地端口成功启动cpolar服务后,在浏览器中访问本地9200端口【https://www./link/4b0634bf8e6c9d0289c1102ced741317 web UI管理界面。
登录成功后,点击左侧仪表盘的隧道管理——创建隧道,创建一个tcp协议的隧道指向本地3690端口:
隧道名称:可自定义,注意不要与已有的隧道名称重复协议:tcp本地地址:3690域名类型:免费选择随机域名地区:选择China VIP点击创建
20250131111709隧道创建成功后,点击左侧的状态——在线隧道列表,可以看到刚刚创建的隧道已生成相应的公网地址,将其复制下来。
202501311117105. 测试通过公网访问从官方网站下载SVN客户端:https://www./link/92e2febe8d6183b8026d49448c382d0e
20250131111711SVN安装完成后,在桌面右键点击svncheckout,输入我们复制的cpolar公网地址,然后点击ok。
20250131111712输入我们前面创建的账号密码。
20250131111713接着右键点击svn update,没有出现error即表示连接成功。
202501311117146. 配置固定的公网TCP端口地址由于以上使用cpolar所创建的隧道使用的是随机公网地址,该地址为随机临时地址,24小时内会发生变化,不利于长期远程访问。
为了更好地连接,我们可以为其配置二级子域名,该地址为固定地址,不会随机变化。
6.1 保留固定的公网TCP端口地址登录cpolar官网,点击左侧的预留,选择保留的TCP地址,我们先为远程SVN保留一个固定端口地址。
地区:选择China VIP描述:即备注,可自定义填写点击保留
20250131111715地址保留成功后,系统会生成相应的固定公网地址,将其复制下来。
202501311117166.2 设置固定的公网TCP端口地址在浏览器中访问9200端口,https://www./link/63baaa24b01ab9ada621af6ff02c2e2e web ui管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到svn隧道,点击右侧的编辑。
20250131111717修改隧道信息,将保留成功的固定tcp地址配置到隧道中。
端口类型:修改为固定tcp端口预留的tcp地址:填写保留成功的地址点击更新
20250131111718隧道更新成功后,点击左侧仪表盘的状态——在线隧道列表,找到svn隧道,可以看到公网地址已经更新为固定tcp地址。
202501311117197. 使用固定TCP端口地址远程访问SVN服务右键打开relocate。
20250131111720修改连接地址为固定tcp的地址,修改完后点击OK。
20250131111721接着右键点击svn update,没有出现error即表示连接成功。
20250131111722
# linux
# 浏览器
# 电脑
# 工具
# 系统安装
# Error
# Token
# svn
# http
# https
# ubuntu
# ui
# 内网
# 远程访问
# 服务端
# 客户端
# 自己的
# 配置文件
# 官网
# 右键点击
# 主要是
# 将其
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】
Laravel怎么实现验证码(Captcha)功能
Laravel如何生成和使用数据填充?(Seeder和Factory示例)
Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】
laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程
如何快速生成凡客建站的专业级图册?
Laravel Session怎么存储_Laravel Session驱动配置详解
Laravel怎么自定义错误页面_Laravel修改404和500页面模板
零基础网站服务器架设实战:轻量应用与域名解析配置指南
Angular 表单中正确绑定输入值以确保提交与验证正常工作
如何实现javascript表单验证_正则表达式有哪些实用技巧
Laravel如何发送系统通知?(Notification渠道示例)
Linux安全能力提升路径_长期防护思维说明【指导】
制作旅游网站html,怎样注册旅游网站?
Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理
Laravel如何使用Service Container和依赖注入?(代码示例)
Linux网络带宽限制_tc配置实践解析【教程】
HTML 中动态设置元素 name 属性的正确语法详解
Laravel怎么解决跨域问题_Laravel配置CORS跨域访问
Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】
Laravel怎么使用Intervention Image库处理图片上传和缩放
如何在宝塔面板创建新站点?
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
node.js报错:Cannot find module 'ejs'的解决办法
ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法
网站制作企业,网站的banner和导航栏是指什么?
无锡营销型网站制作公司,无锡网选车牌流程?
中山网站制作网页,中山新生登记系统登记流程?
php静态变量怎么调试_php静态变量作用域调试技巧【解答】
Laravel Blade模板引擎语法_Laravel Blade布局继承用法
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道
百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏
详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点
Laravel如何实现API资源集合?(Resource Collection教程)
Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理
如何挑选高效建站主机与优质域名?
Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲
Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?
Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤
javascript日期怎么处理_如何格式化输出
Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】
网页设计与网站制作内容,怎样注册网站?
详解jQuery停止动画——stop()方法的使用
个人摄影网站制作流程,摄影爱好者都去什么网站?
Android滚轮选择时间控件使用详解
Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询
深圳网站制作平台,深圳市做网站好的公司有哪些?
,怎么在广州志愿者网站注册?


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