Как опубликовать локальный сайт через Cloudflare Tunnel: пошаговое руководство
Полный гайд по Cloudflare Tunnel: от установки cloudflared до публикации сайта с HTTPS
Введение
Cloudflare Tunnel (ранее Argo Tunnel) — это бесплатный сервис, который создаёт защищённый туннель между вашим локальным сервером и сетью Cloudflare. Он позволяет опубликовать сайт, работающий на домашнем компьютере или в закрытой сети, без необходимости покупать белый IP-адрес, настраивать проброс портов на роутере или открывать входящие порты в брандмауэре. Весь трафик идёт по исходящему соединению, а Cloudflare берёт на себя SSL-сертификаты, защиту от DDoS и кеширование.
В этом руководстве мы разберём, как установить и настроить Cloudflare Tunnel, подключить собственный домен и опубликовать локальный сайт так, чтобы он был доступен из интернета по HTTPS. Инструкция подойдёт для Windows, macOS и Linux.
Что потребуется
Аккаунт Cloudflare (бесплатный).
Домен, добавленный в Cloudflare (делегированный на серверы имён Cloudflare).
Локальный веб-сервер, работающий на компьютере или в локальной сети (например, http://localhost:8080 или http://192.168.1.100:3000).
Права администратора на машине, где будет запущен туннель.
Утилита cloudflared (скачаем и установим в процессе).
Шаг 1. Установка cloudflared
Cloudflared — это клиент, который создаёт туннель. Скачайте его с официального сайта Cloudflare или установите через пакетный менеджер.
Windows: 1. Скачайте установщик cloudflared.exe со страницы загрузок Cloudflare. 2. Переименуйте файл в cloudflared.exe и положите, например, в C:\Cloudflared. 3. Добавьте папку в переменную среды PATH, чтобы запускать команду из любого места.
macOS:
brew install cloudflaredLinux (Debian/Ubuntu):
wget -q https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
sudo dpkg -i cloudflared-linux-amd64.debПроверьте установку:
cloudflared --versionШаг 2. Авторизация в Cloudflare
Выполните команду:
cloudflared tunnel loginОткроется браузер, где нужно войти в аккаунт Cloudflare и выбрать домен, который вы хотите использовать для туннеля. После подтверждения в папке пользователя появится сертификат (обычно ~/.cloudflared/cert.pem), который позволяет управлять DNS-записями.
Шаг 3. Создание туннеля
Создайте именованный туннель:
cloudflared tunnel create my-tunnelВ ответ вы получите UUID туннеля и файл учётных данных (JSON) в папке ~/.cloudflared/. Запомните UUID — он понадобится для настройки.
Проверить список туннелей можно командой:
cloudflared tunnel listШаг 4. Настройка маршрутизации (конфигурационный файл)
Создайте файл конфигурации config.yml в папке ~/.cloudflared/ (Linux/macOS) или C:\Users\<Имя>\.cloudflared\ (Windows). Пример содержимого:
tunnel: <UUID туннеля>
credentials-file: /path/to/<UUID>.json
ingress:
- hostname: site.example.com
service: http://localhost:8080
- service: http_status:404Замените:
<UUID>на идентификатор вашего туннеля.credentials-fileна полный путь к JSON-файлу.hostnameна желаемый поддомен (например, blog.example.com).serviceна адрес вашего локального сайта (например, http://localhost:3000 или http://192.168.1.50:80).
Последняя строка - service: http_status:404 обязательна — она обрабатывает все прочие запросы.
Шаг 5. Привязка домена (DNS-запись)
Выполните команду, чтобы Cloudflare создал CNAME-запись, указывающую на туннель:
cloudflared tunnel route dns my-tunnel site.example.comЭта команда автоматически добавит DNS-запись в вашей зоне Cloudflare. Убедитесь, что домен уже управляется Cloudflare.
Шаг 6. Запуск туннеля
Запустите туннель вручную для проверки:
cloudflared tunnel run my-tunnelЕсли всё настроено верно, в консоли появятся логи подключения, а сайт станет доступен по адресу https://site.example.com. Cloudflare автоматически выпустит SSL-сертификат.
Шаг 7. Установка как службы (автозапуск)
Чтобы туннель работал постоянно и запускался при загрузке системы, установите его как службу.
Linux (systemd):
sudo cloudflared service install
sudo systemctl enable cloudflared
sudo systemctl start cloudflaredWindows (от имени администратора):
cloudflared.exe service installСлужба будет запущена автоматически.
macOS:
sudo cloudflared service installШаг 8. Проверка работы и отладка
Откройте браузер и перейдите по вашему домену. Если сайт не открывается, проверьте:
Логи туннеля:
cloudflared tunnel run my-tunnel(в ручном режиме) илиjournalctl -u cloudflared(Linux).Доступность локального сервера: откройте http://localhost:порт на той же машине.
Правильность config.yml: отступы в YAML, корректность путей.
DNS: запись CNAME должна указывать на <UUID>.cfargotunnel.com.
Шаг 9. Настройка дополнительных параметров (опционально)
В config.yml можно добавить:
originRequestдля тонкой настройки: таймауты, заголовки, keep-alive.Несколько ingress-правил для разных поддоменов или путей.
warp-routingдля доступа к частным сетям.
Пример с двумя сайтами:
ingress:
- hostname: app.example.com
service: http://localhost:3000
- hostname: api.example.com
service: http://localhost:5000
- service: http_status:404Шаг 10. Безопасность и ограничения
Cloudflare Tunnel не требует открытых входящих портов — это безопасно.
Можно ограничить доступ через Cloudflare Access (бесплатно до 50 пользователей).
Трафик шифруется между сервером и Cloudflare.
Убедитесь, что локальный сервер не имеет уязвимостей, так как он становится доступен из интернета.
Типичные ошибки
1. Неверный путь к credentials-file — проверьте, что файл существует и указан полный путь. 2. Ошибка YAML — используйте пробелы, а не табы; проверьте отступы. 3. Домен не в Cloudflare — туннель работает только с доменами, делегированными Cloudflare. 4. Порт занят или сервер не запущен — убедитесь, что локальный сайт отвечает. 5. Конфликт DNS-записей — удалите старые A-записи для этого поддомена. 6. Брандмауэр блокирует исходящие соединения — cloudflared должен иметь доступ к интернету.
FAQ
Вопрос: Нужен ли белый IP? Ответ: Нет, Cloudflare Tunnel работает через исходящее соединение.
Вопрос: Это бесплатно? Ответ: Да, базовый функционал бесплатен.
Вопрос: Можно ли использовать свой SSL-сертификат? Ответ: Cloudflare управляет сертификатами автоматически; можно загрузить собственный в панели Cloudflare.
Вопрос: Как остановить туннель? Ответ: Если запущен вручную — Ctrl+C; если как служба — остановите службу командой sudo systemctl stop cloudflared (Linux) или через services.msc (Windows).
Вопрос: Поддерживается ли WebSocket? Ответ: Да, Cloudflare Tunnel поддерживает WebSocket из коробки.
Итог
Cloudflare Tunnel — это простой и безопасный способ опубликовать локальный сайт в интернете. Вы избегаете настройки проброса портов, получаете автоматический HTTPS и защиту от атак. Следуя шагам, вы сможете запустить туннель за несколько минут и сделать свой проект доступным по красивому домену.
Читайте также
Комментарии
Комментарии доступны только зарегистрированным пользователям. Войти
- Пока нет комментариев. Будьте первым.



