Tôi có thể tạo SSH để tạo đường hầm HTTP thông qua máy chủ như proxy không?


33

Nói rằng tôi có một serverclient. Tôi cần tạo kết nối từ clientđến websitethông qua servernhư là proxy.

Có thể thực hiện việc này bằng cách sử dụng đường dẫn SSH hoặc tôi phải cài đặt một số dịch vụ proxy cho server?

Câu trả lời:


43

Bạn có thể làm điều này bằng cách sử dụng ssh

ssh -L 80:remotehost:80 user@myserver

Bạn sẽ có một đường hầm từ cổng cục bộ 80 đến cổng remotehost 80 sau đó. Điều này không phải giống như myserver. Để làm cho minh bạch, bạn nên thêm một mục vào tập tin máy chủ. Nếu bạn không làm điều đó thì vhost sẽ không hoạt động. Nếu bạn muốn kết nối SOCKS-proxy, bạn cũng có thể sử dụng

ssh -D 5000 user@myserver

Điều này sẽ tạo một SOCKS-proxy trên cổng localhost 5000, định tuyến tất cả các yêu cầu thông qua myserver.


2
Nếu bạn cần đường hầm đó có sẵn từ các máy khách bên ngoài hộp của bạn, hãy thêm tùy chọn -g.
mr-euro

1
Lệnh như đã viết không làm việc cho tôi. Tôi đã phải thay thế máy chủ từ xa bằng loopback như thế này: ssh -L 80: 127.0.0.1: 80 user @ myserver
eficker

Sẽ hữu ích hơn nếu cổng từ xa khác với ssh -L 81:remotehost:80 user@myservercổng địa phương 81 nói chuyện như thể nó là 80 trên điều khiển từ xa.
Rafareino

1
Nếu bạn muốn thêm proxy SOCKS thông qua ~ / .ssh / config, hãy sử dụng:Host myserver User user DynamicForward 5000
bonh

15

Vâng, nó là có thể.

Chạy ssh -D port user@hostvà thiết lập ứng dụng khách của bạn để sử dụng hộp của bạn làm proxy SOCKS.

Nếu bạn cần một proxy HTTP cụ thể thì bạn có thể sử dụng Proxychains và định tuyến nó thông qua SOCKS trước đó.


5

Putty cũng làm điều này khá tốt.

Trong SSH, đường hầm goto. Ở phía dưới, đặt 8080 vào cổng và đối với đích, hãy để nó màu đen và chọn nút radio "Động". Đó là tất cả những gì bạn cần làm, bây giờ kết nối với máy chủ bằng Putty.

Sau khi kết nối, bạn có một máy chủ proxy chạy trên localhost của mình tại cổng 8080, nó sẽ ủy quyền tất cả các yêu cầu thông qua máy chủ của bạn.

Bây giờ sử dụng trình duyệt web và thiết lập proxy bằng cách đặt host = localhost và port = 8080 và đảm bảo proxy SOCKS mà bạn chọn. Tôi làm điều này mọi lúc, vì vậy Nếu bạn sử dụng Firefox, hãy đảm bảo cài đặt plugin FoxyProxy vì nó làm cho bật / tắt proxy một việc chỉ bằng một cú nhấp chuột.

Thận trọng: Lưu ý rằng theo mặc định, các yêu cầu DNS của bạn không được ủy quyền. Vì vậy, trang web mà bạn truy cập qua proxy sẽ vẫn được ghi lại (nếu họ đăng nhập nội dung này). Bạn cũng có thể đặt firefox thành các yêu cầu DNS proxy, mặc định nó không thực hiện được.


5

ssh mực hoạt động giống như VPN nhưng qua SSH.

Máy chủ proxy trong suốt hoạt động như VPN của một người nghèo. Chuyển tiếp qua ssh. Không yêu cầu quản trị viên. Hoạt động với Linux và MacOS. Hỗ trợ đường hầm DNS.

https://github.com/sshript/sshript


2

Để cho phép proxy chạy máy tính và cho phép các máy khách khác kết nối với bạn, bạn sẽ cần tùy chọn -g. Vì vậy, ví dụ, bạn sẽ chạy cái này trên máy chủ có tên foo:

ssh -g -ND 9191 root@remotehost

Sau đó, bạn có thể đặt proxy trong trình duyệt của máy khách để sử dụng máy chủ foo và cổng 9191 cho proxy SOCKS. Các khách hàng sẽ gửi yêu cầu của họ quá foo, người sẽ lần lượt chuyển tiếp yêu cầu thông qua ssh đến remotehost. Vì vậy, trên internet, nó sẽ trông giống như họ đang sử dụng remotehost.

Nếu bạn muốn chuyển tiếp các yêu cầu DNS cũng như với firefox, hãy chỉnh sửa about: config trong firefox và đặt network.proxy.socks_remote_dns thành true.


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.