Доступ к сервисам

VPN для GitHub

Веб-интерфейс GitHub, git по HTTPS, git по SSH и реестры пакетов — четыре разных канала. Они ломаются по отдельности, и лечить их надо тоже по отдельности.

Безлимитный трафик3 устройства в подпискеПоддержка за 7 минут

Обновлено

VPN для GitHub
Коротко Чтобы разблокировать GitHub, смените сетевой маршрут: установите приложение, выберите локацию Франкфурт (Германия) и включите туннель. Если сервис уже был открыт, перезапустите его целиком — часть приложений держит старое соединение до перезапуска. Разбор причин и порядок действий, когда это не помогло, — ниже.
Симптомы

Как выглядит проблема с GitHub

Одинаковые на первый взгляд неполадки имеют разные причины. Найдите свой случай — дальше в тексте разобрано, что с ним делать.

Клон встаёт на 40%

Счётчик объектов замирает на середине и висит несколько минут, потом операция падает. Большой репозиторий приходит одним потоком, и любой обрыв означает начало заново — прогресс не сохраняется.

RPC failed; curl 92 и curl 56

Транспорт получил неполный ответ или соединение закрылось посреди передачи. Это не ошибка git и не поломка репозитория, а обрыв на сетевом уровне между вами и сервером.

Таймаут на push большой ветки

Мелкие коммиты уходят нормально, а ветка с историей на 200 МБ висит и отваливается по таймауту. Отправка одним пакетом требует непрерывного канала на несколько минут подряд.

Не тянутся образы и пакеты

Веб-интерфейс открыт, репозиторий виден, а docker pull с ghcr.io или установка зависимостей падает. Реестры пакетов живут на своих адресах и доступны отдельно от основного сайта.

Что меняется

Как это работает после подключения

Ниже — проверяемые вещи, а не обещания: каждую можно оценить за один вечер в своей собственной сети.

Клоны доходят до конца

Репозиторий на 1,5 ГБ приходит одной операцией без обрывов. На ровном маршруте это 3–6 минут вместо пяти неудачных попыток подряд и вечера, потраченного на скачивание.

git по SSH держит сессию

Соединение по 22-му порту не отваливается на середине передачи, а интерактивные операции не подвисают. Для тех, кто работает из терминала весь день, это заметнее всего.

Реестры пакетов доступны

Образы с ghcr.io, пакеты npm и колёса PyPI подтягиваются в обычном темпе. Сборка проекта с полусотней зависимостей перестаёт превращаться в лотерею.

Codespaces и Actions отзывчивы

Веб-редактор в облаке не отваливается посреди правки, а журналы выполнения сценариев прокручиваются в реальном времени, а не подгружаются кусками с паузами.

Настройка

Что сделать по шагам

1

Поставьте клиент на машину разработчика

Ставьте туннель туда, где стоит git: это может быть рабочий ноутбук, домашняя машина или сервер сборки. Клиент есть под Windows, macOS и Linux, включая консольный вариант без графической оболочки — на удалённой машине он и нужен.

Поставьте клиент на машину разработчика
2

Добавьте подписку и настройте исключения

Вставьте ссылку на подписку. Сразу проверьте маршрутизацию: внутренние git-серверы компании, локальные реестры пакетов и адреса в частных подсетях лучше вывести из туннеля, чтобы они продолжали ходить напрямую. В клиенте это делается списком доменов и подсетей.

Добавьте подписку и настройте исключения
3

Выберите локацию с широким каналом

Для GitHub важнее не задержка, а устойчивая полоса: клон на гигабайт скачивается минутами, и все эти минуты канал должен держаться. Франкфурт, Амстердам и Хельсинки дают 300–600 Мбит/с внутри туннеля. Тяжёлые операции лучше проверить на двух локациях и оставить ту, где нет провалов.

Выберите локацию с широким каналом
4

Проверьте на реальном клоне и push

Склонируйте средний репозиторий на 200–500 МБ и засеките время. Затем отправьте тестовую ветку и запустите установку зависимостей проекта. Если все три операции прошли без повторов — маршрут рабочий. Веб-интерфейс проверять отдельно смысла нет, он самый нетребовательный.

