Настройка определения геолокации

Описание

Геолокация — определение города и координат устройства по его IP-адресу. Используется для:

  • отображения устройств на карте

  • подбора ближайшего моста при подключении к удалённому филиалу

  • статистики по локациям подключений

Сервер RuDesktop определяет геолокацию автоматически для устройств с публичными IP-адресами по встроенной базе геолокации. Для устройств с приватными IP-адресами (например, во внутренней корпоративной сети) автоматическое определение не работает — для них настраиваются Подсети

Как это работает

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

Если для устройства геолокация определена, в данных устройства сохраняются город, регион, страна и координаты. Эти значения используются на странице «Карта» и при выборе ближайшего моста

Шаги настройки

Стандартный сценарий настройки состоит из трёх шагов:

  1. Загрузить справочник городов в базу данных. Этот справочник используется в форме подсети и при сопоставлении IP→город:

    rude load_cities
    

    Подробности — на странице load_cities

  2. Проверить, что внешний IP резолвится корректно:

    rude locate 8.8.8.8
    rude locate 81.19.72.32
    

    Команда выведет город, в который сервер сопоставил указанный IP. Подробности — на странице locate

  3. Проставить геолокацию устройствам, у которых её ещё нет:

    rude update_peers_geo
    

    Команда вычислит геолокацию для всех устройств, у которых она ещё не сохранена в базе. Подробности — на странице update_peers_geo

    Подсказка

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

Перепроверка сохранённых геолокаций

Если внешний клиент попадает в неверный город (например, после обновления сервера или массового изменения подсетей), пересчитайте сохранённые геолокации:

rude locate --all

Команда пройдёт по всем сохранённым в базе геолокациям и обновит записи, у которых результат изменился. Подробности — на странице locate

Диагностика

Симптом

Что проверить

rude locate <публичный IP> возвращает неверный город

Выполните rude locate --all для пересчёта сохранённых записей после обновления сервера

Устройства с публичными IP не появляются на карте

Геолокация записывается при подключении устройства. Для давно неактивных устройств выполните rude update_peers_geo

Устройства с приватными IP не определяются автоматически

Это ожидаемо — для приватных адресов настраиваются Подсети

См. также

  • Подсети — определение геолокации для устройств с приватными IP-адресами

  • Карта — отображение устройств по геопозиции

  • load_cities, locate, update_peers_geo — CLI-команды для работы с геолокацией