我有一台 Fedora 服务器,在端口 3690 上运行 Subversion 和 svnserve。我的仓库位于 /var/svn/project_name。我的路由器将端口 3690 转发到本地服务器(以及端口 80、21、22 和其他几个端口)。当我本地连接到 svn://192.168.0.2/project_name 时,它运行良好。当我从外部服务器连接到 svn://my.static.ip/project_name 时,我连接到主机时会超时。但是,如果我http://my.static.ip没有问题,所以端口转发正在工作(至少对于端口 80)。
我不想通过 HTTP/s 运行 WebDAV 或 svn。我希望它使用 svnserve 工作,如svn 书。我配置错误了什么?
编辑以下是我的 iptables 转储的最后一部分。我不是专家,但对我来说它看起来还不错:
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:svn
ACCEPT udp -- anywhere anywhere state NEW udp dpt:svn
ACCEPT tcp -- anywhere anywhere state NEW tcp dpts:6680:6699
ACCEPT udp -- anywhere anywhere state NEW udp dpts:6680:6699
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
编辑2由于。。。导致的结果sudo netstat -tulpn
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 1455/svnserve
答案1
在这种情况下,是服务器本身(服务提供商:Bluehost.com)阻止了他们那边的 3690 端口。解决方案是要么额外支付 $$ 设置静态 IP,然后他们可以打开该端口,要么简单地使用 svn+ssh 进行访问,因为 SSH 端口 22 已经打开。
希望这至少对在共享托管环境中遇到此类问题的其他任何人都有用。