最近在搭建完java web服务器环境后,想在项目路径下搭个SVN服务器,方便日后的项目管理。按照之前搭建SVN服务器的常规步骤操作后,在客户端checkout时却发现始终连接不上服务器。
首先想到的问题是配置出错,查看了svn的repos路径下的配置文件,authz、passwd和svnserce.conf三个配置文件都没有问题。
其次检查了客户端的缓存,为了防止之前登录时的缓存干扰,我在SVN客户端的设置里clear了所有缓存,还是不行。
之后突然想起前些天我开启了服务器上的firewall,并且只开放了80、22、8080等必要的端口。于是使用
firewall-cmd --zone=public --add-port=3690/tcp --permanent
开放了tcp协议的3690端口。
结果是,添加了这条规则后仍然无法访问。这让我开始怀疑SVN使用的protocol是否是tcp。一查资料,SVN使用的协议是http,但http理论上是基于tcp的,开放3690/tcp应该没有问题(其实我尝试了3690/http的规则,显示INVALID_POROTOCOL...)。最后man了下firewall-cmd,发现自己没有firewall-cmd --reload让新增的规则加载。。
以后使用防火墙之类的配置时,要时刻记得添加的配置是否真正的加载运行了,记录下提醒自己。