На лимит TCP подключений в мобильных прокси влияют три слоя: сеть оператора (CGNAT), сам прокси-сервер (его софт и ОС) и то, как ваш софт генерирует трафик. Начнем с базового — Carrier-Grade NAT. Мобильный оператор часто размещает тысячи абонентов за одним внешним IP и распределяет их по пулам эпhemerных портов. Это NAT44/NAT444 с жесткими правилами: ограничение на число одновременных маппингов, скорость создания новых записей (SYN rate) и таймауты бездействия для состояний ESTABLISHED/FIN_WAIT/TIME_WAIT. Плюс, в час пик базовые станции и CGNAT-узлы включают более агрессивные idle‑таймауты, чтобы разгрузиться. Отсюда типичная картина: в 11:00 у вас стабильно 250–300 одновременных TCP-сессий на один мобильный IP, а в 20:00 — уже 120–180, и новые коннекты чаще получают RST/timeout. Второй слой — сам прокси. На стороне сервера работают лимиты ОС (ulimit -n, fs.file-max), TCP‑стек (net.ipv4.ip_local_port_range, tcp_tw_reuse, tcp_fin_timeout), таблица соединений (conntrack) и настройки ПО (Socks5/HTTP‑прокси, пул keep‑alive, очереди). Узкое место может быть и в TLS: частые полные рукопожатия съедают CPU, увеличивают латентность и провоцируют скачки ошибок при пиках. Подключение HTTP/2 даёт выигрыш — один TCP‑канал мультиплексирует десятки запросов, уменьшает число коннектов и экономит портовую ёмкость на CGNAT. Третий слой — клиент. Браузерные движки, headless‑фреймворки (Puppeteer, Playwright), библиотеки (axios, requests) по умолчанию открывают больше соединений, чем нужно, не всегда корректно переиспользуют keep‑alive и создают «шипы» новых сессий при ретраях. Если у вас 20 потоков парсинга с таймаутом 5 секунд и тремя автоматическими повторами, вы можете на ровном месте создать 200–400 новых TCP в секунду, даже не заметив. А CGNAT уже держит на вас 150–200 «висящих» подключений и режет всё, что выше порога. Важно отличать три разные метрики: одновременные соединения (concurrency), скорость установления новых соединений (CPS — connections per second) и скорость запросов (RPS/QPS). Их часто путают. Например, включение HTTP/2 уменьшает concurrency и CPS, но позволяет растить RPS. А чрезмерная ротация IP каждую минуту сбрасывает пулы keep‑alive и взрывает CPS. Есть и нюансы протоколов: HTTP/1.1 с keep‑alive держит множество коротких TCP, HTTP/2 — мало TCP, но длинные. HTTPS добавляет TLS‑нагрузку, DNS‑резолв может стать дополнительные точкой перегрузки. На радиосети влияет и качество канала: 4G/5G, загруженность соты, RTT/packet loss, политика APN. С ростом RTT таймауты CGNAT чаще срабатывают «ложно», а повторные попытки клиента создают лавину новых SYN. В сухом остатке лимит — это не одно число, а баланс трех параметров: активных TCP в моменте, новых TCP в секунду и их среднее время жизни. Управляя ими — через пул соединений, HTTP/2, разумные таймауты, плавный рост нагрузки и расписание ротации — вы превращаете хаотичный «потолок» в прогнозируемую рабочую полку.
- CGNAT накладывает границы на число маппингов и агрессивно закрывает idle‑соединения в часы пик.
- Прокси‑софт и ОС ограничены файловыми дескрипторами, conntrack и CPU на TLS‑рукопожатия.
- Клиент формирует профиль нагрузки: CPS, concurrency, keep‑alive, ретраи и ротация IP.