在Ubuntu环境下部署SVN服务并实现公网访问,可以通过以下步骤进行:
- 安装SVN服务器:
sudo apt update
sudo apt install subversion
- 创建仓库:
sudo mkdir /var/svn
sudo svnadmin create /var/svn/my_repository
配置SVN权限:
编辑 /var/svn/my_repository/conf/svnserve.conf 文件,添加:
[general]
anon-access = none
auth-access = write
password-db = passwd
同时编辑 /var/svn/my_repository/conf/passwd 文件,添加用户和密码:
[users]
user1 = password1
user2 = password2
- 设置SVN自启动(可选):
sudo touch /etc/systemd/system/svnserve.service
sudo systemctl daemon-reload
sudo systemctl enable svnserve
- 启动SVN服务:
sudo systemctl start svnserve
内网穿透:
使用 frp 或 ngrok 等内网穿透工具,将SVN服务的端口(默认为3690)映射到公网。
以下是使用 frp 的示例配置:
- 下载并解压
frp:
wget https://github.com/fatedier/frp/releases/download/v0.37.1/frp_0.37.1_linux_amd64.tar.gz
tar -zxvf frp_0.37.1_linux_amd64.tar.gz
- 编辑
frp 的配置文件 frps.ini,例如:
[common]
bind_port = 7000
- 启动
frp 服务端:
./frps -c ./frps.ini
- 编辑
frp 的客户端配置文件 frpc.ini,例如:
[common]
server_addr = <your_server_ip>
server_port = 7000
[svn_service]
type = tcp
local_ip = 127.0.0.1
local_port = 3690
remote_port = 4000
- 启动
frp 客户端:
./frpc -c ./frpc.ini
现在,你可以通过 http://<your_server_ip>:4000 或 http://<frp_domain>:4000(如果使用了 frp 的域名功能)来访问你的SVN仓库,从公网任何地方都可以进行操作。
注意:确保你的服务器防火墙和云服务提供商的安全组设置允许访问对应的端口。