转发端口

转发端口

我想在我的计算机上设置一个 svn 服务器,以便可以从任何地方访问它。

我认为我使用 CollabSVN 正确设置了存储库。如果我使用 TortoiseSVN 转到 Repo-Browser 并将其指向svn://localhost:3690,它会显示正确的存储库。

现在的问题是,我在路由器后面。我的本地 IP 是 192.168.1.45。这样做svn://192.168.1.45:3690也有效。我的全局 IP 是,x.x.x.x。只是这样做svn://x.x.x.x:3690是行不通的,这是有道理的,因为我必须设置端口转发。

我使用的是 Verizon 路由器。使用他们的 Web 界面(在 上192.168.1.1),我添加了以下端口转发规则:

IP Address forward to: 192.168.1.45
Source Ports: Any
Dest Ports: 3690
Forward to: 3690
Protocol: TCP

但是,即使应用了此规则,转到也svn://x.x.x.x:3690不起作用。它需要几秒钟才能失败,然后说无法建立连接,因为连接到的服务器在一段时间后没有正确响应。有趣的是,一个随机端口,比如svn://x.x.x.x:36904立即失败,说目标机器主动拒绝连接。所以我认为转发规则确实某物,但还没有完全满足需要。

有什么办法可以让它工作吗?路由器型号是MI424-WR,固件版本是4.0.16.1.56.0.10.12.3

更新:我还尝试将目标端口设置为 45000,并仍然转发到 3690,以防较低编号的端口出现问题,但无济于事。我还尝试将端口 80 转发到端口 3690,但仍然徒劳无功。

答案1

许多路由器不支持此功能,但如果您从内部网络外部尝试,它就会起作用。

让朋友在互联网上的其他地方尝试 svn://xxxx:3690,看看它是否有效,或者如果你在某个地方有 shell 帐户,请 ssh 到那里并尝试 svn ls svn://xxxx:3690

我不知道这个防火墙功能的名称。但我知道让 Linux 执行此操作(您的 wrt54gl 使用的是此功能)只需添加 SNAT 规则和 DNAT 规则即可。

这里有一个非常好的解释:http://security.maruhn.com/iptables-tutorial/x9305.html

答案2

尝试在 TCP 和 UDP 上转发。一些快速研究表明,SVN 同时使用这两种协议。

答案3

我建议您首先测试端口转发是否正常工作,方法是创建转发规则远程桌面协议(远程桌面协议)在某些 Windows 机器上。(将 3389 TCP 表单转发到 3389 和 Windows 机器的 IP 地址。)创建规则后,测试您是否可以使用远程桌面连接连接到 Windows 机器。(或者您可以尝试转发 SSH,这只是为了测试。)

此外,您的路由器可能位于调制解调器后面,如果是这样,请确保您也从调制解调器转发。

答案4

许多路由器不支持使用外部 IP 地址连接到你自己,如果你想看看服务器是否在外部工作,请尝试http://canyouseeme.org/只需输入你的端口,它就会告诉你人们是否可以从外部连接

相关内容