Как использовать SSH-туннелирование для доступа к серверам с ограниченным доступом и безопасного просмотра

Jul 12, 2025
Конфиденциальность и безопасность

Клиент SSH подключается к Сервер Secure Shell , который позволяет вам запускать команды терминала, как если бы вы сидели за другим компьютером. Но клиент SSH также позволяет «туннелировать» порт между вашей локальной системой и удаленным сервером SSH.

Существует три разных типа SSH-туннелирования, и все они используются для разных целей. Каждый из них предполагает использование SSH-сервера для перенаправления трафика с одного сетевого порта на другой. Трафик пересылается по зашифрованному SSH-соединению, поэтому его нельзя отслеживать или изменять при передаче.

Вы можете сделать это с помощью ssh команда включена в Linux, macOS и другие UNIX-подобный операционные системы. В Windows, в которой нет встроенной команды ssh, мы рекомендуем бесплатный инструмент PuTTY для подключения к SSH серверам. Он также поддерживает SSH-туннелирование.

Перенаправление локальных портов: сделайте удаленные ресурсы доступными в вашей локальной системе

«Перенаправление локального порта» позволяет получить доступ к ресурсам локальной сети, не подключенным к Интернету. Например, предположим, что вы хотите получить доступ к серверу базы данных в вашем офисе из дома. По соображениям безопасности этот сервер базы данных настроен только на прием подключений из локальной офисной сети. Но если у вас есть доступ к серверу SSH в офисе, и этот сервер SSH разрешает соединения извне офисной сети, то вы можете подключиться к этому серверу SSH из дома и получить доступ к серверу базы данных, как если бы вы были в офисе. Это часто бывает, потому что легче защитить один SSH-сервер от атак, чем защитить множество различных сетевых ресурсов.

Для этого вы устанавливаете SSH-соединение с SSH-сервером и указываете клиенту перенаправлять трафик с определенного порта с вашего локального ПК - например, порта 1234 - на адрес сервера базы данных и его порт в офисной сети. Итак, когда вы пытаетесь получить доступ к серверу базы данных через порт 1234 вашего текущего ПК, «localhost», этот трафик автоматически «туннелируется» через соединение SSH и отправляется на сервер базы данных. Сервер SSH находится посередине, перенаправляя трафик туда и обратно. Вы можете использовать любую командную строку или графический инструмент для доступа к серверу базы данных, как если бы он работал на вашем локальном ПК.

Чтобы использовать локальную переадресацию, подключитесь к серверу SSH в обычном режиме, но также предоставьте -L аргумент. Синтаксис:

ssh -L локальный_порт: удаленный_адрес: удаленный_порт имя_пользователя@server.com

Например, предположим, что сервер базы данных в вашем офисе расположен по адресу 192.168.1.111 в офисной сети. У вас есть доступ к SSH-серверу офиса по адресу сш.ероффисе.ком , а ваша учетная запись на SSH-сервере - боб . В этом случае ваша команда будет выглядеть так:

ssh -L 8888: 192.168.1.111: 1234 [email protected]

После выполнения этой команды вы сможете получить доступ к серверу базы данных через порт 8888 на локальном хосте. Итак, если сервер базы данных предлагает веб-доступ, вы можете подключить http: // localhost: 8888 в свой веб-браузер, чтобы получить к нему доступ. Если у вас есть инструмент командной строки, которому нужен сетевой адрес базы данных, вы должны указать его на localhost: 8888. Весь трафик, отправляемый на порт 8888 на вашем ПК, будет туннелироваться на 192.168.1.111:1234 в вашей офисной сети.

Это немного запутывает, если вы хотите подключиться к серверному приложению, работающему в той же системе, что и сам SSH-сервер. Например, предположим, что у вас есть SSH-сервер, работающий на порту 22 на вашем офисном компьютере, но у вас также есть сервер базы данных, работающий на порту 1234 в той же системе по тому же адресу. Вы хотите получить доступ к серверу базы данных из дома, но система принимает SSH-соединения только через порт 22, а ее брандмауэр не разрешает никакие другие внешние соединения.

