Làm cách nào để đặt proxy cho lật đổ với đường hầm ssh?


24

Tôi muốn kiểm tra / cập nhật mã qua proxy vì kết nối cục bộ của tôi chậm. Tôi thiết lập đường hầm ssh: ssh -D 8090 user@ssh.proxy.net để chuyển tiếp tất cả các gói đến localhost của tôi: 8090.

Làm thế nào tôi có thể thiết lập lật đổ để sử dụng này?

ssh  svn  proxy 

+1, câu hỏi hay. Tôi quan tâm xem liệu có cách nào để làm điều này không. Tôi có wi-fi rất chậm và thường duyệt qua proxy SOCKS được thiết lập theo cùng một cách, sẽ rất hữu ích khi có lật đổ (hoặc những người khác) sử dụng tương tự.
Tim Post

Và proxy làm cho wi-fi của bạn nhanh hơn?
innaM

Câu trả lời:


21

Bạn đang sử dụng SSH để thiết lập máy chủ SOCKS cục bộ có đường hầm đến máy chủ SSH của bạn. Bạn đề cập rằng lý do của bạn để làm điều đó là "kết nối cục bộ chậm" nhưng tôi không thấy cách đường hầm đến máy chủ SSH sẽ làm cho nó nhanh hơn.

Dù sao, vấn đề của bạn là Subversion có thể kết nối thông qua proxy HTTP hoặc đường hầm SSH, nhưng nó không biết gì về SOCKS. Vì vậy, bạn cần SOCKSify Subversion bằng cách bắt tất cả các kết nối TCP của nó và chuyển hướng chúng đến proxy SOCKS.

Thay vì diễn giải những người đã làm nó trước đây, tôi sẽ chỉ cho bạn những lời giải thích chi tiết của họ:

Hoặc một cách ngắn gọn chủ yếu là cắt từ trang của Oliver:

Debian chứa hai vớ cũng có sẵn trên sourceforge. Ứng dụng được cập nhật gần đây nhất là ProxyChains và nó khá đơn giản để cấu hình. Hầu hết các vớ đều hoạt động theo cách tương tự, vì vậy những hướng dẫn này phải là một trường hợp chung hợp lý. Để định cấu hình ProxyChains, bạn chỉ cần chỉnh sửa $ (HOME) /. Proxychains / proxychains.conf để chỉ có các dòng sau:

DynamicChain
tcp_read_time_out 15000
tcp_connect_time_out 10000
[ProxyList]
socks5 127.0.0.1 8090
# NB: for some reason 'localhost' doesn't work in the above line

Tất cả những gì bạn cần làm là 'bọc' svn trong ProxyChains.

proxychains svn commit

Trong ví dụ trên, ứng dụng svn không phải là khôn ngoan hơn khi TCP của nó kết nối với máy chủ Subversion đã được chuyển hướng xuống proxy SOCKS của bạn. "


Cảm ơn rất nhiều điều này làm việc cho tôi. Nếu bạn đang dùng OS X và cần chuyển tiếp DNS thì hãy sử dụng ngã ba proxy này. github.com/haad/proxychains và đảm bảo dòng 'proxy_dns' nằm trong cấu hình sau dòng đầu tiên.
Gourneau

2

Đăng ở đây, vì tôi tìm thấy một cách ít bùn hơn để làm điều này. Bạn có thể sử dụng Polipo để sử dụng đường hầm SSH SOCKS của mình qua proxy HTTP, bằng cách thêm các dòng sau vào cấu hình của nó:

socksParentProxy = "localhost:8090"
socksProxyType = socks5

polipotheo mặc định nghe trên cổng 8123. Và sau đó trong $HOME/.subversion/serverstạo một nhóm cho các máy lật đổ bạn muốn kiểm tra từ, ví dụ như nếu lật đổ của kho lưu trữ máy chủ (s) được đặt tên proj1.svn.domain.tld, proj2.svn.domain.tldvv, sau đó thêm sau để [groups]phần:

[groups]
domain = *.svn.domain.tld

Và cuối cùng chỉ định cấu hình proxy cho nhóm máy chủ bạn vừa thêm bằng cách thêm một khối cho nhóm:

[domain]
http-proxy-host=localhost
http-proxy-port=8123

Sau này, bạn sẽ có thể hoạt động trên kho lưu trữ một cách bình thường, như bạn đã từng làm việc mà không cần đường hầm SSH.

HTH


"Localhost: 8090" để làm gì?
De Khánh

@De Khánh đó là proxy SOCKS được polipo sử dụng làm thượng nguồn.
Ashish SHUKLA

1

Tôi không biết về đường hầm với ssh -Dnhưng sử dụng một cái gì đó như

ssh -L8090:svn.server.com:22 user@other.server.com

Sau đó, bạn có thể thực hiện đường hầm bằng cách thêm một giao thức mới để lật đổ với cổng cụ thể mà đường hầm đang bật. Vì vậy, trong ~ / .subversion / config thêm một dòng như

pssh = ssh -p8090

bên trong [tunnels] phần và sau đó thay vì svn + ssh: //user@origen.com sử dụng svn + pssh: // user @ localhost

Nếu bạn có một bản sao làm việc hiện tại, bạn có thể sử dụng

