SSH -L chuyển tiếp cổng cục bộ với localhost trỏ đến các trang sai


1

xin lỗi nếu câu hỏi của tôi là ngu ngốc nhưng tôi không thể hiểu hai điều. Giả sử tôi đang làm ví dụ được viết ở đây :

[...] Bạn muốn kết nối từ máy tính xách tay của mình với http: //www.ubuntuforums org bằng cách sử dụng đường hầm SSH. Bạn sẽ sử dụng số cổng nguồn 8080 (cổng http thay thế), cổng đích 80 (cổng http) và máy chủ đích www.ubuntuforums.org. :

ssh -L 8080:www.ubuntuforums.org:80 <host>

Nơi <host>nên được thay thế bằng tên của máy tính xách tay của bạn.

Q1: Những gì tôi thực sự có thể đạt được với điều này? Trên máy chủ từ xa, không có sshd khả dụng, vì vậy lưu lượng truy cập khiến PC của tôi không được mã hóa, phải không? Tôi cần cái này để làm gì?

Q2: Tôi đang cố gắng thực hiện ssh -L 4444: linuxpl.com: 80 localhost. Khi tôi nhập http: // localhost: 4444 trong trình duyệt web của mình, tôi có thể thấy trang web nội bộ của LiteSpeed ​​Web Server. Khi tôi thử các trang khác, tôi có thể thấy các trang nội bộ của Apache. Khi tôi thử một số khác, tôi có thể thấy trang 404 của trang này không tìm thấy tin nhắn. Một số trong số họ làm việc như mong đợi, mặc dù. Tại sao điều này xảy ra? Làm thế nào để khắc phục nó?


1
Chúng tôi không phải là một diễn đàn, vì vậy để làm cho điều này có thể sử dụng được cho khách truy cập trong tương lai: vui lòng hỏi một câu hỏi cho mỗi câu hỏi.
Arjan

Câu trả lời:


1

Q1: Bạn sẽ không muốn làm điều đó. Các trang là ngớ ngẩn trong từ ngữ của nó. Như bạn đã nói, lưu lượng sẽ đi từ máy tính của bạn sang máy tính được mã hóa, sau đó hoàn toàn không được mã hóa đến trang web diễn đàn. Họ có thể giải thích nó bằng cách sử dụng một máy tính khác để chuyển tiếp lưu lượng, ví dụ như vượt qua tường lửa.

Điều hướng dẫn có nghĩa là "bạn muốn kết nối với diễn đàn thông qua máy tính xách tay của bạn từ một máy khác" và sau đó nó có ý nghĩa tốt hơn.

Câu hỏi 2: Nếu bạn mở http: // localhost: 4444 / trên máy của mình, nó sẽ tạo một yêu cầu HTTP cho diễn đàn, nhưng nó sẽ thông báo cho diễn đàn rằng bạn muốn lưu trữ localhostchứ không phải linuxpl.com. Sau đó, máy chủ có thể sẽ trả về một trang mặc định chứ không phải máy chủ ảo thực tế mà bạn muốn vì nó sử dụng máy chủ ảo và localhostkhông ánh xạ tới cùng một trang như linuxpl.com.

Vì vậy, tất cả, chuyển tiếp lưu lượng HTTP qua các đường hầm ssh sẽ không hoạt động dễ dàng nhiều lần. Chuyển tiếp đến một proxy ở đâu đó sẽ làm việc tốt hơn rất nhiều.

Để trình duyệt của bạn gửi tiêu đề thích hợp, bạn có thể thành công bằng cách đặt tệp máy chủ của mình để xác nhận địa chỉ đích là máy của bạn. Bằng cách này khi trình duyệt đang phân giải địa chỉ, nó sẽ kết nối với máy cục bộ của bạn và vẫn cho máy chủ HTTP biết tên máy chủ thích hợp.

Bạn có thể thử điều này bằng cách thêm dòng

127.0.0.1        linuxpl.com

đến / etc / hosts


