- PVSM.RU - https://www.pvsm.ru -

Pythonhosted.org ошибочно заблокирован Роскомнадзором

Поводом для написания статьи послужило отсутствие упоминаний данного события в Рунете. Виной тому, предположительно, является несоблюдение провайдерами требования РКН, о котором пойдет речь ниже. Мне его удалось обнаружить только в корпоративной сети. Но нет никаких сомнений, что рано или поздно это коснётся всех.

Разбор и детали под катом.

Причины блокировки

4 апреля Мосгорсудом было вынесено решение по делу № 3-0154/2019 [1] о перманентной блокировке ресурсов streamable.com [2]. Однако для надежности РКН заблокировал и его IP-адреса, которые по досадной случайности совпадают с адресами pythonhosted.org.

В итоге в реестре блокировок Роскомнадзора [3] появились следующие записи, относящиеся к решению суда:

  • streamable.com
  • 151.101.193.63
  • 151.101.129.63
  • 151.101.1.63
  • 151.101.65.63

В их наличии можете убедиться сами.

Последствия

Как я уже упоминал выше IP-адреса pythonhosted.org и заблокированного ресурса совпадают, что легко подтвердить:

Скрытый текст

> dig pythonhosted.org

; <<>> DiG 9.11.5-P1-1ubuntu2.4-Ubuntu <<>> pythonhosted.org
;; global options: +cmd
;; Got answer: ...

;; ANSWER SECTION:
pythonhosted.org.       10      IN      A       151.101.1.63
pythonhosted.org.       10      IN      A       151.101.129.63
pythonhosted.org.       10      IN      A       151.101.193.63
pythonhosted.org.       10      IN      A       151.101.65.63

;; Query time: ...

> dig streamable.com

; <<>> DiG 9.11.5-P1-1ubuntu2.4-Ubuntu <<>> streamable.com
;; global options: +cmd
;; Got answer: ...

;; ANSWER SECTION:
streamable.com.         60      IN      A       151.101.65.63
streamable.com.         60      IN      A       151.101.193.63
streamable.com.         60      IN      A       151.101.129.63
streamable.com.         60      IN      A       151.101.1.63

;; Query time: ...

В данной статье нет цели разобрать детали работы pip, следует лишь знать, что индекс пакетов хранится на домене pypi.org, сами файлы на files.pythonhosted.org. Как следствие работа со стандартным пакетным менеджером становится затруднительной или вовсе не возможной.

Для тех, кого уже коснулось

Здесь приведу короткий перечень самых популярных вариантов для использования pip. На энциклопедичную полноту не претендует, для тонких деталей лучше обратиться к официальной документации [4].

Опции

  1. Глобальный VPN или прокси
  2. Индивидуальный прокси для pip [5]
    Возможно установить через переменные окружения HTTP_PROXY, HTTP_PROXY, явный аргумент pip --proxy $proxy ... или конфигурационный файл [6]. Все варианты поддерживают формат [user:pass]@host:port.
  3. Использование альтернативного индекса пакетов [7]
    Ключевой опцией является index-url, которую также, как и прокси, можно передать вышеописанными способами.
  4. Поднятие корпоративного/домашнего зеркала pypi.org
    Самый благородный и самый сложный, да и места на диске требует аж 6 TB (здесь [8] дашборд с информацие по ресурсам, в т.ч. график PyPI Mirror Size).
  5. Использовать IPv6
    Есть DNS записи для pythonhosted.org с IPv6 адресами, которые не подверглись блокировке. Но не у каждого провайдер или сеть поддерживает этот протокол.

Заключение

Новость вряд ли вызовет удивление, т.к. такие ситуации происходят, и происходят регулярно. Я не призываю строчить жалобы на Роскомнадзор или подавать в суд за сломанные пайплайны. Но приготовиться заранее стоит.

Автор: Даниил Данилкин

Источник [9]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/python/318964

Ссылки в тексте:

[1] делу № 3-0154/2019: https://www.mos-gorsud.ru/mgs/services/cases/first-civil/details/97d659fa-5b81-4b81-ac63-cb15bd41c820?caseNumber=3-0154/2019

[2] streamable.com: http://streamable.com

[3] реестре блокировок Роскомнадзора: https://blocklist.rkn.gov.ru/

[4] официальной документации: https://pip.pypa.io/en/stable/user_guide/

[5] Индивидуальный прокси для pip: https://pip.pypa.io/en/stable/user_guide/#using-a-proxy-server

[6] конфигурационный файл: https://pip.pypa.io/en/stable/user_guide/#config-file

[7] альтернативного индекса пакетов: https://pip.pypa.io/en/stable/reference/pip_wheel/#cmdoption-i

[8] здесь: https://p.datadoghq.com/sb/7dc8b3250-85dcf667bd

[9] Источник: https://habr.com/ru/post/453608/?utm_source=habrahabr&utm_medium=rss&utm_campaign=453608