В этом случае вы можете запустить команду, подобную следующей:

ssh -L 8888: локальный: 1234 [email protected]

Когда вы пытаетесь получить доступ к серверу базы данных через порт 8888 на вашем текущем ПК, трафик будет отправляться через соединение SSH. Когда он поступает в систему, на которой запущен SSH-сервер, SSH-сервер отправляет его на порт 1234 на «localhost», который является тем же самым компьютером, на котором запущен сам SSH-сервер. Таким образом, «localhost» в приведенной выше команде означает «localhost» с точки зрения удаленного сервера.

Для этого в приложении PuTTY в Windows выберите «Подключение»> «SSH»> «Туннели». Выберите вариант «Местный». В поле «Исходный порт» введите локальный порт. Для «Назначения» введите адрес и порт назначения в форме удаленный_адрес: удаленный_порт.

Например, если вы хотите настроить тот же туннель SSH, что и выше, вы должны ввести 8888 как исходный порт и локальный: 1234 как пункт назначения. Затем нажмите «Добавить», а затем «Открыть», чтобы открыть соединение SSH. Вам также, конечно же, нужно будет ввести адрес и порт самого SSH-сервера на главном экране «Сеанс» перед подключением.

Перенаправление удаленных портов: сделайте локальные ресурсы доступными в удаленной системе

«Переадресация удаленного порта» - это противоположность локальной переадресации, и она используется не так часто. Это позволяет сделать ресурс на локальном ПК доступным на сервере SSH. Например, предположим, что вы запускаете веб-сервер на локальном компьютере, перед которым находитесь. Но ваш компьютер защищен брандмауэром, который не пропускает входящий трафик к серверному программному обеспечению.

Предполагая, что вы можете получить доступ к удаленному серверу SSH, вы можете подключиться к этому серверу SSH и использовать переадресацию удаленного порта. Ваш SSH-клиент скажет серверу перенаправить определенный порт, скажем, порт 1234, на SSH-сервере на определенный адрес и порт на вашем текущем ПК или в локальной сети. Когда кто-то обращается к порту 1234 на SSH-сервере, этот трафик автоматически «туннелируется» через SSH-соединение. Любой, у кого есть доступ к SSH-серверу, сможет получить доступ к веб-серверу, запущенному на вашем ПК. По сути, это способ туннелирования через брандмауэры.

Чтобы использовать удаленную переадресацию, используйте ssh команда с аргумент. Синтаксис во многом такой же, как и при локальной пересылке:

ssh -R удаленный_порт: локальный_адрес: локальный_порт имя_пользователя@server.com

Допустим, вы хотите сделать так, чтобы серверное приложение прослушивало порт 1234 на вашем локальном ПК, доступный на порту 8888 на удаленном SSH-сервере. Адрес SSH-сервера: сш.ероффисе.ком и ваше имя пользователя на SSH-сервере боб . Вы запустите следующую команду:

ssh -R 8888: localhost: 1234 [email protected]

Затем кто-то может подключиться к серверу SSH через порт 8888, и это соединение будет туннелировано к серверному приложению, работающему на порту 1234 на локальном ПК, с которого вы установили соединение.

Для этого в PuTTY в Windows выберите «Подключение»> «SSH»> «Туннели». Выберите вариант «Удаленный». В поле «Порт источника» введите удаленный порт. В поле «Назначение» введите адрес и порт назначения в форме local_address: local_port.

Например, если вы хотите настроить приведенный выше пример, вы должны ввести 8888 как исходный порт и локальный: 1234 как пункт назначения. Затем нажмите «Добавить», а затем «Открыть», чтобы открыть соединение SSH. Вам также, конечно же, нужно будет ввести адрес и порт самого SSH-сервера на главном экране «Сеанс» перед подключением.

Затем люди могут подключиться к порту 8888 на SSH-сервере, и их трафик будет туннелироваться на порт 1234 в вашей локальной системе.

