Как проверить вебхук на localhost: тестовый POST и публичный HTTPS
Запустите тестовый приёмник на Node.js, отправьте JSON через curl и проверьте доставку вебхука на localhost через публичный HTTPS-туннель.
Запустите локальный обработчик и отправьте ему тестовый POST через curl. Когда он ответит HTTP 200, повторите тот же запрос по публичному HTTPS-адресу. Так можно проверить приложение и туннель по отдельности, прежде чем подключать отправителя.
1. Запустите тестовый обработчик
Сохраните пример в webhook.mjs и запустите node webhook.mjs. Нужен Node.js, дополнительных пакетов нет. Обработчик принимает только тестовый JSON размером до 8 КиБ и пишет в консоль фиксированное сообщение. Для демонстрации используйте вымышленные события.
import { createServer } from 'node:http';
createServer(async (req, res) => {
if (req.url !== '/webhook') {
res.writeHead(404).end();
return;
}
if (req.method !== 'POST') {
res.writeHead(405, { Allow: 'POST' }).end();
return;
}
let size = 0;
const chunks = [];
try {
for await (const chunk of req.iterator({ destroyOnReturn: false })) {
size += chunk.length;
if (size > 8192) {
res.writeHead(413, { Connection: 'close' }).end();
return;
}
chunks.push(chunk);
}
} catch {
res.destroy();
return;
}
try {
JSON.parse(Buffer.concat(chunks).toString('utf8'));
} catch {
res.writeHead(400).end();
return;
}
console.log('Тестовый POST получен');
res.writeHead(200, { 'Content-Type': 'application/json' }).end('{"ok":true}');
}).listen(3000, '127.0.0.1');
2. Отправьте POST на localhost
curl -i http://127.0.0.1:3000/webhook \
-H 'Content-Type: application/json' \
--data '{"event":"test.ping"}'
Ожидайте HTTP 200, тело {"ok":true} и строку «Тестовый POST получен» в терминале Node.js. Если локальный запрос не работает, проверьте, запущен ли процесс и свободен ли порт 3000.
3. Повторите запрос через HTTPS
Оставьте Node.js запущенным и откройте второй терминал.
ssh -p 2222 -o ExitOnForwardFailure=yes -R 80:127.0.0.1:3000 tunnelhunt.ru
Подставьте выданный HTTPS-адрес вместо примера. Сохраните путь /webhook.
curl -i https://YOUR-SUBDOMAIN.tunnelhunt.ru/webhook \
-H 'Content-Type: application/json' \
--data '{"event":"test.ping"}'
Дождитесь HTTP 200 и второй строки в терминале Node.js. Для сессии Free добавьте публичный SSH-ключ в кабинете. Помощь с первым подключением есть в гайде по открытию localhost.
| Результат | Что проверить |
|---|---|
| Локально не удаётся подключиться | Запущен ли Node.js и совпадает ли порт с командой. |
| Локально 200, по HTTPS 502 | Открыта ли SSH-сессия и может ли её клиент подключиться к 127.0.0.1:3000. |
| 404 или 405 | Укажите путь /webhook и отправьте POST. Открытие ссылки в браузере отправляет GET. |
| 400 или 413 | Проверьте JSON и размер тела. |
| Тестовый POST работает, событие от сервиса не приходит | Проверьте полный URL и журнал доставок отправителя. Если интеграция требует подпись или ответ на проверочный запрос, реализуйте их по инструкции провайдера. |
4. Подключите тестового отправителя
Для настоящих событий настройте проверку подписи или секрета по правилам отправителя и обработку повторных доставок. Этот учебный обработчик подходит для проверки маршрута искусственным JSON. Используйте отдельный тестовый проект или тестовый режим.
- Telegram Bot API — секрет вебхука и диагностика через
getWebhookInfo. - GitHub — тестовый ping и проверка HMAC.
- n8n — тестовый и рабочий URL узла Webhook.
- Платёжные системы — инструкции для ЮKassa, Т-Банка, CloudPayments и Robokassa.
Если событие уже дошло и вы хотите повторить его после исправления кода, используйте руководство по Replay. После теста закройте SSH-сессию и остановите обработчик.
Готовы запустить свой первый туннель?
Начните использовать TunnelHunt бесплатно уже сегодня и откройте доступ к локальному серверу всего одной командой.
Зарегистрироваться бесплатно →По теме

GitHub webhooks на localhost: подпись SHA-256, ping и повтор доставки
21 октября 2026 г.
Принимаем GitHub webhook локально в Flask: X-Hub-Signature-256, HTTPS-туннель, события ping/push, Recent deliveries и проверка повторов.

Telegram-бот локально: webhook, secret_token и отладка на localhost
5 июня 2025 г.
Запустите Telegram-бота на localhost: выберите polling или webhook, настройте HTTPS и secret_token, проверьте getWebhookInfo и исправьте ошибки доставки.

n8n локально: вебхуки и Telegram Trigger через HTTPS-туннель
11 сентября 2026 г.
Настраиваем публичный URL для n8n на localhost: Docker Compose, N8N_WEBHOOK_URL, тестовый и рабочий webhook, Telegram Trigger и диагностика ошибок.

Платёжные вебхуки на localhost: ЮKassa, Т-Банк, Robokassa и CloudPayments
7 сентября 2025 г.
Как проверить доставку платёжного вебхука на локальный сервер: HTTPS-туннель, выбор инструкции провайдера, подпись, повтор и диагностика HTTP-ответов.