SSH là vớ proxy thông qua nhiều máy chủ


21

Có thể đạt được những điều sau đây với SSH.

Có ba máy liên quan:

A. My local machine at home
B. The SSH gateway server at school
C. A workstation in a lab, only reachable through B

Tôi muốn thiết lập proxy SOCKS. Tôi muốn có thể lướt trên máy tính địa phương của tôi ở nhà, giống như tôi đang ở trong phòng thí nghiệm. Điều này là do một số trang web chỉ có thể truy cập từ ip công cộng của trường.

Vì vậy, tôi muốn chạy proxy SOCKS trên máy chủ C. Nhưng tôi không quản lý để làm cho nó hoạt động từ máy chủ A.

Tôi kết nối với cổng và từ cổng tôi kết nối với máy trạm. Nhưng tôi không thể làm cho cổng chuyển lưu lượng truy cập đúng cách từ và sang proxy.

Tôi có thể làm cái này như thế nào?

Câu trả lời:


28

Ba phương pháp hơi khác nhau. (Thay thế $ PORTX và $ PORTY bằng số cổng bạn chọn.)

Phương pháp đầu tiên: ProxyCommand

machine-a$ ssh -f -N -D $PORT -oProxyCommand="ssh -W %h:%p machine-b" machine-c

Phương pháp thứ hai:

  1. Kết nối từ A đến B, với "chuyển tiếp cục bộ" của $PORTđến .localhost:$PORT

    machine-a$ ssh -L $PORT:localhost:$PORT machine-b
    
  2. Kết nối từ B đến C, với "chuyển tiếp động" được bật.

    machine-b$ ssh -f -N -D $PORT machine-c
    
  3. Định cấu hình trình duyệt của bạn để sử dụng proxy tại .localhost:$PORT

Các bước # 1 và # 2 có thể được tóm tắt thành:

ssh -f -L $PORT:localhost:$PORT machine-b "ssh -f -N -D $PORT machine-c"

Phương pháp thứ ba:

  1. Kết nối từ A đến B, với "chuyển tiếp cục bộ" của $PORTXđến machine-c:22.

    machine-a$ ssh -f -N -L $PORTX:machine-c:22 machine-b
    
  2. Kết nối từ A đến C qua đường hầm, với "chuyển tiếp động".

    machine-a$ ssh -f -N -D $PORTY localhost -p $PORTX
    

    (Bạn có thể bỏ qua -f -Nnếu bạn muốn sử dụng cùng một đường hầm cho các kết nối tương tác.)

  3. Định cấu hình trình duyệt của bạn để sử dụng proxy tại .localhost:$PORTY


1
Thật tuyệt vời, cảm ơn! Tôi ước tôi có thể cho thêm +1 để biến nó thành một lớp lót!
jwbensley

2

Đối với Proxy Sock AWS, bên dưới là các bước được áp dụng. Giả sử chúng ta có hai kịch bản bước nhảy như dưới đây

[your-laptop] --<ssh key1>--> [Jump-Box] --<ssh key2>--> [EMR-Master]

Và bạn đã thiết lập FoxyProxy trong trình duyệt của mình. Kích hoạt nó trước khi bắt đầu trước khi bắt đầu các bước.

Bước 1. Đăng nhập vào Jump Box

ssh -i ~ / .ssh / key1 ec2-user @

Bước 2. Thiết lập đường hầm động trên hộp Jump, giả sử Key2 có mặt ở đó.

ssh -i ~ / key2 -N -D 8157 hadoop @

Bước 3. Mở bàn điều khiển mới trên máy khách ssh và thiết lập đường hầm.

ssh -i ~ / .ssh / key1 -L 8157: localhost: 8157 ec2-user @ -N

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.