CentOS SVN无法连接:常见问题排查与修复指南
问题现象
在CentOS系统中使用svn checkout
或客户端工具连接SVN仓库时,可能遇到以下错误提示:
svn: E000013: Can't connect to host 'svn.example.com:3690': Connection refused
排查与解决方案
1. 检查SVN服务运行状态
执行以下命令确认svnserve
服务是否已启动:
systemctl status svnserve
若服务未运行,使用命令启动并设置开机自启:
systemctl start svnserve
systemctl enable svnserve
2. 验证防火墙配置
确保防火墙已开放SVN默认端口3690:
firewall-cmd --permanent --add-port=3690/tcp
firewall-cmd --reload
临时关闭防火墙测试连接:
systemctl stop firewalld
3. 检查SVN仓库权限配置
确认仓库目录的svnserve.conf
配置文件中以下参数设置:
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
同时检查passwd
和authz
文件中的用户权限设置。
4. 处理SELinux安全策略限制
临时禁用SELinux测试是否影响连接:
setenforce 0
若问题解决,需永久调整策略或设置SVN相关布尔值:
setsebool -P httpd_can_network_connect 1
5. 网络连通性测试
使用telnet
或nc
命令检测端口可达性:
telnet 服务器IP 3690
若连接失败,检查网络路由、代理设置或物理防火墙规则。
配置示例
典型svnserve.conf
配置片段:
[general]
realm = MySVNRepo
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz