OpenStreetMap

Напомню суть проблемы. 11 ноября Максар заблокировал на своих серверах доступ с российских IP-адресов. Вместо тайлов он возвращает HTML с ошибкой “403 Forbidden”. Это ограничение очень легко обойти, если подключаться через Tor, через прокси-сервер или через VPN. Проблема в том, что при этом весь трафик идет через VPN/Прокси/Tor, а значит будет работать медленнее. А нам не надо заворачивать в Tor всё, нужно только запросы к серверам Максара.

И вот, у меня получилось. Я настроил проброс JOSM-запросов к слою Maxar Premium через Tor Browser. Все прочие запросы идут напрямую.


Описание схемы тезисно:

  • Ставим Tor Browser. Он интегрирован с клиентским ПО Tor, оно запускается и закрывается синхронно с браузером и работает как локальный socks5-прокси, к которому может подключаться абсолютно любое ПО на компьютере.

  • Ставим локальный http-прокси Privoxy. Указываем ему в конфиге “запросы к серверам Maxar заворачивать в прокси Tor, остальное качать напрямую”.

  • Настраиваем JOSM чтобы он работал с интернетом через http-прокси Privoxy


1) Установите Tor Browser. Для работы вам понадобится чтобы он был запущен и подключен к сети Tor. https://www.torproject.org/download/ Как вы будете его скачивать - без понятия, в России этот сайт заблокирован. Любой способ обхода блокировок в помощь. Простейший вариант - на время скачивания добавить в браузер плагин Browsec, но вообще мне этот плагин не нравится назойливостью рекламы, поэтому я отключаю его сразу после завершения использования. Если вы не пользовались Tor раньше, учтите, что в России он работает только через мосты (bridges), причём только через те, которые ещё не успел выявить и задавить РКН. После установки и запуска вам потребуется войти в настройки и запросить три случайных моста из списка тех, которые ещё работают:

Settings->Connection->Add New Bridge->Request a bridge from torproject.org

После этого Tor Browser начнёт успешно подключаться к сети Tor по нажатию соответствующей кнопки на стартовом экране. Чтобы отключиться от сети Tor, надо просто закрыть Tor Browser.

2) Скачайте локальный http-прокси сервер Privoxy http://www.privoxy.org/sf-download-mirror/Win32/3.0.29%20%28stable%29/privoxy_3.0.29.zip Распакуйте содержимое архива в любую папку, которая не требует админских прав для записи. Добавьте в конец файла config.txt строчку

forward-socks5t services.digitalglobe.com/ 127.0.0.1:9150 .

и добавьте пустую строку после неё. Обращаю внимание на пробел и точку в конце строки, они обязательны.

Для запуска прокси-сервера нужно запускать файл privoxy.exe, он добавляет значок в трей и закрывается через меню в трее. Админские права не нужны.

3) Настройте в JOSM работу через http proxy:

Правка->Настройки->Прокси-сервер->Собственная конфигурация прокси-> Сервер 127.0.0.1 Порт 8118

4) Добавьте в списке слоёв новый TMS-слой Maxar Premium со следующими настройками:

Правка->Настройки->Слои-> + TMS

Введите URL: [CENSORED]

Введите TMS URL:

Маскимальный масштаб: 22

Название: Maxar Premium

Всё, можно работать. Все запросы Privoxy будет отправлять напрямую, а запросы к слою Maxar - в Tor.


Примечания:

  • Обращаю внимание, что без запущенного Privoxy JOSM вообще не будет работать, либо надо ему в настройках указать “подключение к интернету без прокси”.

  • В принципе, слой Maxar Premium уже встроен в JOSM, но, похоже, при блокировке доступа к тайлам, поломался и механизм обновления токена (то что выше названо connectId), поэтому встроенный в JOSM слой не работает, приходится создавать кастомный, указывая туда этот токен напрямую. Вероятно в будущем придётся как-то вручную обновлять этот токен, выдирая его из онлайн-редактора iD сниффером. К счастью, он исключительно редко меняется, за последние четыре года такое было лишь однажды.

  • Если у вас есть хороший VPN, который предоставляет возможности локального прокси-сервера, вы можете вместо Tor использовать VPN. Всё, что вам нужно будет сделать - это изменить строчку в файле настроек Privoxy. Номер порта - тот, который нужен для подключения к ПО вашего VPN.

Для http-прокси надо указать:

forward services.digitalglobe.com/ 127.0.0.1:НОМЕР_ПОРТА .

Для socks5-прокси надо указать:

forward-socks5 services.digitalglobe.com/ 127.0.0.1:НОМЕР_ПОРТА .

Обращаю внимание на пробел и точку в конце строки, они обязательны. http://www.privoxy.org/user-manual/config.html#FORWARDING

  • При подключении через сеть Tor вы начинаете видеть интернет от имени выходного узла. Конкретный выходной узел выбирается при каждом подключении к сети Tor случайным образом. Чтобы заставить тор каждый раз выбирать выходные узлы, находящиеся в определённой стране, вам нужно воспользоваться инструкцией по нижеприведённой ссылке (хотя сам я этим не заморачивался, благо и без этого всё работает): https://www.wikihow.com/Set-a-Specific-Country-in-a-Tor-Browser

  • Если вы хотите в качестве редактора карты OSM использовать не JOSM, а онлайн-редактор iD, вы можете использовать любой желаемый браузер, выбрав в его настройках в качестве прокси-сервера этот самый Privoxy. Укажите в качестве http и https-сервера 127.0.0.1 с портом 8118, все запросы будут уходить в интернет напрямую, а запросы к снимкам Максара - через Tor. Минусы такого решения - что в России вообще не очень хорошая идея слать запросы в интернет напрямую и у вас наверняка на браузер уже навешано какое-то решение для обхода блокировок, очень вероятно, что оно будет конфликтовать с работой через Privoxy.

Discussion

Comment from KofDim on 12 December 2022 at 20:27

Спасибо

Log in to leave a comment