Ответ
SSH-туннелирование (SSH port forwarding) — это метод создания зашифрованного канала между локальным и удаленным компьютером, через который можно безопасно передавать трафик других протоколов.
Это позволяет защитить незашифрованные протоколы или получить доступ к сервисам во внутренней сети.
Основные типы туннелей:
-
Локальный туннель (
-L): Пробрасывает порт с локальной машины на удаленный сервер. Используется для доступа к удаленному сервису (например, базе данных) так, как будто он запущен локально.# Локальный порт 8080 будет перенаправлен на порт 80 удаленного сервера ssh -L 8080:localhost:80 user@remote-server -
Удалённый туннель (
-R): Пробрасывает порт с удаленного сервера на локальную машину. Полезно, когда нужно предоставить доступ к локальному веб-серверу из внешней сети.# Удаленный сервер будет слушать порт 9000 и перенаправлять трафик на порт 3000 локальной машины ssh -R 9000:localhost:3000 user@remote-server -
Динамический туннель (
-D): Создает SOCKS-прокси на локальной машине. Весь трафик, направленный через этот прокси, будет выходить в сеть с IP-адреса удаленного сервера.# Создать SOCKS-прокси на локальном порту 1080 ssh -D 1080 user@remote-server
Сферы применения: безопасный доступ к базам данных, обход сетевых ограничений, доступ к внутренним ресурсам компании.
Ответ 18+ 🔞
Смотри, вот тебе про SSH-туннели, но без этой академической сухости, а как есть, на пальцах.
Представь, что SSH — это не просто способ влезть на сервер и покомандовать. Это, блядь, такой универсальный швейцарский нож с функцией телепортации для твоего интернет-трафика. Зашифрованный, надёжный, как швейцарский банк, только без этих ихних часов.
Суть в чём? Берёшь любой свой кривой, незащищённый трафик (например, к базе данных, которая общается как голый на улице) и прогоняешь его через этот защищённый SSH-канал. Всё. Теперь снаружи видны только шифрованные SSH-потоки. Красота, ёпта!
А делается это тремя основными способами, и тут главное не запутаться:
-
Локальный туннель (
-L) — «Принеси мне это сюда». Ты сидишь за своим компом и хочешь достучаться до сервиса на удалённой машине (или даже через неё до третьей), но напрямую нельзя. Ты говоришь SSH: «Слушай, друг, открой у меня на компе порт 8080, а всё, что туда прилетит, аккуратно заверни, пронеси через наш секретный туннель до той стороны и отдай на порт 80 там». И он делает!ssh -L 8080:localhost:80 user@remote-serverПосле этого открываешь браузер на
localhost:8080— и опа, ты уже смотришь веб-страницу сremote-server, как будто она у тебя локально крутится. Магия, блядь! Или базу данных так подключать — вообще песня. -
Удалённый туннель (
-R) — «Выставь моё это там». Обратная ситуация. У тебя на ноуте крутится локальный веб-сервер на порту 3000, и ты хочешь показать его другу на другом конце света. Но у тебя белый IP? Да хуй там! Ты говоришь SSH: «Вот, возьми доступ к моему порту 3000, пробейся на удалённый серверgateway.comи открой там для всех порт 9000. Кто придёт на тот порт — веди ко мне».ssh -R 9000:localhost:3000 user@gateway.comТеперь друг заходит на
gateway.com:9000— и его трафик по туннелю прилетает прямиком к тебе на ноут. Удобно для демок или когда нужно дать доступ к своей локальной разработке. Хитрая жопа, а не технология. -
Динамический туннель (
-D) — «Сделай из меня прокси-сервер». Это уже полная свобода. Ты создаёшь на своём компе локальный SOCKS-прокси.ssh -D 1080 user@server-in-free-countryНастраиваешь в браузере или системе: «Весь мой трафик гони через
localhost:1080». И всё! Теперь весь твой интернет-сёрфинг будет выходить в сеть с IP-адреса того самогоserver-in-free-country. Весь, Карл! Обход блокировок, безопасность в публичных сетях — одним махом. Правда, скорость иногда страдает, но тут уж, как говорится, или грузиться быстро с риском, или безопасно, но с чаечком.
Где это всё, блядь, применять? Да везде! Доступ к внутренней базе данных компании из дома, проброс портов через десять файрволов, безопасная работа в кафешке, обход идиотских региональных блокировок... В общем, инструмент овердохуищной полезности. Главное — понять логику, а там уже руки сами запомнят эти -L, -R и -D.