简单实现远程访问Linux SVN服务(上)

简介: 简单实现远程访问Linux SVN服务

前言


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


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


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


1. Ubuntu安装SVN服务


命令行输入安装命令:


sudo apt install subversion


9b982fda3dd386ee33f929fa5ab5d21e.png

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

svnserve --version



fe4bf573943f1e6e234b9816d586e76e.png


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

cd /opt
sudo mkdir svn
cd svn
sudo mkdir repository


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


sudo svnadmin create /opt/svn/repository

bc55246b834601019df531eb7d9cec51.png


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


conf文件夹下是存放的配置文件,包括SVN用户名的权限、密码这些;

db里面的包含我们上传到SVN服务器上面的文档、代码等数据的不同版本。

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

b5268bb407892ba03763fbd38147db4b.png


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

sudo chmod -R 777 db
8dbb3ea38e69c0ef7a262a644ab5ec4a.png


2. 修改配置文件


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


2.1 修改svnserve.conf文件


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

sudo vim svnserve.conf
• 1

i键进入编辑

解开四个参数的#号注释


4303399073cfb1fdc6c140b97e55b57f.png


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


2.2 修改passwd文件


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


sudo vim passwd
• 1

i进行编辑

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

cb5adbd0e93bfba25e5ef7c274b4a8f3.png


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


2.3 修改authz文件


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


sudo vim authz
• 1

i进行编辑

添加如下信息


92d1f31796f78ce15937655af0f13ada.png


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


3. 启动svn服务


输入以下命令启动svn


sudo svnserve -d -r /opt/svn/
• 1


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
• 1
  • token认证


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

cpolar authtoken xxxxxxx


5cc5b5cdc5d64f4b78578a9787f17fd9.png

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


sudo systemctl start cpolar


4.2 创建隧道映射本地端口


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


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

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

点击创建


b55e0264579d2daa8d6d73ae1c38df32.png

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

11f91152a53a0838db11d2e6413e2255.png


5. 测试公网访问


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

4a20f0b464fe94b94d868aa009b8043d.png


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隧道,点击右侧的编辑


988418a581285852db0ee0f600a9061f.png


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

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

点击更新


9f86e83b1ffe0bb1f897bddaa0f1f11c.png


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


104b24e5bc88b78e0225c822b1c02fdd.png


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


右键打开relocate



188d2669db88f4703afb9e2db0f981dd.png


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

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


















相关文章
|
1月前
|
Linux Shell Windows
通过Linux挂载Windows端NFS服务实现板端Linux传输文件到PC
通过Linux挂载Windows端NFS服务实现板端Linux传输文件到PC
|
4天前
|
存储 关系型数据库 MySQL
Linux服务详解
Linux服务详解
18 0
|
6天前
|
网络协议 Ubuntu Linux
Linux 下 TFTP 服务搭建及 U-Boot 中使用 tftp 命令实现文件下载
Linux 下 TFTP 服务搭建及 U-Boot 中使用 tftp 命令实现文件下载
|
13天前
|
监控 Java Linux
linux下监控java进程 实现自动重启服务
linux下监控java进程 实现自动重启服务
|
16天前
|
安全 Ubuntu Linux
Linux远程访问Windows实现步骤
在Windows上启用远程桌面连接并获取IP地址后,Linux用户需安装SSH客户端( Debian系:`sudo apt-get update; sudo apt-get install openssh-client`,RPM系:`sudo yum install openssh-clients`)。然后使用命令`ssh 用户名@Windows_IP地址`连接,其中`用户名`和`Windows_IP地址`按实际情况填写。
14 4
|
16天前
|
关系型数据库 MySQL Linux
linux特定服务日志
Linux系统的服务日志在`/var/log`目录下,如系统日志(`/var/log/syslog`或`/var/log/messages`)、认证日志(`/var/log/auth.log`)、SSH日志(`/var/log/auth.log`或`/var/log/secure`)。Web服务器(Apache和Nginx)的访问和错误日志、MySQL错误日志、Postfix及Dovecot邮件服务器日志也在此处。日志位置可能因发行版和服务配置而异,不确定时可查服务配置或用`grep`搜索。使用`logrotate`可管理日志文件大小。
18 6
|
23天前
|
Linux
linux中服务管理
在Linux服务管理中,从传统的System V init到Upstart,再到广泛采用的systemd,管理方式不断发展。systemd以其强大的功能和依赖解决成为现代Linux的核心。`systemctl`是管理服务的关键命令,如启动(`start`)、停止(`stop`)、重启(`restart`)服务及设置开机启动(`enable`)或取消(`disable`)。了解和服务管理,特别是systemd和`systemctl`的使用,对系统管理员至关重要。其他如xinetd用于控制网络服务,而特定环境下有OpenRC等工具。
17 2
|
30天前
|
Shell Linux C语言
【Shell 命令集合 系统设置 】Linux 管理系统服务 ntsysv命令 使用指南
【Shell 命令集合 系统设置 】Linux 管理系统服务 ntsysv命令 使用指南
28 0
|
30天前
|
存储 Shell Linux
【Shell 命令集合 系统设置 】Linux 管理系统服务 chkconfig命令 使用指南
【Shell 命令集合 系统设置 】Linux 管理系统服务 chkconfig命令 使用指南
27 0
|
1月前
|
网络协议 Ubuntu Linux
如何在Linux环境搭建本地SVN服务器并结合cpolar实现公网访问
如何在Linux环境搭建本地SVN服务器并结合cpolar实现公网访问