Проверьте на реальном клоне и push
Локации

Локации, которые подходят для GitHub

Задержка и загрузка обновляются каждые пять минут. Загрузку выше 70% лучше обходить стороной.

Все локации
ФранкфуртГермания
Задержка38 мс
Загрузка канала52%

Лучший маршрут для облачных сервисов и игр

АмстердамНидерланды
Задержка31 мс
Загрузка канала34%

Крупнейший европейский узел обмена трафиком

ХельсинкиФинляндия
Задержка24 мс
Загрузка канала61%

Ближайшая локация к северо-западу России

Четыре разных канала под одним именем

Веб-интерфейс — обычный сайт: страницы по несколько сотен килобайт, много мелких запросов, никаких особых требований к каналу. Он открывается почти всегда, и именно поэтому создаёт ложное впечатление, что с доступом всё в порядке.

git по HTTPS работает поверх 443-го порта и внешне похож на обращение к сайту, но ведёт себя иначе: это одна длинная передача, которая может идти минутами. git по SSH использует 22-й порт и отдельный протокол; в сетях, где нестандартные порты режутся, он падает при живом HTTPS. На такой случай GitHub держит альтернативный вход по SSH через 443-й порт.

Четвёртый канал — реестры пакетов: ghcr.io для образов, отдельные хосты для пакетов npm и Python. Они физически раздаются с других узлов, и их доступность вообще не связана с доступностью репозитория. Отсюда типичная картина: страница проекта открыта, а сборка падает на скачивании зависимостей.

Большие клоны, LFS и что делать при обрывах

Обычный клон передаёт всю историю проекта одним потоком. Если соединение оборвалось на 80%, git не умеет продолжить с этого места — операция начинается заново. Отсюда и знаменитое «встал на 40%»: канал не мёртвый, он просто рвётся раз в несколько минут, и вы никогда не доходите до конца.

Есть штатные приёмы, которые снижают риск. Поверхностный клон с ограничением глубины истории забирает только последние коммиты и сокращает объём в разы. Клон одной ветки вместо всех тоже помогает. Увеличение буфера передачи в настройках git — параметр http.postBuffer — иногда снимает падения на больших push.

Отдельная история — крупные файлы через LFS. Они качаются не вместе с историей, а отдельными запросами к хранилищу, и на неровном канале сыпятся уже после того, как основной клон успешно прошёл. В логе это видно как ошибка загрузки конкретного объекта; повторный запуск команды дотягивает недостающие файлы, не начиная всё заново.

Actions, Codespaces и корпоративный прокси

Сценарии GitHub Actions выполняются на серверах платформы, и ваш канал на скорость их работы не влияет. Влияет он на другое: на просмотр журналов в реальном времени и на скачивание артефактов сборки, которые нередко весят сотни мегабайт. Ощущение «Actions тормозят» чаще всего означает именно медленную выгрузку журнала.

Codespaces — среда разработки в облаке, и это уже интерактивный канал, чувствительный к задержке. Работать в веб-редакторе при 250 мс до сервера физически неприятно: буквы появляются с опозданием после нажатия. Здесь имеет смысл сознательно выбрать ближнюю локацию, даже если она чуть медленнее по полосе.

В корпоративной сети между вами и GitHub нередко стоит прокси компании со своим сертификатом. git о нём не знает и выдаёт ошибку проверки сертификата. Правильное решение — прописать адрес прокси и корневой сертификат компании в настройках git, а не отключать проверку сертификатов: последнее лишает вас защиты от подмены и обычно нарушает внутренние правила безопасности.

Границы, которые мы не переходим

Если доступ к GitHub закрыт правилами вашего работодателя, это его осознанное решение по управлению рисками: утечка исходного кода — реальная проблема, а не выдумка службы безопасности. Мы не подсказываем способы обойти такие правила и не считаем это полезным советом.

