LinuxНизкая

SSH Туннель: Практическое руководство по созданию безопасного соединения

SSH туннель позволяет создать защищенное соединение через небезопасную сеть, обеспечивая безопасный доступ к удаленным сервисам. В этом гайде вы научитесь создавать туннели различных типов.

Обновлено 9 апреля 2026 г.
15-20 мин
Средняя
FixPedia Team
Применимо к:Linux (любой дистрибутив)OpenSSH 7.0+

Введение

SSH туннель — это мощный инструмент для создания защищенного соединения через небезопасную сеть. Он позволяет перенаправлять сетевой трафик через зашифрованное SSH соединение, обеспечивая конфиденциальность данных и обходя сетевые ограничения. В этой статье мы рассмотрим различные типы SSH туннелей и их практическое применение.

Требования

Перед созданием SSH туннеля убедитесь, что у вас есть:

  • Доступ к удаленному серверу с установленным SSH сервером
  • SSH клиент на вашей локальной машине (обычно предустановлен в Linux)
  • Права доступа к необходимым портам
  • SSH учетные данные (пароль или SSH ключи)

Шаг 1: Подготовка SSH клиента

Сначала проверьте, что SSH клиент установлен и работает:

ssh -V

Если SSH не установлен, установите его:

sudo apt update
sudo apt install openssh-client

Проверьте доступность удаленного сервера:

ping -c 3 remote-server.com

💡 Совет: Для постоянных соединений рекомендуется настроить аутентификацию по SSH ключам вместо пароля.

Шаг 2: Создание локального туннеля

Локальный туннель перенаправляет трафик с вашей локальной машины на удаленный сервер. Это полезно для безопасного доступа к сервисам, запущенным на удаленном сервере.

Команда для создания локального туннеля:

ssh -L 8080:localhost:80 user@remote-server.com

В этой команде:

  • 8080 — локальный порт на вашей машине
  • localhost:80 — адрес и порт на удаленном сервере
  • user@remote-server.com — ваши учетные данные

После выполнения команды вы можете открыть http://localhost:8080 в браузере, и трафик будет перенаправлен на http://remote-server.com:80 через зашифрованный туннель.

Шаг 3: Создание удаленного туннеля

Удаленный туннель позволяет предоставить доступ к сервисам на вашей локальной машине с удаленного сервера. Это полезно для демонстрации веб-сайтов или предоставления доступа к локальным сервисам.

Команда для создания удаленного туннеля:

ssh -R 8080:localhost:3000 user@remote-server.com

В этой команде:

  • 8080 — порт на удаленном сервере
  • localhost:3000 — адрес и порт на вашей локальной машине

Теперь, если вы откроете http://remote-server.com:8080 с любой машины, трафик будет перенаправлен на http://localhost:3000 на вашей локальной машине.

Шаг 4: Создание динамического туннеля

Динамический туннель создает SOCKS прокси, который позволяет безопасно обходить интернет-ограничения и шифровать весь веб-трафик.

Команда для создания динамического туннеля:

ssh -D 1080 user@remote-server.com

В этой команде:

  • 1080 — порт SOCKS прокси на вашей машине

После создания туннеля настройте ваш браузер или приложение на использование SOCKS прокси localhost:1080. Весь трафик будет проходить через зашифрованный туннель.

Проверка результата

Чтобы убедиться, что туннель работает:

  1. Проверьте активность SSH процесса:
    ps aux | grep ssh
    
  2. Проверьте соединение с сервисом через туннель:
    curl -I http://localhost:8080
    
  3. Для динамического туннеля проверьте настройки прокси:
    echo "SOCKS5 localhost:1080" | nc -zv localhost 1080
    

Возможные проблемы

Ошибка "Connection refused"

Если вы получаете ошибку "Connection refused", проверьте:

  • Доступность порта на удаленном сервере
  • Права доступа к портам (некоторые порты требуют права root)
  • Настройки файрвола на обеих машинах

Туннель постоянно рвется

Если SSH туннель постоянно разрывается, попробуйте:

  • Добавить параметр -o ServerAliveInterval=60 для поддержания соединения
  • Настроить keep-alive на SSH сервере
  • Проверить стабильность интернет-соединения

Недостаточно прав для использования порта

Если вы получаете ошибку о недостаточных правах при использовании портов ниже 1024, используйте порты выше 1024 или запускайте команду с правами root:

sudo ssh -L 80:localhost:80 user@remote-server.com

SSH туннели — это мощный инструмент для обеспечения безопасности и обхода сетевых ограничений. С практикой вы сможете создавать сложные конфигурации для различных сценариев использования.

Часто задаваемые вопросы

В чем разница между локальным и удаленным туннелем?
Как проверить, работает ли SSH туннель?
Можно ли создать SSH туннель без пароля?

Полезное

Подготовка SSH клиента
Создание локального туннеля
Создание удаленного туннеля
Создание динамического туннеля

Эта статья помогла вам решить проблему?