← Cloudflare One / cloudflare-one / traffic-policies
Прокси
Вы можете перенаправлять HTTP и сеть трафик в Gateway для логирования и фильтрации. Gateway может проксировать как исходящий трафик, так и трафик, направленный к ресурсам, подключённым через Cloudflare Tunnel, туннель Generic Routing Encapsulation (GRE) или IPsec-туннель. Когда пользователь подключается к Gateway proxy, Gateway принимает соединение и устанавливает новое отдельное соединение с исходным сервером.
Прокси Gateway необходим для фильтрации HTTP- и сетевого трафика через Cloudflare One Client в режиме Traffic and DNS. Чтобы проксировать HTTP-трафик без развёртывания Cloudflare One Client, можно настроить PAC-файлы на ваших устройствах.
Алгоритм прокси
Gateway использует Алгоритм Happy Eyeballs ↗, который пробует соединения IPv4 и IPv6 с постепенным откатом и использует то семейство адресов, которое отвечает первым, чтобы проксировать трафик в следующем порядке:
- Браузер пользователя инициирует установление TCP-соединения, отправляя Gateway TCP-сегмент SYN.
- Gateway отправляет SYN-сегмент на исходный сервер.
- Если исходный сервер отправляет в ответ сегмент SYN-ACK, Gateway устанавливает отдельные TCP-соединения между пользователем и Gateway, а также между Gateway и исходным сервером.
- Gateway проверяет и фильтрует трафик, получаемый от пользователя.
- Если трафик проходит проверку, Gateway проксирует его в обоих направлениях между пользователем и исходным сервером.
flowchart TD
%% Accessibility
accTitle: How Gateway proxy works
accDescr: Flowchart describing how the Gateway proxy uses the Happy Eyeballs algorithm to establish TCP connections and proxy user traffic.
%% Flowchart
A[User's device sends TCP SYN to Gateway] --> B[Gateway sends TCP SYN to origin server]
B --> C{{Origin server responds with TCP SYN-ACK?}}
C -->|Yes| E[TCP handshakes completed]
C -->|No| D[Connection fails]
E --> F{{Connection allowed?}}
F -->|Allow policy| G[Gateway proxies traffic bidirectionally]
F -->|Block policy| H[Connection blocked by firewall policies]
%% Styling
style D stroke:#D50000
style G stroke:#00C853
style H stroke:#D50000
Поддерживаемые протоколы
Gateway поддерживает проксирование трафика TCP, UDP и ICMP.
TCP
Если прокси включён, Gateway всегда перенаправляет TCP-трафик.
По умолчанию попытки TCP-подключения завершаются по тайм-ауту через 30 секунд, а неактивные соединения разрываются через 8 часов.
UDP
UDP-прокси перенаправляет UDP-трафик, например VoIP, внутренние DNS-запросы, и толстых клиентских приложений.
HTTP/3 использует протокол QUIC поверх UDP. Чтобы проверять трафик HTTP/3, включите расшифровку TLS и прокси UDP. После этого Gateway будет перехватывать соединение HTTP/3 и подключаться к серверу-источнику по HTTP/2. В противном случае трафик HTTP/3 будет обходить проверку. Подробнее о поведении в разных браузерах см. в Проверка HTTP/3.
ICMP (Internet Control Message Protocol)
Прокси ICMP позволяет ICMP-трафику достигать вашей приватной сети через Gateway. Например, это позволяет пользователю Cloudflare One Client выполнять диагностические команды, такие как ping и traceroute к внутреннему IP-адресу сервера.
Разрешить ICMP-трафик через cloudflared
Чтобы использовать ICMP-прокси с Cloudflare Tunnel, может потребоваться настроить cloudflared хост, чтобы разрешить прохождение ICMP-трафика через cloudflared.
-
Убедитесь, что
ping_group_rangeвключает идентификатор группы (GID) пользователя, от имени которого выполняетсяcloudflared:a. Найдите пользователя, которому принадлежит
cloudflaredпроцесс:ps -aux | grep cloudflaredjohndoe 407 0.8 1.7 1259904 35296 ? Ssl 21:02 0:00 /usr/bin/cloudflared --no-autoupdate tunnel run --token eyJhI...b. Получите Group ID для
cloudflaredпользователя:id -g johndoe10001c. Определите идентификаторы групп, которым разрешено использовать ICMP:
sudo sysctl net.ipv4.ping_group_rangenet.ipv4.ping_group_range= 0 10000d. Либо добавьте пользователя в группу в пределах этого диапазона, либо обновите диапазон так, чтобы он включал группу, в которой пользователь уже состоит. Чтобы обновить
ping_group_range:echo 0 10001 | sudo tee /proc/sys/net/ipv4/ping_group_rangee. Если нужно, чтобы изменение применилось к уже запущенному процессу, перезапустите
cloudflared. Чтобы изменение сохранялось после перезагрузки, обновитеsystclпараметры:echo "net.ipv4.ping_group_range = 0 10001" | sudo tee -a /etc/sysctl.d/99-cloudflared.conf -
Если вы используете несколько сетевых интерфейсов (например,
eth0иeth1), настройтеcloudflaredиспользовать внешний интерфейс, обращённый в интернет:cloudflared tunnel run --icmpv4-src <IP of primary interface>
В своей среде измените ping_group_range параметр, чтобы включить идентификатор группы (GID) пользователя, от имени которого выполняется cloudflared.
По умолчанию cloudflared Контейнер Docker ↗ выполняется от имени пользователя с именем nonroot внутри контейнера. nonroot это конкретный пользователь, который существует в базовый образ ↗ который мы используем, и его Group ID жёстко задан как 65532.
Включите Gateway proxy
Переключатель прокси Gateway применяется только к трафику с устройств Cloudflare One Client. Gateway всегда проксирует трафик, отправленный с помощью PAC-файлы или Browser Isolation независимо от этого параметра.
- В Панель управления Cloudflare ↗, перейдите в Zero Trust > Политики трафика > Настройки трафика.
- В Настройки прокси и проверки, включите Разрешить Secure Web Gateway проксировать трафик.
- Выберите TCP.
- (Необязательно) В зависимости от варианта использования вы можете выбрать UDP и/или ICMP.