Sự khác biệt giữa chuyển tiếp IP cục bộ và từ xa là gì?


10

Sự khác biệt về chức năng giữa hai là gì? Tôi hơi bối rối bởi nó.

Chuyển tiếp cục bộ làm cho một cổng từ xa có sẵn tại địa phương.

Chuyển tiếp từ xa làm cho một cổng cục bộ có sẵn từ xa.

Nhưng 'tính khả dụng' này sẽ hoạt động theo cả hai hướng ... hay không?

Ví dụ như sau (được phát hành từ một máy chủ 'nhà')

ssh -R 1234:localhost:2345 user@work

Điều này sẽ thiết lập một đường hầm an toàn giữa công việc :: 1234 và nhà :: 2345, phải không?

Nếu tôi đặt bất cứ thứ gì vào một đầu, nó sẽ ra ở đầu kia.

Nhưng sau đó, tôi có thể đạt được điều tương tự bằng cuộc gọi sau từ máy chủ 'làm việc':

ssh -L 1234:localhost:2345 user@home

Vì vậy, sự khác biệt duy nhất là nơi tôi gọi nó từ đâu, đúng không?


Trong ví dụ của bạn không có sự khác biệt về chức năng. Bạn tự sắp xếp để sử dụng đối số ngược lại bằng cách hoán đổi các máy chủ đích. Nếu bạn không làm điều này và sử dụng cả hai từ trong một máy chủ duy nhất - nó sẽ kích hoạt một hành vi hoàn toàn trái ngược.
Xxx

Câu trả lời:


2

Sự khác biệt thực tế chính là, nếu kết nối 2 máy tính A và B và B nằm sau tường lửa hoặc Bộ định tuyến NAT mà bạn không điều khiển và nó sẽ chặn đến .. Bạn đang ngồi ở A. Bạn không thể nhận được A để kết nối với B. Nhưng B sẽ không chặn gửi đi .. Vì vậy, bạn có B để kết nối với A.

- làm rõ

Ở trên, mà người hỏi hiểu .. có nghĩa là sự khác biệt thực tế lớn giữa chuyển tiếp cục bộ và từ xa. ssh -L và ssh -R khi bạn sử dụng mỗi. Tôi đã không bình luận về các lệnh ví dụ cụ thể mà anh ấy đã đưa ra, nơi anh ấy chuyển -L và -R, và máy chủ sshd nào anh ấy kết nối. Nhưng bây giờ tôi sẽ cố gắng bình luận về nó .. Với các lệnh ssh mà anh ta đưa ra, từ góc độ của máy khách thông thường và máy chủ thông thường, dường như không có sự khác biệt, vì nó không nói "ah đây là máy khách ssh và đây là một máy chủ ssh .. "nó không biết ssh và đó là khía cạnh máy khách / máy chủ của ssh không liên quan và cũng không biết đối với máy khách thông thường và máy chủ thông thường. Họ chỉ quan tâm đến người đang lắng nghe, và từ quan điểm của họ, nó trông giống nhau. Máy tính làm việc đang nghe và vào ngày 1234. Họ không ' Tôi nhận thấy rằng trong một trường hợp, đó là máy chủ sshd.exe ssh và trong trường hợp khác đó là máy khách ssh.exe, ssh. Nhân tiện, nơi khách hàng ssh, được coi là địa phương.


ok, cảm ơn bạn, điều đó đã trả lời chính xác câu hỏi của tôi! :-)
nandaloo

