我们的 svn 服务器位于一台无法通过互联网访问的机器上。但我们需要能够通过 ssh 从互联网上签出代码。假设我们可以在一台可从互联网访问的机器上进行端口转发,那么最好的设置方法是什么?
Internet -> A machine on our network - > svn server
(Port forward here? )
如果不是端口转发,那么最安全的方法是什么(如果有的话)?
答案1
您正在寻找这样的东西吗?
ssh -L3980:svnserver:3980 me@insidemachine
这样您就可以对 执行 svn 操作svn://localhost
;并且您的工作副本将指向该操作。您可以使用 来更改该操作svn switch --relocate
,但这会变得有点麻烦。您可以在防火墙内执行相同的 ssh 以避免切换,但这也可能很尴尬。
如果您可以设置 VPN,我认为您会发现这会方便得多,特别是如果您的内部网络上还有 bugtracker 或类似的东西。
答案2
我假设 SVN 服务器的机器已连接到网络并可以浏览互联网。您只是没有并且不想在实际服务器上打开端口。对吗?
在这种情况下:
我会使用 VPN 接入网络,然后您应该能够将本地 SVN 文件更新为最新版本,以便查看/处理它们。完成后,您可以将更改提交回服务器。为此,您需要设置 VPN 并将路由器上的端口转发到 VPN 服务器。
或者
您可以通过 RDP 连接到包含文件的工作站。不过这样安全性会稍差一些。然后从 RDP 机器上查看/处理文件。如果您使用非标准 RDP 端口,则需要转发端口 3389 或其他端口,这将提高安全性。