linux - svn教學 - svn over HTTP proxy




jenkins svn教學 (5)

我在筆記本電腦(Ubuntu)上使用HTTP代理的網絡(只允許http連接)。
當我使用svn up for url如'http:// .....'一切都很酷(google chrome存儲庫工作完美),但是現在我需要從服務器svn up'svn:// .... '我看到連接被拒絕了。
我在/ etc / subversion / servers中設置了代理配置,但它沒有幫助。
有人有意見/解決方案嗎?


svn://不會說http,因此http代理無法做到。

http無效的原因是什麼? 你考慮過https嗎? 如果您真的需要它,您可能必須在防火牆中打開端口3690。


好的,這個主題有點過時了,但是我在google上找到它並且有一個解決方案,這對某些人來說可能很有趣:

基本上(當然)這在每個http代理上是不可能的,但適用於允許端口3690上的http連接的代理。此方法由端口443上的http代理使用,以提供安全https連接的方式。 如果管理員將代理配置為打開端口3690以進行http連接,則可以設置本地計算機以通過代理建立隧道。

我只是需要查看我們公司網絡中svn.openwrt.org的一些文件。 創建隧道的簡單方法是在/ etc / hosts中添加以下行

127.0.0.1 svn.openwrt.org

之後,您可以使用socat創建到本地端口的TCP隧道:

而真實; do socat tcp-listen:3690 proxy:proxy.at.your.company:svn.openwrt.org:3690; DONE

您應該以root身份執行命令。 它打開本地端口3690,並在連接上創建到同一端口上的svn.openwrt.org的隧道。

只需根據自己的需要更換端口和服務器地址即可。


如果你可以通過SSH連接到SSH端口轉發的SVN服務器。

使用SSHs -L (或-R ,我忘了,它總是讓我困惑)來製作一個ssh隧道

127.0.0.1:3690真正連接到遠程:3690通過ssh隧道,然後你可以通過它

svn co svn://127.0.0.1/....

如果您正在使用標準SVN安裝,則svn://連接將在tcpip端口3690上運行,因此除非您更改網絡配置(您只說允許Http流量)或安裝http模塊,否則基本上無法連接託管SVN服務器的服務器上的Apache。


/etc/subversion/servers您正在設置http-proxy-host ,它與svn://無關,後者連接到通常由svnserve命令啟動的端口3690上運行的其他服務器。

如果您有權訪問服務器,則可以按照此處的說明設置svn+ssh://

更新 :您還可以嘗試使用connect-tunnel ,它使用您的HTTPS代理服務器來隧道連接:

connect-tunnel -P proxy.company.com:8080 -T 10234:svn.example.com:3690

然後你會用

svn checkout svn://localhost:10234/path/to/trunk




proxy