Noob有关SVN结账和网络问题的问题

时间:2010-10-19 14:12:03

标签: linux svn ubuntu networking firewall

我们有一个安装了SVN的本地服务器,我们用它来开发/测试purpouses。我们想将数据从它检出到那里的实时服务器。

我想到的唯一方法是使用来自实时服务器的“svn checkout”,对吧?这样我们就不需要对它进行FTP更改,这可能会导致问题,我们忘记上传一些更改。如果我们发现问题,我们总是可以回到以前的稳定版本,对吧?如果我对这些中的任何一个错了,请纠正我。

问题是我们的本地服务器(Ubuntu)没有可从外部访问的IP。我们有一台来自ISP的路由器,但我们不能用它来从实时访问本地服务器。我们愿意要求ISP提供商为本地服务器设置第二个IP,但出于安全考虑,他们希望设置一个单独的机器,其中包含Windows和Windows基础安全软件(防火墙 - http://www.kerio.com/control/和防病毒软件)我们很多我们可以在本地服务器上设置一个免费的防火墙(正如我所说的那样是Ubuntu)并解决问题而无需花费额外的钱吗?

我希望我很清楚。

4 个答案:

答案 0 :(得分:1)

在不知道确切情况的情况下总是难以评论,但这听起来有点疯狂。

您通常会为一个端口设置端口转发到本地服务器。然后可以通过123.45.67.89:3690

访问服务器(例如)

这是一个在普通家用路由器中设置的三分钟任务。

只要Ubuntu服务器关闭,否则Subversion或用于身份验证的任何内容都已正确配置并且是最新的,这不会产生安全问题。

在任何情况下,将Windows机器置于其间以充当防火墙听起来真的没必要。 Ubuntu提供了正确保护设置所需的一切。

答案 1 :(得分:0)

检查您的ISP路由器是否提供了一些端口转发功能, 您应该转发ssh端口(在确保每个人的密码都是安全的/或使用ssh密钥文件强制登录之后),并使用SVN + SSH协议访问您的存储库。

答案 2 :(得分:0)

如果远程服务器有ssh服务器,则可以使用ssh forwarding。

从内部svn服务器:

ssh -R 7711:localhost:3690 {REMOTE_SERVER}
  • 7711是一个任意端口(您可以使用远程系统上的任何空闲端口),它将从远程系统转发到svn服务器上的端口3690(svn)。
  • 3690是您要与之交谈的内部svn服务器上的端口(通过svn://)。
  • 如果您在http://上使用subversion,则使用端口80而不是3690。
  • 如果您通过https://使用subversion,请使用端口443而不是3690。

设置转发后,您可以在远程系统上执行此操作:

svn checkout {SCHEME}://localhost:7711/{PATH}
  • {SCHEME}是svn,http,https等
  • {PATH}是您想要查看的正常svn路径。

注意:

答案 3 :(得分:0)

如Pekka所指出的,您应该能够在现有IP上打开和转发单个端口(默认为3690)到本地服务器。这取决于您的路由器,以及您访问路由器上配置界面的能力。

您可以设置防火墙,仅允许来自单个远程服务器的传入流量,而不必处理SSH并担心人们试图从任何地方访问您的本地服务器。根据路由器设置,您只需使用本地服务器上的builtin firewall即可。但是,建议进行一些svn认证仍然是可取的。

kanaka描述的SSH转发方法可以防止有关远程访问本地计算机的整个问题,但是每次需要访问远程服务器上的svn时,它都要求您从本地服务器执行转发命令。