2011-11-10 33 views
6

Tôi có một kịch bản cụ thể mà tôi muốn giải quyết. Tôi hiện kết nối đến một máy chủ thông qua cổng chuyển tiếp:chuyển tiếp cổng ssh (đường hầm) trong linux

laptop -> gateway -> remote_server_1 

và host khác:

laptop -> remote_server_2 

với mật mã đăng nhập làm việc trên cả hai. Cả hai máy chủ từ xa đều không hiển thị với thế giới bên ngoài. Bây giờ tôi đang chạy một dịch vụ trên remote_server_2, mà tôi muốn để có thể truy cập trên remote_server_1. Tôi đoán tôi phải thiết lập chuyển tiếp cổng đảo ngược từ remote_server_1 để máy tính xách tay của tôi, và sau đó vào remote_server_2, nhưng tôi không chắc chắn làm thế nào để làm điều này. Bất cứ ai đi qua tình trạng này trước đây?

Edit: Các giải pháp đầy đủ trong trường hợp bất cứ ai khác cần nó:

mylaptop$ ssh -L 3001:localhost:3000 server_2 
server_2$ netcat -l 3000 

Sau đó thiết lập đường hầm qua gateway-server_1:

ssh -t -t -L 3003:server_1:22 gateway 

Sau đó truy cập nó từ server_1:

ssh -R 3002:localhost:3001 -p3003 localhost 
echo "bar" | nc localhost 3002` 

và hey presto server_2 hiển thị bar :-)

Trả lời

4

Bạn phải làm chính xác như bạn đã mô tả. Thiết lập máy chủ trên server_2.

mylaptop$ ssh -L 3001:localhost:3000 server_2 
server_2$ netcat -l 3000 

Sau đó truy cập vào nó từ server_1.

mylaptop$ ssh -R 3002:localhost:3001 server_1 
server_1$ echo "foo" | netcat localhost 3002 

server_2 sẽ hiển thị foo.

+0

Điều này gần như hoạt động, ngoại trừ tôi cũng phải đi qua đường hầm đến máy chủ_1. Vì vậy, nếu tôi làm: mylaptop $ ssh -L 3003: cổng: 3002 server_1 và mylaptop $ ssh -R 3003: localhost: 3000 -p3003 localhost tôi trên đường phải không? Helpfully server_1 không có netcat trên nó (Tôi không có quyền quản trị trên cái đó) – tdc

+0

Xin lỗi vừa nhận ra netcat là nc trên đó. Dù sao nó vẫn chưa hoàn toàn hoạt động. – tdc

+0

Tôi sẽ cung cấp cho bạn câu trả lời được chấp nhận, vì nó đã cho tôi đủ manh mối để tiếp tục - câu trả lời đầy đủ trong bản chỉnh sửa của tôi. – tdc

Các vấn đề liên quan