我们有一个安装了SVN的本地服务器,我们用它来开发/测试purpouses。我们想将数据从它检出到那里的实时服务器。
我想到的唯一方法是使用来自实时服务器的“svn checkout”,对吧?这样我们就不需要对它进行FTP更改,这可能会导致问题,我们忘记上传一些更改。如果我们发现问题,我们总是可以回到以前的稳定版本,对吧?如果我对这些中的任何一个错了,请纠正我。
问题是我们的本地服务器(Ubuntu)没有可从外部访问的IP。我们有一台来自ISP的路由器,但我们不能用它来从实时访问本地服务器。我们愿意要求ISP提供商为本地服务器设置第二个IP,但出于安全考虑,他们希望设置一个单独的机器,其中包含Windows和Windows基础安全软件(防火墙 - http://www.kerio.com/control/和防病毒软件)我们很多我们可以在本地服务器上设置一个免费的防火墙(正如我所说的那样是Ubuntu)并解决问题而无需花费额外的钱吗?
我希望我很清楚。
答案 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}
设置转发后,您可以在远程系统上执行此操作:
svn checkout {SCHEME}://localhost:7711/{PATH}
注意:
转发的流量通过ssh连接(在不同的“通道”上)进行隧道传输,因此它也是加密的,这是一个很好的好处。
默认情况下,转发的远端将侦听环回接口,因此只有该系统上的进程才能使用端口转发端口。
一旦关闭ssh会话,转发的端口也将关闭。它只持续ssh连接的持续时间。
ssh转发非常强大。如果你可以在两个系统之间进行ssh,那么你可以解决任何类型的连接问题。
执行man ssh
并阅读-L和-R选项。
有关ssh转发的有用链接:
答案 3 :(得分:0)
如Pekka所指出的,您应该能够在现有IP上打开和转发单个端口(默认为3690)到本地服务器。这取决于您的路由器,以及您访问路由器上配置界面的能力。
您可以设置防火墙,仅允许来自单个远程服务器的传入流量,而不必处理SSH并担心人们试图从任何地方访问您的本地服务器。根据路由器设置,您只需使用本地服务器上的builtin firewall即可。但是,建议进行一些svn认证仍然是可取的。
kanaka描述的SSH转发方法可以防止有关远程访问本地计算机的整个问题,但是每次需要访问远程服务器上的svn时,它都要求您从本地服务器执行转发命令。