@nandaloo Tôi nghĩ nó được gọi là đường hầm ssh ngược. Nếu chúng ta sử dụng bộ khởi tạo và người nghe tạo thành thuật ngữ ('vì những thuật ngữ đó ít mơ hồ hơn máy khách và máy chủ). Ý tưởng là bạn có người khởi xướng và người nghe thường xuyên của bạn và người khởi xướng và người nghe ssh của bạn. Bạn không thể chọn nơi người khởi xướng và người nghe thông thường của bạn. ví dụ: máy chủ HTTP (trình nghe thông thường) ở trên B. B nằm sau tường lửa. A có máy khách HTTP (bộ khởi tạo thông thường). Bạn đặt trình khởi tạo SSH của mình lên B. Xem với đường hầm ngược trình khởi tạo và trình nghe SSH, nằm trên các máy tính đối diện với trình khởi tạo và trình nghe thông thường.
barlop

10

Có, nếu tôi hiểu chính xác, chuyển tiếp cổng cục bộ từ a đến b phải giống hệt với chuyển tiếp cổng từ xa sang b (và ngược lại). Đường hầm đi từ a đến b (nhìn từ a) phải bằng với đường hầm đến từ a đến b (nhìn từ b).

Chuyển tiếp cổng cục bộ tạo ra một đường hầm đi có thể được sử dụng để đưa một máy tính internet công cộng đến máy cục bộ. Người dùng cục bộ có thể truy cập máy chủ từ xa: kết hợp cổng trên máy chủ cục bộ, bởi vì cổng đã cho trên máy chủ (máy khách) cục bộ được chuyển tiếp đến máy chủ và cổng đã cho ở phía từ xa:

ssh -L local_port:remote_host:remote_port user@hostname

Chuyển tiếp cổng từ xa tạo ra một đường hầm đến có thể được sử dụng để đưa một máy tính cục bộ vào internet công cộng. Một người dùng internet có thể truy cập một máy chủ cục bộ nhất định: kết hợp cổng trên một máy chủ từ xa. Cổng đã cho trên máy chủ (máy chủ) từ xa được chuyển tiếp đến máy chủ và cổng đã cho ở phía cục bộ:

ssh -R local_port:remote_host:remote_port user@hostname

1
Tôi cho rằng một sự khác biệt khác, bên cạnh cú pháp, sẽ là quá trình lắng nghe người dùng kết nối. ssh.exe -L bảo ssh.exe lắng nghe (bên cạnh kết nối gửi đi mà nó đã thực hiện). ssh.exe -R bảo sshd.exe lắng nghe (bên cạnh việc nghe nó đã làm).
barlop

@ 0x4a6f4672, 0x4a6f4672có nghĩa là gì?
Pacerier

@Pacerier chỉ viết tắt của tôi “JoFr” trong ký hiệu thập lục phân :-)
0x4a6f4672

3

Với cổng chuyển tiếp cục bộ, bạn (máy khách) mở một ổ cắm nghe trên máy tính của bạn và kết nối máy khách giao thức cấp ứng dụng của bạn với ổ cắm này. Bây giờ kết nối được chuyển tiếp qua SSH đến máy chủ. Máy chủ kết nối với máy chủ từ xa và đường hầm dữ liệu từ máy khách giao thức của bạn đến đích cuối cùng.

Với cổng chuyển tiếp từ xa, máy chủ sẽ mở một ổ cắm nghe trên máy chủ. Một số ứng dụng từ xa kết nối với máy chủ này và gửi thông tin được chuyển đến máy khách của bạn. Tại đây, kết nối được thiết lập đến đích cuối cùng (một số máy chủ giao thức cấp ứng dụng đang chạy trên máy tính hoặc trên mạng của bạn) và dữ liệu được truyền từ ứng dụng từ xa đến đích cuối cùng.


cảm ơn, điều đó làm cho nó rõ ràng hơn cách thức chuyển tiếp cổng hoạt động. Và cảm ơn vì đã chuyển câu hỏi - Tôi thậm chí còn không biết về trang web siêu người dùng này :-)
nandaloo

1

Điều này được hiểu rõ nhất với các ví dụ nhỏ. Trong các ví dụ này, các kết nối được cấu trúc như thế này:

Máy chủ cục bộ - (LAN) - Thiết bị đầu cuối ----- (SSH, thường thông qua Internet) ----- Điểm cuối đường hầm - (LAN) - Máy từ xa

Bạn sử dụng chuyển tiếp cổng cục bộ nếu bạn muốn đường hầm đến một máy / cổng từ xa nhất định, có thể truy cập bằng điểm cuối đường hầm mà bạn có quyền truy cập ssh. Therby, cổng của máy từ xa đó cũng có thể truy cập cục bộ trên thiết bị đầu cuối của riêng bạn, tức là http: // localhost: terminal_port /.

Điều đó được thực hiện bằng cú pháp sau:

ssh -L terminal_port:remote_machine_ip:remote_service_port -p tunnel_endpoint_ssh_port ssh-login@tunnel_endpoint_ip

Bạn có thể sử dụng chuyển tiếp cổng từ xa nếu bạn muốn bật từ xa BẤT CỨ (!) , Người có thể truy cập cổng nghe của điểm cuối đường hầm để có thể truy cập từ xa một ip / cổng trong mạng LAN cục bộ của bạn. Đến máy chủ cục bộ của bạn, có vẻ như kết nối từ máy từ xa được thiết bị đầu cuối khởi tạo.

Cú pháp là:

ssh -R tunnel_endpoint_listen_port:local_server_ip:local_server_port -p tunnel_endpoint_ssh_port ssh-login@tunnel_endpoint_ip

0

Các trang web cho socat làm rõ điều này rất tốt. Vâng, tôi biết ssh và socat là hai thứ hoàn toàn khác nhau - nhưng tài liệu của socat chỉ là rất tốt.

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.