По умолчанию удаленный SSH-сервер будет прослушивать соединения только с того же хоста. Другими словами, только люди в той же системе, что и сам SSH-сервер, смогут подключиться. Это сделано из соображений безопасности. Вам нужно будет включить опцию «GatewayPorts» в sshd_config на удаленном SSH-сервере, если вы хотите изменить это поведение.

Динамическая переадресация портов: используйте свой SSH-сервер в качестве прокси

СВЯЗАННЫЕ С: В чем разница между VPN и прокси?

Также существует «динамическое перенаправление портов», которое работает аналогично прокси или VPN. Клиент SSH создаст SOCKS прокси вы можете настроить приложения для использования. Весь трафик, отправляемый через прокси, будет отправляться через SSH-сервер. Это похоже на локальную переадресацию - он принимает локальный трафик, отправленный на определенный порт на вашем ПК, и отправляет его через SSH-соединение в удаленное место.

СВЯЗАННЫЕ С: Почему использование общедоступной сети Wi-Fi может быть опасным даже при доступе к зашифрованным веб-сайтам

Например, предположим, что вы используете общедоступную сеть Wi-Fi. Вы хотите безопасный просмотр без слежки . Если у вас есть доступ к серверу SSH дома, вы можете подключиться к нему и использовать динамическую переадресацию портов. Клиент SSH создаст прокси-сервер SOCKS на вашем ПК. Весь трафик, отправляемый на этот прокси-сервер, будет отправлен через соединение с SSH-сервером. Никто, отслеживающий общедоступную сеть Wi-Fi, не сможет отслеживать ваши просмотры или подвергать цензуре веб-сайты, к которым вы можете получить доступ. С точки зрения любого посещаемого вами веб-сайта это будет похоже на то, как если бы вы сидели перед своим компьютером дома. Это также означает, что вы можете использовать этот трюк для доступа к веб-сайтам только для США, находясь за пределами США - конечно, при условии, что у вас есть доступ к SSH-серверу в США.

В качестве другого примера вы можете получить доступ к приложению медиа-сервера, которое есть в вашей домашней сети. По соображениям безопасности у вас может быть только SSH-сервер, подключенный к Интернету. Вы не разрешаете входящие подключения из Интернета к вашему медиасерверу. Вы можете настроить динамическую переадресацию портов, настроить веб-браузер для использования прокси-сервера SOCKS, а затем получить доступ к серверам, работающим в вашей домашней сети, через веб-браузер, как если бы вы сидели перед своей системой SSH дома. Например, если ваш медиа-сервер расположен на порту 192.168.1.123 в вашей домашней сети, вы можете подключить адрес 192.168.1.123 в любое приложение, использующее прокси-сервер SOCKS, и вы получите доступ к медиа-серверу, как если бы вы были в своей домашней сети.

Чтобы использовать динамическую пересылку, запустите команду ssh с -D аргумент, например:

ssh -D локальный_порт имя_пользователя@server.com

Например, предположим, что у вас есть доступ к серверу SSH по адресу сш.уорхоме.ком и ваше имя пользователя на SSH-сервере боб . Вы хотите использовать динамическую пересылку для открытия прокси-сервера SOCKS на порту 8888 на текущем ПК. Вы запустите следующую команду:

ssh -D 8888 [email protected]

Затем вы можете настроить веб-браузер или другое приложение на использование вашего локального IP-адреса (127.0.01) и порта 8888. Весь трафик от этого приложения будет перенаправлен через туннель.

Для этого в PuTTY в Windows выберите «Подключение»> «SSH»> «Туннели». Выберите вариант «Динамический». В поле «Исходный порт» введите локальный порт.

Например, если вы хотите создать прокси-сервер SOCKS на порту 8888, вы должны ввести 8888 как исходный порт. Затем нажмите «Добавить», а затем «Открыть», чтобы открыть соединение SSH. Вам также, конечно же, нужно будет ввести адрес и порт самого SSH-сервера на главном экране «Сеанс» перед подключением.

