Saya ingin memeriksa / memperbarui kode melalui proxy karena koneksi lokal saya lambat. Saya mengatur ssh tunnel: ssh -D 8090 [email protected]
untuk meneruskan semua paket ke localhost saya: 8090.
Bagaimana saya bisa mengatur subversi untuk menggunakan ini?
Jawaban:
Anda menggunakan SSH untuk mengatur server SOCKS lokal yang terowongan ke server SSH Anda. Anda menyebutkan bahwa alasan Anda melakukan itu adalah bahwa "koneksi lokal lambat" tetapi saya gagal melihat bagaimana melakukan tunneling ke server SSH akan membuatnya lebih cepat.
Bagaimanapun, masalah Anda adalah bahwa Subversion dapat terhubung melalui proksi HTTP atau terowongan SSH, tetapi tidak tahu tentang SOCKS. Jadi Anda perlu SOCKSify Subversion dengan menangkap semua koneksi TCP-nya dan mengarahkan mereka ke proksi SOCKS.
Alih-alih memparafrasekan mereka yang telah melakukannya sebelumnya, saya akan mengarahkan Anda ke penjelasan rinci mereka:
Atau singkatnya sebagian besar dipotong dari halaman Oliver:
Debian berisi dua socksifiers yang juga tersedia di sourceforge. Yang paling baru-baru ini diperbarui adalah ProxyChains, dan cukup mudah untuk dikonfigurasikan. Kebanyakan socksifiers bekerja dengan cara yang serupa sehingga instruksi ini harus menjadi kasus umum yang masuk akal. Untuk mengkonfigurasi ProxyChains, Anda hanya perlu mengedit $ (HOME) /. Proxychains / proxychains.conf untuk hanya memiliki baris berikut:
Yang perlu Anda lakukan adalah 'membungkus' svn di ProxyChains.
Dalam contoh di atas, aplikasi svn sama sekali tidak bijaksana karena TCP terhubung ke server Subversion dialihkan ke proksi SOCKS Anda. "
sumber
Posting di sini, karena saya menemukan cara yang kurang kludge-y untuk melakukan ini. Anda dapat menggunakan Polipo untuk menggunakan terowongan SSH SOCKS Anda melalui proxy HTTP, dengan menambahkan baris berikut ke konfigurasinya:
polipo
secara default mendengarkan pada port8123
. Dan kemudian di$HOME/.subversion/servers
membuat grup untuk subversi host Anda ingin memeriksa dari, misalnya jika tuan rumah repositori subversi Anda (s) diberi namaproj1.svn.domain.tld
,proj2.svn.domain.tld
, dll, kemudian tambahkan berikut untuk[groups]
bagian:Dan akhirnya tentukan konfigurasi proxy untuk grup host yang baru saja Anda tambahkan dengan menambahkan blok untuk grup:
Setelah ini, Anda seharusnya dapat beroperasi di repositori secara normal, seperti sebelumnya Anda bekerja tanpa terowongan SSH.
HTH
sumber
Saya tidak tahu tentang tunneling
ssh -D
tetapi menggunakan sesuatu sepertiAnda kemudian dapat melakukan tunneling dengan menambahkan protokol baru ke subversi dengan port tertentu di mana tunnel aktif. Jadi, di ~ / .subversion / config tambahkan baris seperti
di
[tunnels]
bagian dan kemudian bukannya svn + ssh: //[email protected] penggunaan svn + pssh: // user @ localhostJika Anda memiliki copy pekerjaan yang sudah ada, Anda dapat menggunakan
untuk mengganti alamat, copy pekerjaan terhubung dengan tanpa harus melakukan checkout baru.
sumber
svn co svn+ssh://code.somewhere.com/prj prj
, maka masukprj/
dan berjalansvn switch --relocate svn+ssh://code.somewhere.com svn+pssh://localhost/
akan memperbarui wc agar terlihat seolah-olah telah melaluisvn co svn+pssh://localhost/prj prj
Lihatlah file konfigurasi default di ~ / .subversion / Ada banyak contoh berguna yang dikomentari. Proxy akan diatur di ~ / .subversion / server
sumber
Ada kalanya diperlukan pada PC Windows untuk mendapatkan koneksi svn + ssh ke repositori SVN melalui server proxy kaus kaki . Masalah ini dapat diatasi dengan Putty yang menyediakan fungsionalitas SSH dan dapat bekerja dengan berbagai jenis proxy. Solusi yang diusulkan tidak memerlukan penerusan port lokal.
Apa itu - SVN akan menggunakan nama protokol untuk mendeteksi bahwa plink.exe harus digunakan untuk koneksi dan plink akan menggunakan nama sesi socks_proxy untuk mengidentifikasi bahwa ada proxy. Ingat bahwa PATH_TO_PLINK harus dimasukkan dengan garis miring, bukan dengan garis miring terbalik. Contoh kejadian ketika plink.exe terletak di folder C: \ Program Files \ Putty: ssh = C: / Program Files / Putty / PLINK.EXE-load socks_proxy .
sumber
Anda mungkin mencoba tsocks . Dengan tsocks, Anda mengonfigurasinya untuk menggunakan proxy SOCKS yang diset SSH kemudian jalankan svn seperti:
sumber