Кратко: причин блокировок много (DNS / SNI / IP-блокировка / провайдерская фильтрация), поэтому нет «одного простого щелчка». Но с учётом того, что у вас только мобильный интернет и вы хотите минимизировать расходы, самые практичные и недорогие пути — это либо настроить себе простой внешний прокси/VPN (самый надёжный вариант), либо обойти конкретные блоки (DNS/реестры) локальными обходами и зеркалами. Ниже — варианты с плюсами/минусами и конкретными советами.
1) Самый надёжный и относительно дешёвый: свой маленький VPS + WireGuard/OpenVPN
- Идея: арендовать недорогой VPS за границей и поднять на нём VPN (WireGuard быстрее и проще). Все запросы (apt, docker pull и т.д.) пойдут через VPS и блокировки провайдера РФ не будут влиять.
- Почему это хорошо: шифрование, высокая скорость (зависит от VPS), не нужно париться с проксями для отдельных приложений.
- Стоимость: есть бесплатные варианты (Oracle Cloud Always Free — 2 небольших VM; иногда бесплатные trial-кредит у GCP/AWS), в противном случае дешёвые VPS от Hetzner / Scaleway / Vultr / DigitalOcean от ~$3–6/мес.
- Минусы: нужна регистрация у провайдера, иногда карта, настройка сервера (но установка WireGuard — пара команд).
- Примерный план действий:
1. Поднять VPS с Ubuntu.
2. apt install wireguard; сгенерировать ключи, создать /etc/wireguard/wg0.conf.
3. Включить форвардинг и NAT (iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE).
4. Подключиться с Windows/WSL/телефона (есть клиенты WireGuard).
5. После подключения пробовать docker pull / apt update — должно работать.
- Если нужно, могу прислать короткую инструкцию с командами для WireGuard.
2) Бесплатный (или почти) вариант: Oracle Cloud Free Tier как VPN/прокси
- Oracle дает «Always Free» инстансы, их можно использовать как VPN (WireGuard/OpenVPN) или как HTTPS-прокси/registry mirror.
- Минус: регистрация может требовать подтверждения телефона/карты, и надо разбираться с интерфейсом.
3) Если VPS/платный VPN не хотите — пробуйте DNS/DoH и SNI-обходы
- Часто блокировки — на уровне DNS или SNI. Простая замена DNS (1.1.1.1, 8.8.8.8, Quad9) и включение DNS over HTTPS/TLS (в Windows или systemd-resolved в Linux) иногда помогает.
- Минус: если блокировка по IP или глубокая инспекция (SNI), этого не хватит.
- Как сделать:
- В Windows/Ubuntu сменить DNS в сетевых настройках на 1.1.1.1 или 9.9.9.9.
- В браузере включить DoH (Cloudflare/Google).
- В Ubuntu systemd-resolved можно настроить DNS-over-TLS через cloudflared/Stubby.
4) Прокси через SSH (dynamic SOCKS)
- Если у вас есть хоть один внешний хост (VPS или знакомый) — можно создать SOCKS-туннель: ssh -D 1080 user@host
- На Windows можно использовать PuTTY/Bitvise, установить локальный SOCKS и пробросить трафик браузера/apt через proxy (с помощью proxychains/tsocks/Proxifier).
- Минус: Docker daemon обычно не использует SOCKS автоматически — придётся настраивать системный HTTP(S) прокси или проксировать через сервер весь трафик.
5) Использовать зеркала и локальные решения для Docker и ROS
- Docker:
- Можно настроить daemon.json с registry-mirrors: /etc/docker/daemon.json:
{"registry-mirrors": ["https://<mirror>"]}
- Попробуйте альтернативные реестры (ghcr.io, quay.io), либо использовать заранее сохранённые образы (docker save → tar).
- Можно скачать нужные образы на другом компьютере/связи и перенести через USB или по локальной сети (docker save/load).
- ROS:
- ROS обычно устанавливается через apt-репозитории — если apt не может достать пакеты, можно скачать deb-файлы вручную (apt download или через apt-offline) на другом соединении и перенести.
- Можно собирать ROS из исходников, если нет доступа к репозиторию — но это медленнее.
6) Использовать WSL2 + Docker Desktop (иногда проще на Windows)
- Если вы запускали Ubuntu в виртуальной машине типа VirtualBox и испытываете проблемы, попробуйте WSL2 + Docker Desktop (Docker Engine внутри WSL2 обычно работает стабильнее и быстрее).
- Docker Desktop может быть проще в настройке сети, а WSL легче использовать proxy-параметры Windows.
- Минус: сама загрузка Docker образов всё равно требует выхода в интернет.
7) Маленькие хитрости при медленном/ограниченном мобильном интернете
- Если трафик дорогой, минимизируйте скачивание больших базовых образов: используйте более лёгкие образы (alpine), собирайте многослойные образы локально, подключайте --pull=false если образ уже локальный.
- Сохраняйте образы в tar и используйте импорт/экспорт.
- Для установки ROS, если нужна только часть пакетов — скачивайте только их.
8) Тонкости по Docker и проксям
- Docker daemon не читает переменные окружения пользователя. Для прокси создайте systemd drop-in:
- /etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTP_PROXY=http://user:pass@proxy:port/" "HTTPS_PROXY=..."
- systemctl daemon-reload && systemctl restart docker
- Для apt можно указать Acquire::http::Proxy в /etc/apt/apt.conf.d/95proxies.
9) Юридические/этические замечания
- Обход блокировок может нарушать условия провайдера или местные законы. Я не даю советов по обходу блокировок для противоправных действий. Используйте способы для законных целей.
Резюме — что я бы сделал на вашем месте (минимальные расходы, максимально просто):
1. Попробовать WSL2 + Docker Desktop (если ещё не пробовали).
2. Если блоки остаются — поднять бесплатный/дешёвый VPS (Oracle Free или Hetzner CX11) и поставить WireGuard — это самый устойчивый и быстрый вариант.
3. На время скачивания больших образов/пакетов использовать другой компьютер/соединение (перенести через флешку) если это возможно.
Если хотите, могу:
- Подготовить пошаговую инструкцию для поднятия WireGuard на дешёвом VPS и подключения из Windows/WSL.
- Помочь с конкретными ошибками, которые вы видели при установке Docker/ROS (скопируйте сюда вывод команд/ошибки).