Tôi đang cố gắng để hiểu sự khác biệt giữa ssh -L đến -D. Có bất cứ điều gì khác ngoại trừ điều đó -D chỉ là SOCKS không?
Cảm ơn!
Tôi đang cố gắng để hiểu sự khác biệt giữa ssh -L đến -D. Có bất cứ điều gì khác ngoại trừ điều đó -D chỉ là SOCKS không?
Cảm ơn!
Câu trả lời:
ssh -L
mở một cảng địa phương. Mọi thứ bạn gửi đến cổng đó đều được đặt qua kết nối ssh và rời khỏi máy chủ. Nếu bạn làm, ví dụ, ssh -L 4444:google.com:80
nếu bạn mở http://localhost:4444
trên trình duyệt của mình, bạn sẽ thực sự thấy trang của google.
ssh -D
mở một cổng cục bộ, nhưng nó không có điểm cuối cụ thể như với -L
. Thay vào đó, nó giả vờ là một proxy SOCKS. Nếu bạn mở, ví dụ, ssh -D 7777
khi bạn bảo trình duyệt của mình sử dụng localhost:7777
làm proxy SOCKS, mọi thứ yêu cầu trình duyệt của bạn đều đi qua đường hầm ssh. Đối với internet công cộng, dường như bạn đang duyệt từ máy chủ ssh của bạn thay vì từ máy tính của bạn.
The bind_address of “localhost” indicates that the listening port be bound for local use only, while an empty address or ‘*’ indicates that the port should be available from all interfaces.
ssh -L 4444:google.com:80
không hoạt động đối với tôi, nó yêu cầu một tham số khác để đăng nhập, như user@example.com
Trong SSH, -D
chỉ định chuyển tiếp cổng cấp ứng dụng động động cục bộ của địa phương.
SSH -D [bind_address:]port
Chỉ định chuyển tiếp cổng cấp độ ứng dụng động động cục bộ. Điều này hoạt động bằng cách phân bổ một ổ cắm để nghe cổng ở phía cục bộ, tùy chọn ràng buộc với bind_address được chỉ định. Bất cứ khi nào kết nối được thực hiện với cổng này, kết nối sẽ được chuyển tiếp qua kênh bảo mật và sau đó giao thức ứng dụng được sử dụng để xác định nơi kết nối từ máy từ xa. Hiện tại các giao thức SOCKS4 và SOCKS5 được hỗ trợ và ssh sẽ hoạt động như một máy chủ SOCKS. Chỉ root mới có thể chuyển tiếp các cổng đặc quyền. Chuyển tiếp cổng động cũng có thể được chỉ định trong tệp cấu hình.
Địa chỉ IPv6 có thể được chỉ định bằng một cú pháp thay thế: cổng [bind_address /] hoặc bằng cách đặt địa chỉ trong dấu ngoặc vuông.
Chỉ có siêu người dùng mới có thể chuyển tiếp các cổng đặc quyền. Theo mặc định, cổng cục bộ bị ràng buộc theo cài đặt GatewayPorts. Tuy nhiên, một bind_address rõ ràng có thể được sử dụng để liên kết kết nối đến một địa chỉ cụ thể. Bind_address của khu vực localhost trực tuyến chỉ ra rằng cổng nghe chỉ bị ràng buộc chỉ sử dụng cục bộ, trong khi một địa chỉ trống hoặc '*' chỉ ra rằng cổng phải có sẵn từ tất cả các giao diện.
Ngoài ra, ssh -L
Chỉ định rằng cổng đã cho trên máy chủ (máy khách) cục bộ sẽ được chuyển tiếp đến máy chủ và cổng đã cho ở phía từ xa.
SSH -L [bind_address:]port:host:hostport
Chỉ định rằng cổng đã cho trên máy chủ cục bộ (máy khách) sẽ được chuyển tiếp đến máy chủ và cổng đã cho ở phía xa. Điều này hoạt động bằng cách phân bổ một ổ cắm để nghe cổng ở phía cục bộ, tùy chọn ràng buộc với bind_address được chỉ định. Bất cứ khi nào kết nối được thực hiện với cổng này, kết nối sẽ được chuyển tiếp qua kênh bảo mật và kết nối được thực hiện để lưu trữ cổng máy chủ từ máy từ xa. Chuyển tiếp cổng cũng có thể được chỉ định trong tệp cấu hình. Địa chỉ IPv6 có thể được chỉ định bằng một cú pháp thay thế: [bind_address /] port / host / hostport hoặc bằng cách đặt địa chỉ trong ngoặc vuông.
Chỉ có siêu người dùng mới có thể chuyển tiếp các cổng đặc quyền. Theo mặc định, cổng cục bộ bị ràng buộc theo cài đặt GatewayPorts. Tuy nhiên, một bind_address rõ ràng có thể được sử dụng để liên kết kết nối đến một địa chỉ cụ thể. Bind_address của khu vực localhost trực tuyến chỉ ra rằng cổng nghe chỉ bị ràng buộc chỉ sử dụng cục bộ, trong khi một địa chỉ trống hoặc '*' chỉ ra rằng cổng phải có sẵn từ tất cả các giao diện.