Руководство по развертыванию Pinggy обратного прокси-сервиса в ServBay
Pinggy — это простой инструмент для обхода локальной сети, который с помощью технологии обратного прокси может безопасно экспонировать ваши локальные сервисы в интернете. В этом руководстве подробно объясняется, как использовать Pinggy в среде ServBay для быстрого доступа к локальным веб-сервисам через интернет.
Технический принцип
Pinggy создает безопасный SSH-туннель, который отображает локальные сервисы, развернутые за NAT/фаерволом, в публичную сеть. В контексте ServBay это позволяет разработчикам легко публиковать локальные веб-сервисы для отладки, тестирования и демонстрации.
Подготовка окружения
Не требуется установка клиентского ПО! Одно из главных достоинств Pinggy — это то, что не нужно устанавливать никакое программное обеспечение на локальный компьютер. Вам нужен только терминал с поддержкой SSH.
Практическая настройка туннеля
Основная команда
Установить туннель с помощью Pinggy очень просто. Просто выполните следующую команду в терминале:
ssh -p 443 -R0:localhost:443 -o StrictHostKeyChecking=no -o ServerAliveInterval=30 -t [email protected] x:localServerTls:servbay.new "u:host:servbay.new"
Компонент параметра | Описание функции |
---|---|
-p 443 | Указывает порт SSH-соединения с сервером Pinggy — 443 (стандартный порт HTTPS). |
-R0:localhost:443 | Перенаправление удаленного порта. 0 означает, что сервер Pinggy автоматически выделит случайный порт. localhost:443 указывает на перенаправление удаленного порта на локальный порт 443 (HTTPS). |
-o StrictHostKeyChecking=no | Отключает проверку ключей SSH (удобно для первоначального соединения или тестирования, но не рекомендуется в производственной среде). |
-o ServerAliveInterval=30 | Каждые 30 секунд отправляет сообщение Keep-Alive, чтобы поддерживать соединение SSH активным. |
-t [email protected] | Имя пользователя Pinggy и адрес сервера. |
x:localServerTls:servbay.new | Пользовательский параметр Pinggy, указывающий TLS-имя локального сервера как servbay.new . |
"u:host:servbay.new" | Пользовательский параметр Pinggy устанавливает заголовок Host для входящих запросов как servbay.new . |
После успешного выполнения команды будет выведен URL-адрес для доступа:
http://rnirh-172-188-50-148.a.free.pinggy.link
https://rnirh-172-188-50-148.a.free.pinggy.link
2
Проверка услуги
- Проверка с помощью
curl
(рекомендуется): Используйте командуcurl
для тестирования.
curl -I https://rnirh-172-188-50-148.a.free.pinggy.link
Ожидаемый вывод:
HTTP/1.1 200 OK
Connection: close
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Content-Type, Authorization
Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS
Access-Control-Allow-Origin: *
Cache-Control: max-age=0, must-revalidate, no-cache, no-store, private
Connection: keep-alive
Content-Type: text/html; charset=UTF-8
Date: Tue, 18 Feb 2025 11:51:48 GMT
Expires: Sun, 02 Jan 1990 00:00:00 GMT
Pragma: no-cache
Server: nginx
Vary: Accept-Encoding
X-Frame-Options: SAMEORIGIN
X-Powered-By: PHP/8.4.3
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Доступ через браузер: Откройте браузер и перейдите по адресу
https://rnirh-172-188-50-148.a.free.pinggy.link
.Ожидаемый результат:
- Отображение веб-содержимого, аналогичного локальным сервисам ServBay.
- Если ваш локальный сервис настроен на HTTPS, Pinggy также автоматически поддерживает HTTPS.
- Время отклика обычно быстрое (зависит от вашего локального сети и соединения с сервером Pinggy).
Расширенные советы
Пользовательский домен: Пользователи Pinggy Pro могут использовать пользовательские домены. Для получения дополнительной информации обратитесь к документации Pinggy.
TCP-туннель: Если ваш сервис не является HTTP/HTTPS, вы можете использовать функцию TCP-туннеля Pinggy:
bashssh -R <REMOTE_PORT>:localhost:<LOCAL_PORT> a.pinggy.io
1Замените
<REMOTE_PORT>
на порт, который вы хотите использовать на сервере Pinggy.Постоянный туннель (с использованием
autossh
): Если ваша сеть нестабильна или вы хотите долго поддерживать туннель, рекомендуется использоватьautossh
.autossh
автоматически переподключит SSH после отключения.
Устранение неисправностей
Симптом | Решение |
---|---|
Время ожидания соединения | Проверьте, работает ли сервис ServBay и правильно ли указан <LOCAL_PORT> . |
Ошибка 404 (Не найдено) | Если вы используете виртуальный хост, убедитесь, что вы правильно использовали команду curl (с правильным заголовком Host ). |
Невозможно получить доступ к URL Pinggy | Проверьте ваше интернет-соединение, чтобы убедиться, что вы можете получить доступ к a.pinggy.io . |
Периодические отключения | Это может быть вызвано нестабильным интернет-соединением. Попробуйте использовать autossh для более стабильного соединения (см. раздел "Расширенные советы"). |
Резюме решения
С помощью Pinggy разработчики могут легко и быстро устанавливать безопасные каналы доступа в интернет в среде ServBay. Это решение имеет следующие преимущества:
- Не требует установки клиента: Упрощает процесс настройки и снижает зависимость.
- Одно нажатие: Туннель можно запустить с помощью одной команды SSH.
- Автоматическая поддержка HTTPS: Нет необходимости вручную настраивать SSL-сертификаты.
- Поддержка HTTP и TCP-туннелей: Удовлетворяет различные типы сервисных требований.
- Команды без токена: Можно напрямую делиться URL, не беспокоясь о утечке токена.
Pinggy предлагает более удобный способ, чем Ngrok, особенно для быстрого тестирования и временного обмена локальными сервисами. Для сценариев, требующих долгосрочной стабильной работы или пользовательских доменов, стоит рассмотреть Pro-версию Pinggy.