Разница практическая, а не риторическая. Когда сотрудник обходит корпоративный контур, он лишает компанию видимости и одновременно подставляет себя: такие вещи обнаруживаются при первом же аудите. Запрос в ИТ-отдел с описанием рабочей задачи закрывает вопрос легально и обычно быстрее, чем кажется.

То же касается ограничений самой платформы, привязанных к региону аккаунта. Мы не советуем указывать недостоверные сведения в профиле или пытаться выглядеть пользователем другой юрисдикции. Наша область — транспорт: маршрут без потерь до серверов сервиса, чтобы клон доходил до конца, а push не падал по таймауту.

Диагностика

Что делать, если не заработало

error: RPC failed; curl 92 HTTP/2 stream was not closed cleanly

Соединение по HTTP/2 оборвалось посреди передачи. Как быстрый обходной приём — переключите git на HTTP/1.1 командой настройки версии протокола и увеличьте буфер передачи. Как устойчивое решение — включите туннель и повторите клон: ошибка вызвана обрывами на маршруте, а не самим протоколом.

git push большой ветки падает по таймауту

Отправляйте историю частями: сначала push нескольких первых коммитов, затем остальных. Если ветка тяжёлая из-за случайно закоммиченных файлов, вычистите их перед отправкой. И проверьте исходящий канал — на домашних тарифах он часто в разы уже входящего.

Клон по SSH не проходит, по HTTPS работает

В сети режется нестандартный 22-й порт. GitHub держит альтернативный вход по SSH на 443-м порту — впишите соответствующий хост и порт в конфигурацию SSH-клиента, и ключи заработают через обычный порт HTTPS. С включённым туннелем обычный порт тоже, как правило, начинает проходить.

Не скачиваются образы с ghcr.io при рабочем сайте

Реестр образов живёт на отдельных адресах и доступен независимо от основного сайта. Убедитесь, что домен реестра не попал в список исключений вашей маршрутизации. Для больших образов выбирайте локацию с широким каналом — слои по 500 МБ чувствительны к обрывам.

Вопросы

Частые вопросы

Влияет ли туннель на скорость сборки в GitHub Actions?
Нет. Сценарии выполняются на серверах платформы и от вашего канала не зависят. Ваш маршрут влияет только на просмотр журналов и скачивание артефактов — вот они на неровном канале действительно тянутся долго.
Можно ли пустить через туннель только git, а браузер напрямую?
Да. В разделе маршрутизации укажите исполняемый файл git и адреса нужных хостов — остальной трафик пойдёт напрямую. На Linux и macOS удобнее задать правило по доменам, чтобы под него попали и реестры пакетов.
Что делать с корпоративным прокси и его сертификатом?
Пропишите адрес прокси и корневой сертификат компании в конфигурации git. Отключать проверку сертификатов не нужно: это снимает защиту от подмены соединения и почти всегда противоречит внутренним правилам. Сертификат выдаёт ИТ-отдел по запросу.
Насколько быстрее пойдут клоны?
Дело не в пиковой скорости, а в том, что операция доходит до конца. На ровном маршруте репозиторий в 1,5 ГБ приходит за 3–6 минут при 300–600 Мбит/с внутри туннеля. Без туннеля тот же клон может вообще не завершиться за час из-за повторов.
Нужен ли туннель для доступа к Copilot?
Copilot обращается к отдельной инфраструктуре подсказок и ведёт себя не так, как основной сайт: он чувствителен к задержке, потому что запрос уходит на каждое изменение кода. Подробности вынесены на отдельную страницу о доступе к Copilot.
Работает ли всё это на удалённом сервере без графики?
Да, есть консольный клиент для Linux: конфигурация файлом, запуск как системная служба, никаких графических зависимостей. Он же используется на машинах сборки, где нужен предсказуемый доступ к реестрам пакетов.
Подписка оформляется в Telegram

Проверьте в своей сети

Поможет ли смена маршрута открыть GitHub — видно только на вашем операторе и в вашей сети. Подписка оформляется в Telegram-боте, регистрация на сайте не нужна.

Подписка оформляется в Telegram-канале сервиса · Безлимитный трафик · Поддержка круглосуточно