Затем вы можете настроить приложение для доступа к прокси-серверу SOCKS на вашем локальном ПК (то есть IP-адрес 127.0.0.1, который указывает на ваш локальный ПК) и указать правильный порт.

СВЯЗАННЫЕ С: Как настроить прокси-сервер в Firefox

Например, вы можете настроить Firefox для использования прокси-сервера SOCKS . Это особенно полезно, потому что Firefox может иметь свои собственные настройки прокси-сервера и не должен использовать общесистемные настройки прокси-сервера. Firefox будет отправлять свой трафик через туннель SSH, в то время как другие приложения будут использовать ваше интернет-соединение в обычном режиме.

При этом в Firefox выберите «Ручная настройка прокси», введите «127.0.0.1» в поле хоста SOCKS и введите динамический порт в поле «Порт». Оставьте поля HTTP Proxy, SSL Proxy и FTP Proxy пустыми.

Туннель будет оставаться активным и открытым до тех пор, пока у вас открыто соединение сеанса SSH. Когда вы завершите сеанс SSH и отключитесь от сервера, туннель также будет закрыт. Просто повторно подключитесь с помощью соответствующей команды (или соответствующих параметров в PuTTY), чтобы снова открыть туннель.

How To Use SSH Tunneling To Access Restricted Servers And Browse Securely

SSH Tunneling Explained

How To Access Your Computer From Anywhere With VNC | SSH Tunneling

Tunneling Web Traffic Through SSH

SSH Tunneling: Bypass Your ISPs

Bypassing Firewalls Using SSH Tunneling

How To Use SSH Public Key Authentication

BASH Tutorial - SSH Tunneling With Firefox

Secure Your Web Traffic Without VPN Or Proxy - Using SSH Tunneling

SSH On The Command Line -- 3: Using SSH To Browse The Web Safely

SSH Tunneling - Local & Remote Port Forwarding (by Example)


Конфиденциальность и безопасность - Самые популярные статьи

Вам нужен антивирус на Mac?

Конфиденциальность и безопасность Sep 26, 2025

Krisda / Shutterstock Ни одно программное обеспечение, в том числе macOS, не защищено от ата�..


Есть ли способ узнать, кто просматривал ваш профиль в Facebook?

Конфиденциальность и безопасность Nov 10, 2024

НЕКЕШЕРОВАННЫЙ КОНТЕНТ Существует множество расширений для браузера, приложений и веб-сайтов, ко..


Браузер медленный? Как снова сделать Google Chrome быстрым

Конфиденциальность и безопасность Jul 3, 2025

Веб-браузеры - наши постоянные спутники, поэтому иметь браузер, который кажется медленнее, чем долж..


Как оптимизировать Microsoft Edge для максимальной конфиденциальности

Конфиденциальность и безопасность Apr 12, 2025

НЕКЕШЕРОВАННЫЙ КОНТЕНТ Как и другие современные браузеры, Microsoft Edge включает некоторые функции, ко..


Как удалить сообщение Facebook

Конфиденциальность и безопасность Feb 17, 2025

НЕКЕШЕРОВАННЫЙ КОНТЕНТ Есть много веских причин для удаления случайных сообщений Facebook. Возможно,..


Почему пароля Windows недостаточно для защиты ваших данных

Конфиденциальность и безопасность Sep 22, 2025

Итак, вы установили пароль на своем ноутбуке или настольном компьютере с Windows и всегда выходите из �..


Как убедиться, что на вашем домашнем маршрутизаторе установлены последние обновления безопасности

Конфиденциальность и безопасность May 23, 2025

НЕКЕШЕРОВАННЫЙ КОНТЕНТ Постоянное обновление домашнего роутера является важной частью обеспече..


Сделайте просмотр в Google Chrome более безопасным для детей

Конфиденциальность и безопасность Apr 26, 2025

Если вас беспокоят веб-сайты, которые ваши дети могут случайно посетить во время просмотра, вы можете вз�..


Категории