我有一个 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 book中所述。我配置错误了什么?
编辑这是我的 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
在这种情况下,是服务器本身(服务提供商:Bluehost.com)在其端阻塞了端口 3690。解决方案要么支付额外的 $$ 以设置静态 IP,然后他们可以打开该端口,要么简单地使用 svn+ssh 访问,因为 SSH 端口 22 已经打开。
希望这至少对其他在共享托管环境中遇到此类问题的人有用。