Trang này không phải là ngớ ngẩn. Nó không nói localhostnhưng host. Đây là một hướng dẫn hoàn toàn hợp lệ và áp dụng phổ biến.
Daniel B

@DanielB Nó có thể được diễn đạt tốt hơn. Bây giờ nó giải thích làm thế nào để kết nối từ máy tính xách tay của bạn đến một nơi khác, máy chủ lưu trữ là máy tính xách tay. Sau đó, họ nói để kết nối với localhost. Vì vậy, chỉ có một máy. Do đó, đường hầm không thực sự đạt được bất cứ điều gì. Điều này trong tâm trí của tôi là ngớ ngẩn. Nếu nó giải thích làm thế nào để đường hầm thông qua một máy thứ ba, nó sẽ có thể sử dụng được. Ngoài ra, không có gì để giải thích rằng đường hầm này thậm chí sẽ không hoạt động cho các máy chủ ảo, như OP nhận thấy.
Sami Kuhmonen

Không. Toàn bộ hướng dẫn được xây dựng xung quanh thực tế laptoplà một máy bạn có thể kết nối. Không nơi nào nói nó là cùng một máy. Tất nhiên, đó có thể là một lần nữa: Đó chỉ là một hướng dẫn để học cú pháp lệnh .
Daniel B

@DanielB Nó nói "kết nối từ máy tính xách tay của bạn đến ubuntuforums.org bằng đường hầm SSH" , có nghĩa là bạn đang ở trên máy tính xách tay và bạn muốn kết nối từ đó bằng đường hầm. Nó không nói "kết nối qua máy tính xách tay của bạn" hoặc giải thích lý do tại sao thậm chí nói về máy tính xách tay. Đó là từ ngữ ngớ ngẩn. Nó sẽ nói "bạn muốn kết nối từ máy A đến trang web X bằng cách sử dụng đường hầm qua máy B" và nó sẽ không ngớ ngẩn. Và thêm đề cập về giao thức HTTP không hài lòng về nó thường.
Sami Kuhmonen

@ user532872 Đã thêm một cách để đạt được điều đó với tệp máy chủ
Sami Kuhmonen

0

Q1: Tôi đã sử dụng điều này trong một môi trường là bạn không có liên lạc với internet. Hãy tưởng tượng bạn đang chạy máy tính xách tay của bạn trong một mạng không cho phép kết nối với thế giới bên ngoài, nhưng có một máy duy nhất được phép kết nối cả với thế giới bên ngoài và mạng là máy tính xách tay của bạn đang ở. Vì vậy, để có thể duyệt bạn sẽ cần phải chuyển sang máy này, cho biết lưu lượng truy cập internet của bạn vào mạng bên ngoài mặc dù máy được ủy quyền.

Kết nối sẽ diễn ra như sau: Khi bạn nhập http: // localhost: 4444 , ssh sẽ nhận yêu cầu và gửi nó đến máy chủ lưu trữ, sau đó sẽ gửi nó tới linuxpl.com:80. Kết nối giữa máy tính xách tay của bạn và máy chủ được mã hóa bằng ssh, kết nối giữa máy chủ internet không được mã hóa, tức là ssh chỉ chuyển tiếp và mã hóa tin nhắn giữa hai máy của bạn.

Câu 2: Không thực sự hiểu vấn đề là gì, nhưng ssh -L 4444: linuxpl.com: 80 localhost không thực sự có ý nghĩa ... vì bạn đang tạo đường hầm giữa máy và máy của mình ...


Có, nhưng đó chính xác là những gì trang web tôi liên kết ở trên đề xuất. Đó là lý do tại sao tôi hỏi quan điểm của việc đó là gì và tại sao nó không hoạt động đối với một số trang web. Ví dụ bạn cung cấp là khác nhau, nó bao gồm máy thứ 3 trong trò chơi và giả sử nó đang chạy sshd.
dùng532872

Trang web cho biết máy chủ lưu trữ, không phải localhost
berserck
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.