2011-05-14 86 views
9

爲了工作,我在封閉的網絡中工作。有幾個我們設置的IP地址只能從我們的網絡內訪問。不過,有一個方框,我們可以通過SSH進入並通過隧道進入我們各自的開發者框。通過隧道顛覆

我知道我可以通過使用ssh的-L參數從我們的開發人員框中獲得流量。我想知道是否有一種方法可以通過我們的開放盒子進入隧道,進入一個封閉的盒子是我們的Subversion(SVN)存儲庫存儲的?

My computer --> Open box --> Developer boxes/SVN repository 

我無法通過SSH進入SVN中,但有使用ssh像一個代理獲得訪問私有顛覆對話框的方法?

UPDATE:

1.1.1.1 - >打開盒子 1.1.1.2 - > SVN箱

我可以通過開箱子我隧道後SSH進入SVN箱:

ssh [email protected] 
ssh [email protected] 

這將允許我訪問SVN框。我想通過ssh進入打開的盒子,本地轉發端口SVN箱22到我的端口22因此

ssh [email protected] -L 22:1.1.1.2:22 

然後在命令行中使用SVN:

svn co svn+ssh://[email protected]/path 

這將返回

svn: Network connection closed unexpectedly

這是怎麼發生的? svn + ssh使用另一個我不知道的端口嗎?

回答

8

是的,你應該能夠隧道。我不知道你是否在工作時使用類似svn co http://.....或類似的東西連接到SVN svn checkout svn://......

我認爲你想隧道到任何端口80(如果使用HTTP),端口443(如果使用https)和端口3690,如果你只使用svn(不使用apache)。所以,你的命令應該是這個樣子

ssh -f [email protected] -L 3690:your.internal.svn.server:3690 -N 

那麼你應該能夠檢查出/從本地主機提交/更新/ etc,彷彿你本地主機是SVN服務器。

-f使它變爲後臺,所以當你想要的是隧道時,你不會看到終端卡在公共服務器shell提示符下。 -N表示不執行遠程命令。

+0

我使用svn co svn + ssh:// ip/var/svn/project 如果開箱子的ip是1.1.1.1,svn服務器是1.1.1.2,我會做ssh -f [email protected] - L 3690:1.1.1.2:3690 -N當我嘗試使用svn co svn + ssh:// localhost/var/svn/project – tlunter 2011-05-15 00:18:21

+0

嘗試並結帳時,這仍然不會返回任何結果。我認爲在這種情況下,您希望使用不帶ssh的svn。原因是你已經通過SSH隧道到你的公司網絡。但是,如果你仍然想要ssh部分,我認爲你可能需要轉發ssh而不是svn端口。 – wilbbe01 2011-05-15 00:20:44

+0

3690是svn端口。既然你正在通過ssh執行svn(+ ssh部分),你將需要在你的svn服務器上通過SSH隧道。所以我想你想嘗試的是'ssh -f [email protected] -L 6000:1.1.1.2:22-N。然後在你的svn + ssh命令中,你需要執行svn + ssh:// localhost:6000/repository/path/here /' – wilbbe01 2011-05-15 00:25:38

0

我們公司的情況一樣。由於沒有使用VPN來訪問「內部」網絡,我能想到的唯一選擇就是在網絡中打出一個洞,以允許訪問特定的盒子。我們通常在netscalar中創建一個虛擬IP地址,指向內部盒子以屏蔽內部盒子的「已命名」曝光。

我建議與您的網絡團隊合作創建此設置,或者如果您沒有網絡團隊,請查看路由器設置以創建此連接。

+0

請看,我的工作是一所大學的技術團隊,所以我可以根據自己的需要進行基本設置。它的一小部分技術人員的好處是,當我們爲閉合工作而開發時,我們可以根據需要設置虛擬機。無需經過多人。 我希望能夠嘗試使這個工作,而不必與任何服務器設置混亂。希望我能很快得到它的工作。 – tlunter 2011-05-15 00:21:19