MyTetra Share
Делитесь знаниями!
Как скачивать Docker-образы из России через TOR, если DockerHub заблокировал российских пользователей?
Время создания: 09.08.2025 13:12
Текстовые метки: linux, docker, dockerhub, образ, скачать, блокировка, tor, proxy
Раздел: Компьютер - Web / Internet - Отключение блокировок
Запись: xintrea/mytetra_syncro/master/base/1754734333xwyl7zrij2/text.html на raw.github.com

Примерно с 2024 года владельцы DockerHub заблокировали возможность для российских пользователей скачивать образы из своей сети. Иногда канал открывается, иногда закрывается вновь, половина слоёв скачивается, а половина нет. Как обойти эти ограничения на скачивание?



Решение следующее: воспользоваться системой TOR в качестве Proxy-сервера. Для этого надо локально установить пакет проекта TOR, и настроить Docker работать не напрямую через Интернет, а через Proxy-сервер, который Tor поднимает на компьютере пользователя.



Если посмотреть статьи 2022 года, то можно увидеть, что раньше для включения Proxy-сервера TOR надо было стартовать TorBrowser со специальным ключем. Сейчас уже таких действий производить не нужно, можно просто запустить демон TOR.



Установка и запуск TOR


Вначале надо установить TOR. Можно воспользоваться тем вариантом TOR, который есть в дистрибутиве. Например, для Debian Linux можно просто дать команду:



sudo apt install tor



Если TOR из дистрибутива сильно устарел, можно установить актуальный TOR по статье:



https://linuxmint.com.ru/viewtopic.php?t=7425



Запуск демона Tor в фоновом режиме:



sudo systemctl start tor



Проверка статуса:



sudo systemctl status tor



Если нужно, чтобы Tor запускался автоматически:



sudo systemctl enable tor



Остановка демона Tor и его сетевых служб:



sudo systemctl stop tor



По умолчанию демон Tor слушает два порта и поддерживает два варианта Proxy:



  • SOCKS5-прокси на 127.0.0.1:9050
  • HTTP-прокси (для .onion) на 127.0.0.1:9060 (если включён HTTPTunnelPort)



Проверить, работает ли прокси:



curl --socks5 127.0.0.1:9050 https://check.torproject.org/api/ip



Вывод должен содержать:



"IsTor": true



Файл настройки TOR



Файл конфигурации Tor находится по пути /etc/tor/torrc.


В нем, при необходимости, можно изменить порт SOCKS5-прокси сервера (например, на 9080):



SocksPort 9080



Можно запретить выходные узлы для определённых стран, для которых предполагается, что они тоже находятся под блокировкой IT корпораций:



ExcludeNodes {ru},{cn},{ir}



Если Tor заблокирован внутри страны или внутри провайдера, можно попробовать использовать мосты:



UseBridges 1

Bridge obfs4 1.2.3.4:1234 cert=...



После изменений необходимо перезапустить Tor:



sudo systemctl restart tor



Как найти актуальные мосты TOR?


На гитхабе есть проект:



https://github.com/ValdikSS/tor-relay-scanner?tab=readme-ov-file



После его установки нужно запустить с определенными ключами скрипт scanner.py (ключи описаны на странице проекта). Он выдаст рабочие мосты. Эти мосты затем нужно прописать в настройках Tor.


Некоторые пользователи только таким образом могут заставить его работать из-под определенного провайдера, например в мегафоновском Интернете. Там старые мосты очень быстро почему-то протухают, и их надо постоянно обновлять.


Альтернативный путь: получить список мостов TOR через email.


Для этого надо отправить на адрес bridges@bridges.torproject.org письмо с темой get transport obfs4 и в ответ придет список из трех адресов следующего вида:



obfs4 111.111.111.113:2222 FF7652873C326B0AF41587409E88C8612B8FE654 cert=fP23efkIrlPawTerdcUpN3Uatrh9jQcP0UpnPkfcfge5WiPP1mVffEfgesGgAgnBO97lOA iat-mode=0

obfs4 111.111.111.114:2222 FF7652873C326B0EFC1587409E88C8612B8FE654 cert=fP23efkIdfeawTerdcUpN3Uatrh9jQcP0UpnPkfcfge5WiPP1mVffEfgesGgAgnBO97lOA iat-mode=0

obfs4 111.111.111.115:2222 FF7652873C326B0AFDF658409E88C8612B8FE654 cert=fP23efkIrlPawTerdcUpN3Uatrh9jQcP0UpnPkfcfge5WiPP1mVffEeftWGgAgnBO97lOA iat-mode=0



После этого остается изменить файл /etc/tor/torrc. Надо добавить в начало полученные адреса в следующем формате:



UseBridges 1

SocksPort 9050

Exitpolicy reject *:*

ExtORPort auto

ClientTransportPlugin obfs4 exec /usr/bin/obfs4proxy managed

bridge obfs4 111.111.111.113:2222 FF7652873C326B0AF41587409E88C8612B8FE654 cert=fP23efkIrlPawTerdcUpN3Uatrh9jQcP0UpnPkfcfge5WiPP1mVffEfgesGgAgnBO97lOA iat-mode=0

bridge obfs4 111.111.111.114:2222 FF7652873C326B0EFC1587409E88C8612B8FE654 cert=fP23efkIdfeawTerdcUpN3Uatrh9jQcP0UpnPkfcfge5WiPP1mVffEfgesGgAgnBO97lOA iat-mode=0

bridge obfs4 111.111.111.115:2222 FF7652873C326B0AFDF658409E88C8612B8FE654 cert=fP23efkIrlPawTerdcUpN3Uatrh9jQcP0UpnPkfcfge5WiPP1mVffEeftWGgAgnBO97lOA iat-mode=0


После чего надо не забыть перезапустить сервис Tor.



Как настроить работу Docker через Proxy?


Как настроить скачивание образов Docker через socks5-прокси? Для этого есть официальная инструкция:



https://docs.docker.com/engine/cli/proxy/

https://docs.docker.com/engine/daemon/proxy/



В настройках Docker можно указывать socks5 на порту 127.0.0.1:9050, где находится Tor-овский SOCKS5 прокси-сервер. Так же можно попробовать использовать протокол «socks5h», если необходимо, чтобы хосты тоже через прокси резолвились (иногда это нужно).



А если Tor не работает?


Тогда можно вручную скачивать нужные Docker-образы с зеркал, например с gcr.io.



Так же в этом разделе:
 
MyTetra Share v.0.67
Яндекс индекс цитирования