Руководство по использованию cloudflared для настройки обратного прокси Cloudflare Tunnel в ServBay
Cloudflare Tunnel (ранее Argo Tunnel) — это служба обратного прокси с нулевым доверием от Cloudflare, которая позволяет безопасно выставлять локальные сервисы в интернет без необходимости открывать публичные порты. В этом руководстве вы узнаете, как создать безопасный туннель с помощью cloudflared в среде ServBay, чтобы реализовать доступ к локальным сервисам.
Технические принципы
Cloudflare Tunnel обеспечивает безопасное соединение локальных сервисов с узлами Cloudflare через создание зашифрованного исходящего соединения (на основе протокола QUIC). Это решение полностью обходит прохождение NAT, не требуя настройки правил брандмауэра, и одновременно интегрирует функции защиты от DDoS-атак и веб-аппликационного брандмауэра (WAF) от Cloudflare.
Подготовка среды
1. Установка клиента cloudflared
Система macOS (архитектура ARM):
# Загрузите бинарный файл
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-darwin-amd64.tgz | tar xz
sudo mv cloudflared /usr/local/bin/
2
3
Проверка установки:
cloudflared --version
# версия cloudflared 2024.5.0 (собрана 2024-05-01)
2
2. Вход в учетную запись Cloudflare
cloudflared tunnel login
После выполнения этой команды откроется браузер, в котором вам нужно будет выбрать доменное имя, для которого вы хотите получить доступ, и завершить авторизацию.
Практическая настройка туннеля
Основной процесс настройки
- Создание туннеля
cloudflared tunnel create servbay-tunnel
# Пример вывода: Создан туннель servbay-tunnel с id xxxx-xxxx-xxxx
2
- Конфигурация DNS-записей
cloudflared tunnel route dns servbay-tunnel servbay-tunnel.yourdomain.com
- Создание файла конфигурации
Создайте~/.cloudflared/config.yml
:
tunnel: <TUNNEL_ID>
credentials-file: /path/to/credentials.json
ingress:
- hostname: servbay-tunnel.yourdomain.com
service: https://servbay.local
originRequest:
noTLSVerify: true # Включите, если хотите пропустить проверку локального сертификата
- service: http_status:404 # Правило по умолчанию
2
3
4
5
6
7
8
9
Запуск сервиса туннеля
cloudflared tunnel run servbay-tunnel
Проверка службы
- Перейдите на настроенный домен:
https://servbay-tunnel.yourdomain.com
- Ключевые моменты проверки:
- Отображение содержимого, согласующегося с локальным сервисом
- В адресной строке браузера отображается действительный SSL-сертификат, выданный Cloudflare
- В заголовках ответа присутствует идентификатор
CF-RAY
Советы по продвинутой настройке
Многоуровневая маршрутизация
ingress:
- hostname: api.yourdomain.com
service: https://api.local
- hostname: app.yourdomain.com
service: https://app.local
2
3
4
5
Мониторинг трафика
# Просмотр показателей в реальном времени
cloudflared tunnel info servbay-tunnel
# Получение подробных логов
cloudflared tunnel logs servbay-tunnel
2
3
4
5
Устранение неполадок
Симптом | Решение |
---|---|
502 Bad Gateway | Проверьте, работает ли локальный сервис, и правильность адреса service в конфигурации туннеля |
Ошибка DNS | Убедитесь, что CNAME в DNS-записи указывает правильно (должен быть <UUID>.cfargotunnel.com ) |
Ошибка проверки сертификата | Убедитесь, что hostname в config.yml соответствует имени домена сертификата и проверьте целостность локальной цепочки сертификатов |
Преимущества решения
С помощью решения Cloudflare Tunnel пользователи ServBay могут получить:
- Корпоративный уровень безопасности: встроенная защита от DDoS-атак и WAF
- Без открытых портов: не требуется настройка брандмауэра или правил NAT
- Умная маршрутизация: оптимизация скорости доступа через глобальную сеть Anycast от Cloudflare
- Бесплатный лимит: бесплатный тариф включает 50 активных туннелей в месяц
Рекомендуется в производственной среде внедрить политику Access для реализации детализированного контроля доступа и обеспечения безопасности услуг.