Я намагаюся зрозуміти відмінності між ssh -L до -D. Чи є щось інше, окрім цього -D - це лише SOCKS?
Дякую!
Я намагаюся зрозуміти відмінності між ssh -L до -D. Чи є щось інше, окрім цього -D - це лише SOCKS?
Дякую!
Відповіді:
ssh -L
відкриває місцевий порт. Все, що ви надсилаєте до цього порту, передається через ssh-з'єднання та залишає через сервер. Якщо ви зробите це, наприклад, ssh -L 4444:google.com:80
якщо ви відкриєте http://localhost:4444
у своєму браузері, ви дійсно побачите сторінку google.
ssh -D
відкриває локальний порт, але він не має конкретної кінцевої точки, як у -L
. Натомість він претендує на проксі-сервера SOCKS. Якщо ви відкриєте, наприклад, ssh -D 7777
коли ви скажете своєму браузеру використовувати localhost:7777
як проксі-сервер SOCKS, все, що запитає ваш браузер, проходить через тунель ssh. Для загальнодоступного Інтернету це як би ви переглядали зі свого ssh-сервера, а не з комп’ютера.
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
для мене не працює, для входу в систему потрібен інший параметр, наприклад user@example.com
У SSH -D
вказує локальну "динамічну" переадресацію порту на рівні додатків.
SSH -D [bind_address:]port
Вказує локальну "динамічну" переадресацію порту на рівні додатків. Це працює, виділяючи сокет для прослуховування порту з локальної сторони, необов'язково прив'язаного до вказаного bind_address. Кожного разу, коли встановлено з'єднання з цим портом, з'єднання передається через захищений канал, а потім протокол програми використовується для визначення місця підключення з віддаленої машини. В даний час підтримуються протоколи SOCKS4 і SOCKS5, і ssh буде виконувати роль сервера SOCKS. Лише root може пересилати привілейовані порти. Динамічні переадресації портів можна також вказати у файлі конфігурації.
Адреси IPv6 можна вказати за допомогою альтернативного синтаксису: порт [bind_address /] або додавши адресу у квадратні дужки.
Лише суперпользователь може пересилати пільгові порти. За замовчуванням локальний порт зв'язаний відповідно до налаштування GatewayPorts. Однак явний bind_address може бути використаний для прив’язки з'єднання до певної адреси. Bind_address "localhost" вказує, що порт прослуховування повинен бути прив'язаний лише для локального використання, тоді як порожня адреса або "*" вказує на те, що порт повинен бути доступний з усіх інтерфейсів.
Додатково, ssh -L
Вказує, що даний порт на локальному (клієнтському) хості повинен бути пересланий на даний хост і порт на віддаленій стороні.
SSH -L [bind_address:]port:host:hostport
Вказує, що даний порт на локальному (клієнтському) хості повинен бути пересланий на даний хост і порт на віддаленій стороні. Це працює, виділяючи сокет для прослуховування порту на локальній стороні, необов'язково прив’язаний до вказаної адреси bind_address. Кожного разу, коли встановлено з'єднання з цим портом, з'єднання пересилається через захищений канал, а з'єднання здійснюється з хостом порту хоста від віддаленої машини. Переадресацію портів можна також вказати у файлі конфігурації. Адреси IPv6 можна вказати за допомогою альтернативного синтаксису: [bind_address /] порт / хост / порт хосту або шляхом додавання адреси у квадратні дужки.
Лише суперпользователь може пересилати пільгові порти. За замовчуванням локальний порт зв'язаний відповідно до налаштування GatewayPorts. Однак явний bind_address може бути використаний для прив’язки з'єднання до певної адреси. Bind_address "localhost" вказує, що порт прослуховування повинен бути прив'язаний лише для локального використання, тоді як порожня адреса або "*" вказує на те, що порт повинен бути доступний з усіх інтерфейсів.