svn switch --relocate svn+ssh://user@original.com svn+pssh://user@localhost

để chuyển đổi địa chỉ, bản sao làm việc được liên kết với mà không phải thực hiện kiểm tra mới.


Tôi không thể bắt được. Giả sử: ban đầu tôi thanh toán với: svn co svn: //code.somewhere.com/prj prj Và tôi có thể làm gì bây giờ? Về cơ bản tôi không thể thực sự hiểu ý của bạn là gì: "thay vì svn + ssh: //user@ssh.proxy.net". Cảm ơn

Nếu bạn có một bản sao đang hoạt động svn co svn+ssh://code.somewhere.com/prj prj, sau đó vào prj/và chạy svn switch --relocate svn+ssh://code.somewhere.com svn+pssh://localhost/sẽ cập nhật wc để trông như thể nó đã được nhận quasvn co svn+pssh://localhost/prj prj
blahdibmus

Có lẽ chúng ta hiểu lầm ở đâu đó. Trên thực tế tôi muốn kiểm tra mã trên máy chủ A thông qua máy chủ B (ssh -D 8090 user @ B) cho máy cục bộ của tôi, điều này có khả thi không? svn co svn + pssh: // localhost / prj prj dường như chỉ kiểm tra mã một máy chủ B trừ khi tôi không nhận được bạn.

Tôi đã cập nhật để giải quyết vấn đề này với đường hầm ssh mà tôi biết. Nếu tôi hiểu chính xác, sử dụng "ssh -L8090: serverA.com: 22 user@serverB.com" và sau đó "svn co svn + pssh: // user @ localhost / prj prj" sẽ kiểm tra mã từ máy chủ A trên của bạn máy, thông qua máy chủ B.
blahdibazaki

À! Tôi nghĩ rằng tôi thấy sự nhầm lẫn có thể được. Thiết lập đường hầm khởi động hệ vỏ trên máy chủ proxy, nhưng đây không phải là nơi xảy ra các lệnh svn. Những điều đó sẽ xảy ra trong một vỏ riêng trên máy tính của bạn. Cờ -f cho ssh có thể cho phép sử dụng cùng một trình bao.
blahdibmus

1

Nhìn vào các tệp cấu hình mặc định tại ~ / .subversion / Có nhiều ví dụ hữu ích được nhận xét. Proxy sẽ được thiết lập trong ~ / .subversion / máy chủ


1

Có những lúc bắt buộc trên PC Windows để có kết nối svn + ssh đến kho SVN thông qua máy chủ proxy vớ . Vấn đề này có thể được giải quyết với Putty cung cấp chức năng SSH và có thể hoạt động với các loại proxy khác nhau. Giải pháp đề xuất không yêu cầu chuyển tiếp cổng cục bộ.

  1. Khởi chạy putty và tạo một phiên (ví dụ vớ_proxy)
  2. Định cấu hình proxy CHỈ cho phiên (Kết nối-> Proxy) khi cần gửi tên máy chủcổng Proxy . Putty hoạt động với việc lựa chọn các loại proxy khác nhau bao gồm cả SOCKS4 và SOCKS5. Tùy chọn bạn có thể cung cấp tên người dùngmật khẩu để truy cập proxy.
  3. Lưu phiên. Hãy nhớ rằng phiên sẽ không có Tên máy chủ được cấu hình để kết nối.
  4. Mở tệp cấu hình SVN Dữ liệu ứng dụng \ Subversion \ config và xác định vị trí phần [đường hầm]
  5. Đặt mô tả giao thức SVN bổ sung bên dưới tiêu đề của phần: ssh = PATH_TO_PLINK / PLINK.EXE -load vớ_proxy . Trên thực tế, tên giao thức là lựa chọn của bạn, vì vậy bạn có thể chọn bất kỳ tên nào nếu ssh đã được sử dụng (ví dụ: sử dụng pssh = thay vì ssh = ).
  6. Khóa cấu hình để truy cập SSH vào máy chủ mục tiêu nơi SSH sẽ được sử dụng để chạy svnserve . Bạn nên sử dụng trang để bảo trì khóa.
  7. Sử dụng svn để truy cập svn + ssh. Tên người dùng phải được chuyển qua URL - svn ls svn + Protocol_name : // username @ server / repository trong đó tên giao thức nên được thay thế bằng tên thật được sử dụng trong phần [đường hầm] của cấu hình SVN.

Nó là gì - SVN sẽ sử dụng tên giao thức để phát hiện rằng plink.exe nên được sử dụng để kết nối và plink sẽ sử dụng tên phiên vớ_proxy để xác định proxy có mặt. Hãy nhớ rằng PATH_TO_PLINK phải được nhập bằng dấu gạch chéo, không phải bằng dấu gạch chéo ngược. Ví dụ cho trường hợp khi plink.exe nằm trong thư mục C: \ Program Files \ Putty: ssh = C: / Chương trình tập tin / Putty / PLINK.EXE -load vớ_proxy .


1

Bạn có thể thử tsocks . Với tsocks, bạn định cấu hình nó để sử dụng SOCKS proxy SSH thiết lập sau đó chạy svn như vậy:

tsocks svn co {etc...}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.