💡 Полезные Советы

Свой VPN в 2026 году: настройка VPS и Outline VPN за 15 минут

04.05.26
319

Сегодня мы разберем одно из самых удобных решений для селф-хостинга - установку Outline VPN. Он работает на базе зашифрованного протокола Shadowsocks, который изначально создавался для обхода Великого китайского файрвола. Главный плюс Outline - невероятно простое управление доступом для всех ваших устройств, семьи и друзей через удобный графический интерфейс.

Что такое Outline, кому он принадлежит и почему это надежно?

Outline - это не просто очередное VPN-приложение, а проект с открытым исходным кодом, который разрабатывается Jigsaw - технологическим инкубатором внутри корпорации Google (Alphabet). Изначально Outline создавался специально для журналистов, правозащитников и новостных организаций, чтобы обеспечить им безопасный доступ к информации в странах с жесткой интернет-цензурой.

Почему Outline считается надежным и безопасным:

  •  Протокол маскировки: В основе Outline лежит протокол Shadowsocks. Он не просто шифрует данные, но и маскирует их. Для систем блокировок (DPI) ваш трафик выглядит не как VPN-соединение, а как обычный, нечитаемый "белый шум". Это позволяет успешно обходить даже "Великий китайский файрвол".
  • Независимый аудит: Поскольку код проекта полностью открыт (Open Source), его регулярно проверяют независимые компании в сфере кибербезопасности (например, Radically Open Security и Cure53). В нем нет скрытых "бэкдоров".
  • Отсутствие логов (No-logs policy): Outline Manager и серверная часть технически не собирают и не хранят историю ваших веб-запросов. Вы контролируете свой сервер, и никто (даже Google) не имеет доступа к вашему трафику. Менеджер собирает лишь статистику объема переданных мегабайт, чтобы вы могли контролировать лимиты.

Скриншот приложения клиента:

Задача 1: Аренда сервера (VPS)

Для начала нам нужен виртуальный сервер за пределами РФ (не у хостера, который аффилирован с российскими компаниями или имеет российские стыки. Это не паранойя - это реальная техническая проблема, и она влияет и на приватность, и на обход блокировок, и на SEO‑репутацию IP).

  • Локация: Для пользователей из РФ идеальный баланс между пингом и стабильностью дают Германия, Нидерланды или Швеция. Выберите любого удобного зарубежного хостинг-провайдера (Hetzner, DigitalOcean, Vultr, Linode, OVHcloud или проверенных посредников).

    Можем посоветовать реселлера koara.io :

    Можете использовать нашу реферальную ссылку: https://koara.cloud/?from=1893 

    Промокод: sale_1893

  •    Тариф: Арендуйте самый дешевый тариф (обычно хватает 1 vCPU и 1-2 GB RAM).
  •    Операционная система: Строго чистая Ubuntu 22.04 (и выше) или Debian 12 (и выше).
  •    Виртуализация: Строго KVM.

После оплаты хостер выдаст вам IP-адрес сервера и пароль пользователя root.

Задача 2: Базовая безопасность сервера (Отказ от паролей)

Оставлять сервер с доступом по паролю в интернете - плохая идея. Его начнут атаковать боты-брутфорсеры в первые же минуты. Мы настроим доступ по криптографическому SSH-ключу.

Откройте PowerShell (если у вас Windows) или терминал (Linux/macOS) и выполните следующие шаги:

0. Первая кровь - смена пароля root

Подключитесь к серверу через терминал:
ssh root@ВАШ_IP

Введите команду passwd для смены пароля.

Важно: Не используйте простые слова. Мы рекомендуем генерировать пароль длиной не менее 13 символов. Для создания надежного пароля воспользуйтесь генератором на нашем сайте https://riopass.ru/. Такой пароль методом брутфорса будут взламывать десятилетиями.

На домашнем ПК:

  1. Генерация ключа:

    Введите команду:

    ssh-keygen -t ed25519 -f "$HOME\.ssh\vpn_key" -C "outline-server"

    Нажмите дважды Enter, когда система попросит ввести пароль (passphrase). В вашей папке .ssh появятся два файла: vpn_key (ваш секретный ключ) и vpn_key.pub (публичный ключ для сервера).

  2. Копирование публичного ключа на сервер:

    Выведите содержимое публичного ключа на экран и скопируйте его:

    cat "$HOME\.ssh\vpn_key.pub"
    Теперь подключитесь к вашему новому серверу по паролю, который дал хостер:
    ssh root@ВАШ_IP_АДРЕС

    Cоздайте папку для ключей и запишите туда скопированный ключ:

    mkdir -p ~/.ssh
    chmod 700 ~/.ssh
    nano ~/.ssh/authorized_keys

    Вставьте ваш ключ (ssh-ed25519...) в редактор, сохраните файл (Ctrl+O, Enter, Ctrl+X) и выдайте права:
    chmod 600 ~/.ssh/authorized_keys

  3. Отключение входа по паролю:

    Теперь скажем серверу пускать только владельца ключа. Откройте конфигурацию SSH:

    nano /etc/ssh/sshd_config

    Найдите и измените следующие строки:

    PasswordAuthentication no
    PermitRootLogin prohibit-password
    KbdInteractiveAuthentication no

    Перезапустите службу SSH, чтобы применить настройки:

    systemctl restart ssh

    Готово! Ваш сервер теперь защищен.

Задача 3: Установка Outline VPN

Архитектура Outline состоит из двух программ: Manager (для управления сервером на вашем ПК) и Client (для подключения к VPN на телефоне или ПК).

  1. Подготовка Outline Manager:
    1. Скачайте Outline Manager с официального сайта (getoutline.org) и установите на свой компьютер. Если сайт блокируется, то перейдите в официальный репозиторий на GitHub

      Прямо на главной странице в описании (файл README.md) собраны прямые ссылки на загрузку Outline Manager (для Windows, macOS, Linux) и Outline Client для всех платформ.

    2. Откройте программу и выберите плитку "Настроить Outline где угодно" (Set up Outline anywhere).
    3. Программа выдаст вам длинную команду, которая начинается с sudo bash -c .... Скопируйте её
  2. Установка на сервер:
    1. Вернитесь в терминал (PowerShell), где вы подключены к вашему серверу.
    2. Вставьте скопированную команду и нажмите Enter.

      Примечание: Если скрипт спросит, установить ли Docker, соглашайтесь (нажмите Y и Enter).

    3. Установка займет пару минут. В конце терминал выдаст зеленый текст — это ваши конфигурационные данные (API URL и сертификат), которые выглядят примерно так: {"apiUrl":"https://...","certSha256":"..."}. Скопируйте весь этот блок.
  3. Привязка сервера к Менеджеру:

    1. Вернитесь в Outline Manager.
    2. Вставьте скопированный из терминала зеленый блок во второе поле ввода и нажмите "Готово".

    Сервер настроен! Теперь перед вами панель управления вашим VPN.

Этап 4: Подключение устройств и раздельное туннелирование

Создание ключей и подключение:

  1. В Outline Manager нажмите "Добавить новый ключ". Вы можете переименовать его (например, "Мой iPhone" или "Ноутбук жены").

  2. Нажмите кнопку "Поделиться" рядом с ключом. Скопируйте полученный код доступа (начинается на ss://...). Но не забудьте про ПРЕФИКСЫ - https://riopass.ru/tips/117/ без них могут блокировать соединение.
  3. Скачайте приложение Outline Client на ваш телефон (из Google Play / App Store) или компьютер.

Чтобы безопасно подключиться к интернету, используйте этот сервер.

1. Скачайте и установите на устройство приложение Outline:

iOS: https://itunes.apple.com/app/outline-app/id1356177741
macOS: https://itunes.apple.com/app/outline-app/id1356178125
Windows: https://s3.amazonaws.com/outline-releases/client/windows/stable/Outline-Client.exe
Linux: https://support.getoutline.org/client/getting-started/install-linux/
Android: https://play.google.com/store/apps/details?id=org.outline.android.client
Дополнительная ссылка для Android: https://s3.amazonaws.com/outline-releases/client/android/stable/Outline-Client.apk

2. Получите ключ доступа, который начинается с ss://, а затем скопируйте его.

3. Откройте клиент Outline. Если ваш ключ доступа определился автоматически, нажмите "Подключиться". Если этого не произошло, вставьте ключ в поле и нажмите "Подключиться".

Теперь у вас есть доступ к свободному интернету. Чтобы убедиться, что вы подключились к серверу, введите в Google Поиске фразу "Какой у меня IP-адрес". IP-адрес, указанный в Google, должен совпадать с IP-адресом в клиенте Outline.

Дополнительные сведения можно найти на странице https://getoutline.org/.

Откройте Client. Он автоматически распознает скопированный ключ из буфера обмена. Нажмите "Добавить сервер" и затем "Подключить". И не забудьте про ПРЕФИКСЫ - https://riopass.ru/tips/117/ 

Раздельное туннелирование (Split Tunneling):

В отличие от Amnezia, десктопный клиент Outline пропускает через VPN весь трафик устройства по умолчанию.

 

Поздравляем! Теперь у вас есть собственный, надежный VPN. Остались вопросы? Пишите на почту техподдержки riopass.ru, разберем любые ошибки!

FAQ: Частые вопросы и решение проблем

В: Провайдер всё-таки заблокировал мой Outline. Подключение идет, но интернета нет. Что делать?
О: Протокол Shadowsocks, на котором базируется Outline, иногда подвергается ковровым блокировкам со стороны ТСПУ (особенно во время массовых ограничений). Роскомнадзор может блокировать конкретный порт на вашем сервере.

  • Решение: Зайдите в Outline Manager, нажмите на настройки сервера и измените "Порт для новых ключей доступа" на случайный (например, 8443, 443 или любой от 1024 до 65535). После этого создайте новый ключ доступа для своего устройства — часто это полностью решает проблему.

В: Можно ли поделиться своим VPN с семьей или друзьями?
О: Да, и Outline создан именно для этого! Вы можете создать десятки независимых ключей в Outline Manager. Вы будете видеть, сколько гигабайт трафика потратил каждый пользователь, и сможете удалить ключ в один клик.
Но помните: Чем больше людей одновременно качают тяжелые файлы через ваш единственный IP-адрес, тем выше риск привлечь внимание систем блокировки. Делитесь доступом с умом.

В: Скорость через VPN сильно упала. Как исправить?
О: Ваш магистральный провайдер пытается "зашейпить" (искусственно ограничить) трафик. Попробуйте сменить порт в настройках сервера (как описано выше) или перевыпустить ключи. Если это не помогает регулярно, возможно, вам стоит рассмотреть установку протокола Xray/Reality (см. нашу инструкцию по Amnezia VPN).

В: Почему периодически обрывается прямое подключение к серверу по SSH?
О: Чаще всего это банальный таймаут - сервер сам разрывает соединение из-за долгого бездействия (если вы ничего не вводите в консоль). Если падает активное подключение, это может означать, что провайдер видит факт SSH-соединения с зарубежным IP и обрывает его. В тяжелых случаях поможет смена хостинг-провайдера на менее "засвеченного" у систем фильтрации.

В: Мой российский провайдер увидит, какие сайты я посещаю через Outline?
О: Нет. Провайдер будет видеть только то, что вы передаете нечитаемый зашифрованный поток данных на неизвестный зарубежный IP-адрес. Ваши DNS-запросы, история посещений и скачанные файлы надежно спрятаны.

Глоссарий

  • VPS (Virtual Private Server): Виртуальный выделенный сервер. Грубо говоря, это изолированная часть мощного компьютера (сервера) в дата-центре, которую вы арендуете и полностью контролируете.
  • SSH (Secure Shell): Сетевой протокол, позволяющий безопасно подключаться к удаленному серверу и управлять им с помощью текстовых команд в терминале.
  • Shadowsocks: Открытый протокол шифрования данных, изначально разработанный в Китае для обхода государственной цензуры. В отличие от классических VPN, он маскирует трафик под обычное HTTPS-соединение.
  • DPI (Deep Packet Inspection): Технология глубокого анализа сетевых пакетов. Провайдеры используют её для проверки того, какие именно данные вы передаете, чтобы блокировать неугодные протоколы и сайты.
  • ТСПУ (Технические средства противодействия угрозам): Оборудование, которое Роскомнадзор обязывает устанавливать всех российских провайдеров. Именно эта "черная коробка" занимается фильтрацией (DPI) и блокировкой сайтов.
  • Раздельное туннелирование (Split Tunneling): Настройка, позволяющая пустить часть интернет-трафика (например, заблокированные сайты) через VPN, а другую часть (например, банковские приложения) - напрямую через вашего провайдера.
  • Брутфорс (Brute-force): Хакерский метод угадывания паролей путем их сплошного автоматического перебора. Именно поэтому мы отключили вход по паролю в Задаче 2.
  • Docker: Программная платформа, которая упаковывает приложения (в нашем случае серверную часть Outline) и все их зависимости в изолированные контейнеры. Это позволяет легко развернуть VPN на сервере одной командой, не засоряя саму операционную систему.
  • KVM (Kernel-based Virtual Machine): Технология аппаратной виртуализации, позволяющая создать на сервере полностью изолированную виртуальную машину со своим ядром ОС. В отличие от более дешевой технологии контейнеризации (например, OpenVZ), KVM гарантирует, что Docker и Outline будут работать без сбоев.
  • Open Source (Открытый исходный код): Модель разработки программного обеспечения, при которой любой желающий (в том числе независимые аудиторы безопасности) может посмотреть, как написан код программы. Это гарантия того, что в приложении нет скрытых шпионских модулей.
  • Ping (Пинг): Время в миллисекундах, за которое пакет данных доходит от вашего компьютера до сервера и возвращается обратно. Чем он ниже, тем отзывчивее будет интернет через VPN.
  • Root: Главный администратор (суперпользователь) в системах на базе Linux, имеющий абсолютные, неограниченные права на изменение любых настроек сервера.
  • SSH-ключ (Криптографический ключ): Альтернатива обычному паролю. Это связка из двух файлов (приватного и публичного). Приватный ключ надежно хранится только на вашем устройстве, а публичный - на сервере. Войти на сервер может только обладатель приватного ключа.
  • Бэкдор (Backdoor): Буквально "черный ход" или программная "закладка". Это преднамеренно скрытая уязвимость или специальный алгоритм в коде программы, который позволяет разработчикам, хакерам или спецслужбам получить несанкционированный доступ к устройству, обойти шифрование и незаметно перехватывать трафик в обход стандартных систем защиты. Благодаря тому, что код Outline полностью открыт (Open Source), независимые аудиторы могут проверить его и гарантировать, что в нем нет подобных скрытых угроз.

Как навсегда исправить "Troubleshooting keychain issues" в VS Code на Raspberry Pi и Linux

21.04.26
161

Если вы работаете с Visual Studio Code на Raspberry Pi (или любом другом Linux-дистрибутиве с нестандартной графической оболочкой, например на Wayland), то рано или поздно при попытке авторизоваться в GitHub или синхронизировать настройки вы увидите назойливое окно:

"An OS keyring couldn't be identified for storing the encryption related data in your current desktop environment."

Редактор предложит перейти по ссылке или выбрать Use weaker encryption. В этой статье мы разберем, почему нельзя нажимать кнопку слабого шифрования, и как настроить всё правильно с точки зрения безопасности.

Почему это происходит?

VS Code (построенный на базе Chromium) пытается найти системное защищенное хранилище (keyring), чтобы безопасно спрятать туда ваш токен авторизации (OAuth). Однако в легковесных средах на Raspberry Pi демон ключей часто либо не установлен, либо запускается не так, как ожидает редактор. В итоге VS Code "слепнет" и выдает ошибку.

Быстрое, но опасное решение (Не рекомендую)

Самый частый совет в интернете - прописать в настройках запуска VS Code параметр "password-store": "basic". Да, окно ошибки пропадет. Но ваш секретный токен от GitHub будет сохранен в обычном текстовом файле. Если кто-то получит доступ к файловой системе вашей "малинки" - он получит и полный доступ к вашим репозиториям.

Правильное решение: Настраиваем gnome-keyring

Мы пойдем по пути системного администратора и заставим VS Code работать с системным шифрованием через libsecret.

1. Установка необходимых библиотек

Открываем терминал и ставим сам менеджер ключей и графическую утилиту для управления им:

sudo apt update
sudo apt install gnome-keyring libpam-gnome-keyring seahorse libsecret-1-0 libsecret-tools

2. Создание системной связки ключей

Чтобы система могла хранить пароли, нам нужно физически создать "сейф".

  1. Запускаем установленную утилиту (в терминале вводим seahorse & или ищем "Пароли и ключи" в меню приложений).
  2. Жмем правой кнопкой мыши в левой колонке -> Создать новую связку ключей (New Keyring).
  3. Важно! Называем её строго Login (с большой буквы).
  4. Программа попросит задать пароль. Укажите точно такой же пароль, с которым вы входите в систему. Это позволит Linux автоматически открывать сейф при загрузке.
  5. Нажмите на новую связку правой кнопкой и выберите "Сделать по умолчанию".

3. Принудительное указание хранилища для VS Code

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

  1. Закройте VS Code, если он открыт, и "убейте" фоновые процессы командой: killall code
  2. Откройте файл аргументов запуска:

    nano ~/.vscode/argv.json
  3. Добавьте строку "password-store": "gnome-libsecret" перед закрывающей скобкой. Должно получиться так(если в файле ещё что то было не забудьте поставить запятую, подробнее читайте в FAQ ниже):

    {
        "disable-hardware-acceleration": true,
        "password-store": "gnome-libsecret"
    }
  4. Сохраните изменения (Ctrl+O, Enter, Ctrl+X).

Ура!

Запускаем Visual Studio Code и спокойно авторизуемся в GitHub. Больше никаких ошибок! Токен надежно зашифрован алгоритмами операционной системы, а любые другие расширения (Copilot, базы данных) будут автоматически использовать это безопасное хранилище.

FAQ: Часто задаваемые вопросы и возможные ошибки

1. Почему в инструкции сказано "не забудьте поставить запятую" в файле argv.json?
Файл argv.json написан в формате JSON. Одно из главных правил этого формата - все параметры внутри фигурных скобок { } должны разделяться запятыми. Запятая ставится после каждого параметра, кроме самого последнего.

Если в вашем файле уже были какие-то настройки, и вы добавляете "password-store" в конец, обязательно поставьте запятую после предыдущей строки.
❌ Неправильно (вызовет ошибку при запуске VS Code):

{
    "disable-crash-reporter": true
    "password-store": "gnome-libsecret"
}

✅ Правильно:

{
    "disable-crash-reporter": true,
    "password-store": "gnome-libsecret"
}

2. Что делать, если файла ~/.vscode/argv.json вообще нет?

Такое бывает, если вы только что установили редактор и ни разу не меняли параметры его запуска. Просто создайте этот файл вручную и впишите туда структуру с нуля:

{
    "password-store": "gnome-libsecret"
}

(Заметьте: так как параметр здесь всего один, запятая после него не ставится).

3. Я поменял пароль от своего пользователя на Raspberry Pi, и теперь при запуске VS Code снова выскакивают окна.

Когда мы создавали связку ключей Login, мы задали ей пароль, совпадающий с паролем вашего пользователя. Это позволяет системе разблокировать сейф автоматически при входе. Если вы изменили пароль пользователя в Linux (через команду passwd), пароль от сейфа Login остался старым, и автоматическая разблокировка сломалась.
Как исправить: Откройте утилиту Seahorse ("Пароли и ключи"), нажмите правой кнопкой мыши на связку Login, выберите "Изменить пароль" и укажите ваш новый пароль от системы.

4. Подойдет ли эта инструкция для других дистрибутивов Linux (Ubuntu, Debian, Fedora)?

Да, абсолютно. Проблема с "keychain issues" в Visual Studio Code не является эксклюзивом для Raspberry Pi. Она возникает на любом Linux-дистрибутиве, где графическая оболочка (особенно на базе Wayland) или оконный менеджер (i3, sway) не инициализирует gnome-keyring должным образом по умолчанию. Описанный метод с libsecret - это универсальное и правильное решение для всего семейства Linux.

Глоссарий

  • Keyring / Keychain (Связка ключей) - системное зашифрованное хранилище в операционной системе, предназначенное для безопасного хранения паролей, ключей шифрования и сертификатов.
  • OAuth-токен - специальный цифровой ключ (строка символов), который GitHub выдает приложению (например, Visual Studio Code), чтобы оно могло выполнять действия от вашего имени без необходимости каждый раз вводить логин и пароль.
  • gnome-keyring - фоновая служба (демон) в Linux, которая отвечает за управление системной связкой ключей и обеспечивает безопасное хранение секретов.
  • libsecret - системная библиотека, которая служит стандартизированным "мостом". Через нее различные программы (включая VS Code) общаются с gnome-keyring, чтобы положить или достать пароль, не вникая в тонкости работы самого хранилища.
  • Seahorse (Пароли и ключи) - графическая программа для среды Linux, которая позволяет пользователю визуально просматривать, создавать и управлять своими связками ключей и паролями.
  • Wayland - современный протокол графического сервера в Linux (активно используется в последних версиях Raspberry Pi OS). Из-за его архитектурных отличий от старого X11 некоторые классические механизмы (например, автозапуск менеджеров паролей) могут работать нестандартно, что и вызывает подобные ошибки.
  • argv.json - скрытый конфигурационный файл Visual Studio Code, в котором задаются низкоуровневые параметры запуска редактора, применяемые еще до загрузки основного графического интерфейса.
  • Weaker encryption (Слабое шифрование) - механизм обходного хранения секретов в VS Code, при котором токены сохраняются в локальном файле настроек редактора без использования криптографической защиты операционной системы.

 

Что такое DNS и как это работает: Подробное руководство

19.03.26
190

Интернет может казаться магией, но под капотом скрываются строгие и логичные алгоритмы. Один из самых важных - это DNS (Domain Name System или Система доменных имён). Если бы не DNS, нам бы пришлось запоминать длинные ряды цифр вместо удобных названий сайтов, таких как www.riopass.ru.

Что такое DNS?

Представьте себе классическую телефонную книгу. Вы знаете имя человека (например, Иван Иванов), но вам нужен его номер телефона, чтобы дозвониться. Вы открываете книгу, находите имя и смотрите соответствующий ему номер.

DNS делает абсолютно то же самое для интернета:

  • Люди привыкли использовать понятные доменные имена (например, yandex.ru, google.com).
  • Компьютеры и серверы общаются друг с другом исключительно с помощью IP-адресов (например, 192.0.2.1 или 2a00:1450:4010:c05::8b).

DNS - это глобальная телефонная книга интернета, которая мгновенно переводит человекочитаемые адреса в машинные IP-адреса.

Как происходит преобразование адреса?

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

Локальное преобразование
Прежде чем беспокоить глобальные серверы, ваш компьютер пытается найти ответ у себя "в карманах".

  • Кэш браузера: Ваш браузер (Chrome, Safari, Firefox) хранит записи о сайтах, которые вы недавно посещали. Первым делом он проверяет свой собственный кэш.
  • Кэш операционной системы (ОС): Если браузер не нашел IP-адрес, он передает запрос операционной системе (Windows, macOS, Linux). ОС проверяет свой кэш DNS. Также на этом этапе проверяется локальный файл hosts (специальный текстовый файл, где пользователи могут вручную прописать соответствие IP и домена).
  • Кэш маршрутизатора (Роутера): Если на компьютере ответа нет, запрос уходит на ваш домашний или офисный роутер. У него тоже есть своя небольшая память для DNS-запросов.

Если ни на одном из этих локальных этапов IP-адрес не найден, компьютер обращается за помощью во внешний мир.

Клиент -> Резолвер: рекурсивный запрос
Резолвер -> ROOT/TLD/авторитетный: итеративные запросы

Преобразование в рамках интернета

Здесь в игру вступает иерархия серверов интернета. Ваш запрос передается рекурсивному DNS-серверу (обычно его предоставляет ваш интернет-провайдер). Его задача - бегать по инстанциям, пока не найдет нужный ответ.

Вот как выглядит его маршрут:

  • Корневые серверы (Root Nameservers):
    Рекурсивный сервер не знает, где находится example.com, поэтому он идет к "самым главным" серверам интернета - корневым. Они не знают точного IP-адреса сайта, но знают, кто отвечает за зону .com, .ru или .org.
  • Серверы доменных зон верхнего уровня (TLD Nameservers):
    Корневой сервер отправляет запрос к серверу, отвечающему за конкретную зону (например, к TLD-серверу зоны .com). Этот сервер тоже не знает точный IP сайта, но знает, у какого сервера находится эта информация.
  • Авторитативные серверы (Authoritative Nameservers):
    Это финальная инстанция. TLD-сервер указывает на авторитативный сервер, который физически хранит нужную DNS-запись для example.com. Этот сервер выдает точный IP-адрес.

Рекурсивный сервер получает IP-адрес, сохраняет его в свой кэш (чтобы в следующий раз ответить быстрее) и отдает вашему браузеру. Браузер подключается к серверу по полученному IP-адресу, и вы видите сайт.

Виды DNS-запросов: Как именно общаются серверы

  1. Рекурсивный запрос (Recursive Query)
    Это запрос в стиле: "Сделай всю работу за меня и дай готовый ответ".
    Когда ваш компьютер обращается к DNS-серверу провайдера (или к 8.8.8.8), он отправляет именно рекурсивный запрос. Это означает, что сервер берет на себя обязательство пройти по всем инстанциям (корневые серверы, TLD, авторитативные) и вернуть вашему компьютеру либо готовый IP-адрес, либо сообщение об ошибке (если домена не существует). Ваш компьютер при этом просто ждет.
  2. Итеративный запрос (Iterative / Non-recursive Query)
    Это запрос в стиле: "Дай мне лучший ответ, который у тебя есть прямо сейчас".
    Именно так общаются между собой сами DNS-серверы в глобальной сети. Когда рекурсивный сервер провайдера спрашивает корневой сервер: "Где example.com?", он делает итеративный запрос. Корневой сервер не будет искать ответ сам. Он скажет: "Я не знаю точный IP, но я знаю, кто отвечает за зону .com. Вот его адрес, иди спроси у него". Рекурсивный сервер принимает этот ответ и делает следующий итеративный запрос уже к TLD-серверу.

Направления запросов: Прямые, Обратные и Инверсные

Помимо способа поиска, запросы делятся по тому, что именно мы ищем. Здесь важно не путать термины.

  1. Прямой запрос (Forward DNS Query)
    Это классика, о которой мы говорили выше. У нас есть доменное имя (человекочитаемое), и мы хотим получить его IP-адрес (машинный).
    Это самый частый сценарий. Допустим, мы хотим узнать, на каком IP-адресе "живет" сайт riopass.ru.
    В Windows (через cmd или PowerShell): -> Введите команду: -> nslookup riopass.ru, если порт 53 заблокирован то nslookup riopass.ru 8.8.8.8
    В ответе вы увидите DNS-сервер, который обработал ваш запрос, и ниже сам IP-адрес сайта.
  2. Обратный запрос (Reverse DNS Query / rDNS)
    Здесь всё наоборот: у нас есть IP-адрес, и мы хотим узнать, какое доменное имя за ним закреплено. Это часто используется для проверки на спам (почтовые серверы проверяют, совпадает ли IP-адрес отправителя с его доменом) или при трассировке сетей (утилита traceroute). Для этого используется специальная доменная зона in-addr.arpa и записи типа PTR (Pointer).

    Теперь попробуем выполнить rDNS-запрос. Возьмем всем известный публичный DNS-сервер от Google с адресом 8.8.8.8 и проверим, какое доменное имя за ним закреплено в глобальной сети. В Windows: ->Просто введите IP вместо домена: -> nslookup 8.8.8.8 -> В ответе в строке Name: вы увидите dns.google.

  3. Инверсный запрос (Inverse Query / IQUERY)
    А вот здесь кроется технический нюанс, о котором многие забывают. Инверсный запрос - это старый и специфический механизм. В нем клиент просил сервер найти доменное имя, основываясь на любой известной ресурсной записи (не обязательно на IP-адресе).
    Из-за высокой нагрузки на серверы и сложностей в реализации, инверсные запросы были официально признаны устаревшими (deprecated) еще в 2002 году документом RFC 3425. Сегодня в современном интернете они не используются, их место полностью заняли обратные запросы (rDNS).

Дополнение:
По умолчанию утилиты ищут A-запись (IPv4-адрес). Но если вам нужно узнать, какие серверы обрабатывают электронную почту для домена (MX-записи), тип запроса нужно указать явно. Попробуем на примере Яндекса: -> В Windows: -> nslookup -type=MX yandex.ru

В Linux / macOS: -> dig yandex.ru MX +short -> В ответ вы получите список серверов (например, mx.yandex.ru) и их приоритеты - именно туда отправляются письма, когда вы пишете на адрес @yandex.ru.

Часто задаваемые вопросы (FAQ)

1. Почему при переезде сайта на другой хостинг он какое-то время не работает?
Это связано с процессом обновления кэша. На каждом этапе (у провайдеров, на роутерах) DNS-записи кэшируются на определенное время (этот параметр называется TTL - Time to Live). Пока это время не истечет, серверы будут отдавать старый IP-адрес. Полное обновление по всему миру может занимать от пары часов до 48 часов.

2. Что значит "Сбросить DNS-кэш" (Flush DNS)?
Иногда ваш компьютер запоминает устаревший или ошибочный IP-адрес (например, если сайт недавно сменил сервер). Очистка (сброс) кэша заставляет операционную систему забыть старые данные и выполнить глобальный поиск заново, получив актуальный адрес.

3. Зачем люди меняют DNS-серверы на 8.8.8.8 (Google) или 1.1.1.1 (Cloudflare)?
По умолчанию вы используете рекурсивные серверы вашего интернет-провайдера. Иногда они работают медленно, нестабильно или блокируют определенные ресурсы. Переключение на публичные серверы от Google или Cloudflare часто ускоряет загрузку страниц и повышает приватность.

4. Что такое записи типа A, CNAME, MX?
На авторитативном сервере данные хранятся в виде разных записей:

  • A-запись: Связывает домен с IPv4-адресом (самая частая).
  • CNAME: "Псевдоним", связывает один домен с другим (например, www.site.com с site.com).
  • MX-запись: Указывает, какой сервер обрабатывает электронную почту для этого домена.

 

Протоколы TCP и UDP: история, отличия и сферы применения.

17.03.26
185

Немного истории: зачем они были созданы?
В 1970-х годах, когда интернет только зарождался (тогда еще сеть ARPANET), инженеры Винт Серф и Боб Кан разработали протокол TCP (Transmission Control Protocol). Их главная цель заключалась в создании абсолютно надежной системы связи. Если военные или ученые отправляли данные с одного компьютера на другой, протокол должен был гарантировать, что ни один байт информации не потеряется по пути, даже если часть сети выйдет из строя.

TCP отлично справлялся со своей задачей - он бережно доставлял данные, проверял их целостность и собирал в правильном порядке. Но у этой надежности была своя цена: медлительность.

К концу 70-х годов стало понятно, что для некоторых задач (например, для передачи голоса в реальном времени) надежность не так важна, как скорость. Если при телефонном разговоре потеряется доля секунды звука, вы этого даже не заметите, но если голос будет приходить с огромной задержкой из-за проверок, общаться станет невозможно.

Поэтому в 1980 году ученый Дэвид П. Рид разработал UDP (User Datagram Protocol) - протокол, который избавился от всех проверок TCP ради максимальной скорости. Так интернет получил два фундаментальных инструмента: один для безупречной надежности, другой - для молниеносной скорости.

Определения: Что такое TCP и UDP?

TCP (Transmission Control Protocol - протокол управления передачей) - это протокол с предварительной установкой соединения. Перед отправкой данных он "звонит" принимающей стороне, убеждается, что та готова, и только потом начинает передачу - трёхстороннее рукопожатие. Он тщательно следит за тем, чтобы все пакеты данных дошли без потерь и в строгом порядке.

UDP (User Datagram Protocol - протокол пользовательских датаграмм) - это протокол без установки соединения. Он просто берет данные и "выстреливает" ими в сторону получателя без каких-либо предупреждений и проверок. Ему неважно, дошли ли данные, готовы ли их принять и в каком порядке они пришли. Главное - отправить их как можно быстрее.

 

В чем разница?

Чтобы легко понять разницу, представьте два способа доставки посылки:
TCP - это заказное письмо с курьером лично в руки. TCP работает так, будто сеть - это опасная дорога, и протокол обязан гарантировать, что каждая коробка дойдёт в целости и строго по порядку.
Основные механизмы, которые скрыты за образом "курьера":

  • Установление соединения - курьер сначала удостоверяется, что ты дома (3‑way handshake - тройное рукопожатие).
    • SYN (Synchronize) - стук в дверь: Клиент (курьер) обращается к серверу: "Привет! У меня есть для тебя коробки. Я хочу установить защищенное соединение, ты готов?"
    • SYN-ACK (Synchronize-Acknowledge) -  хозяин открывает дверь: Сервер (получатель дома) отвечает: "Привет! Да, я на месте и готов принимать твои данные (ACK). Со своей стороны тоже готов к работе (SYN)."
    • ACK (Acknowledge) - финальное подтверждение: Клиент (курьер) завершает ритуал: "Супер, я увидел, что ты готов (ACK). Начинаю передачу первой коробки!"
  • Подтверждение каждой коробки - получатель отправляет ACK за каждый полученный сегмент.
  • Повторная доставка - если ACK не пришёл, курьер везёт коробку снова.
  • Контроль порядка - если коробки пришли не по порядку, TCP складывает их в буфер и выдаёт тебе в правильной последовательности.
  • Контроль скорости - курьер замедляется, если дорога перегружена (congestion control).

Курьер звонит вам в дверь, просит расписаться за каждую коробку, а если коробка потерялась по пути - возвращается на склад и привозит новую. Это надежно, но долго.
 

 

UDP - это почтальон, который на ходу забрасывает газеты вам на балкон. Он не проверяет, поймали ли вы газету или она упала в лужу. Он просто кидает и едет дальше. Это невероятно быстро.

  • Установление соединения (отсутствует) - почтальон не звонит в дверь и не проверяет, дома ли ты (здесь нет никаких SYN и ACK). Он просто проезжает мимо на полном ходу и не глядя кидает стопку газет тебе на балкон. Клиент сразу начинает передачу данных.
  • Подтверждение получения (отсутствует) - почтальон не ждет, пока ты крикнешь: "Поймал!". Ему абсолютно всё равно, долетела ли газета до балкона или ударилась о стену. Сервер не отправляет никаких подтверждений.
  • Повторная доставка (отсутствует) - если газета упала в лужу, ее сдуло ветром или украла собака (пакет потерялся в сети), почтальон не вернется, чтобы привезти новую. Потерянные данные игнорируются, протокол двигается дальше.
  • Контроль порядка (отсутствует) - газеты могут прилететь в случайном порядке: сначала за среду, потом за понедельник, а во вторник вообще не прийти. UDP не выстраивает их в очередь, разбираться с этой кучей придется самому получателю (конечному приложению).
  • Контроль скорости (отсутствует) - почтальон не притормаживает, даже если весь двор уже завален чужими посылками, а сеть перегружена. Он продолжает "кидать" данные с максимальной скоростью, на которую способен.

Где используются эти протоколы?

Выбор между TCP и UDP всегда сводится к компромиссу: что в данный момент важнее - чтобы все пиксели картинки загрузились без ошибок, или чтобы видеозвонок не тормозил?

Где TCP там, важна надежность:

  • Веб-серфинг (HTTP/HTTPS): Когда вы читаете эту статью, текст должен загрузиться целиком, без пропущенных букв.
  • Электронная почта (SMTP, IMAP): Ваше письмо должно дойти слово в слово.
  • Передача файлов (FTP): Если при скачивании программы потеряется хотя бы один байт, она не запустится.
  • Мессенджеры (текст): Отправка текстовых сообщений всегда идет по TCP, чтобы сообщение точно было доставлено.

Где спасает UDP, там важна скорость:

  • Онлайн-игры: В шутерах или гонках (CS:GO, Dota 2) важнее получить информацию о том, где находится противник прямо сейчас, чем то, где он был секунду назад. Потерянный пакет данных менее критичен, чем задержка (пинг).
  • Стриминг и видеозвонки (Skype, Zoom, YouTube Live): Если во время звонка пропадет пара кадров видео, изображение просто на секунду "дернется", и трансляция пойдет дальше. Если бы использовался TCP, видео постоянно замирало бы на подгрузку ("буферизацию").
  • IP-телефония (VoIP): Передача голоса через интернет.
  • DNS-запросы: Быстрый перевод имени сайта (например, google.com) в IP-адрес.

Часто задаваемые вопросы

1. Можно ли использовать TCP и UDP одновременно?

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

2. Какой протокол лучше?

Нельзя сказать, что один протокол однозначно лучше другого - они созданы для разных задач. Если вам нужна 100% гарантия доставки каждого байта (скачивание файлов, загрузка веб-страниц), то лучше TCP. Если в приоритете максимальная скорость работы и минимальный пинг (стриминг, IP-телефония, онлайн-игры), то победитель - UDP.

3. Можно ли сделать UDP надежным, чтобы он не терял пакеты?

Сам протокол UDP изменить нельзя, но разработчики часто создают собственные надстройки поверх него. Отличный пример - современный протокол QUIC (разработанный Google). Он работает поверх быстрого UDP, но при этом берет на себя функции контроля потерянных пакетов, объединяя лучшие черты обоих миров.

4. Безопасны ли протоколы TCP и UDP?

Сами по себе базовые протоколы TCP и UDP не шифруют данные - они передаются в открытом виде. За безопасность отвечают протоколы более высокого уровня. Например, чтобы защитить данные, передаваемые по TCP, сверху "наслаивается" протокол TLS/SSL (так получается безопасный HTTPS). А для защиты UDP-трафика часто используются VPN-туннели (например, популярный протокол WireGuard работает именно поверх UDP).
 

Обзор Cudy WR300: думал будет проходняк, а оказался топ за свои деньги

15.03.26
232

Недавно мне в руки попал Wi-Fi роутер Cudy WR300. Я брал его сугубо как точку доступа, с мыслью "куплю какое-то барахло на сдачу, лишь бы сеть раздавало". Но реальность превзошла ожидания настолько, что устройство однозначно заслуживает отдельного разбора.

Железо: скромно, но со вкусом

Аппаратная база здесь без претензий на гигабитные скорости, но для своих задач она сбалансирована идеально:

Процессор: MediaTek MT7628 (580 МГц)

Память: 64 МБ ОЗУ (DDR2) и 8 МБ Flash

Интерфейсы: 1x WAN и 3x LAN (все порты стандарта 10/100 Мбит/с)

Беспроводная сеть: Только 2.4 ГГц (802.11n, до 300 Мбит/с), работают две несъемные антенны с усилением 5 дБи.

Дизайн потрясающий - устройство выглядит гораздо дороже своей реальной стоимости. Производитель не поскупился даже на упаковку: красивая коробка, аккуратно уложенная документация - распаковывать действительно приятно.

Программная оболочка: Скрытый OpenWRT

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

Да, она урезана и сильно адаптирована под рядового пользователя, но стабильность ядра OpenWRT никуда не делась. Роутер работает как швейцарские часы и из коробки поддерживает современные VPN-протоколы (WireGuard, L2TP, PPTP).

Киллер-фичи для своей цены

  • MESH из коробки. Был приятно удивлен тем, что этот малыш поддерживает бесшовный роуминг. Если покрытия одной точки не хватит, можно легко докупить еще один роутер Cudy и в пару кликов собрать единую сеть.
  • Умный редирект при обрыве. Если отходит интернет-кабель (как случилось у меня) или пропадает линк от провайдера, роутер не просто оставляет вас перед неработающим браузером. При потере связи он автоматически выкидывает вас на окно авторизации/статуса устройства. Это невероятно удобно для быстрого траблшутинга - сразу понимаешь, на чьей стороне проблема.

 

Результаты:

  • Программная оболочка: 10 из 10
  • Дизайн: 10 из 10
  • Комплектация: 10 из 10

Это превосходный роутер для создания точки доступа, покрытия умного дома или работы на тарифах до 100 Мбит/с. Тот самый случай, когда железка отрабатывает каждый вложенный рубль.

MAC-адрес: что это, как работает и зачем его подменяют

14.03.26
181

MAC-адрес (Media Access Control) - это уникальный 48-битный идентификатор, который "вшивается" в любое устройство, способное выходить в сеть (Wi-Fi модуль смартфона, сетевая карта компьютера, умный чайник).

Он записывается в виде шести пар шестнадцатеричных цифр, разделенных двоеточиями или дефисами (например, 00:1A:2B:3C:4D:5E).

  • Первые 3 байта (00:1A:2B): Это идентификатор производителя (OUI). По нему можно узнать, кто выпустил устройство - Apple, Intel, Samsung и так далее.
  • Вторые 3 байта (3C:4D:5E): Это уникальный номер самого устройства, который назначает производитель.

MAC-адреса используются коммутаторами и роутерами для доставки пакетов данных внутри локальной сети. Роутеру не важно, какой у вас IP, когда он передает данные на ваш телефон - он ищет ваш MAC-адрес в своей таблице.

Подмена MAC-адреса (MAC Spoofing)

Исторически MAC-адрес был "жестко" прошит в микросхеме. Но сегодня операционная система (Windows, macOS, Android, iOS) выступает посредником между сетевой картой и сетью. Это значит, что система может программно "представиться" роутеру любым другим MAC-адресом.

Это и есть подмена (спуфинг). Зачем это нужно?

  • Приватность и защита от слежки (Легальное использование): Торговые центры и аэропорты часто отслеживают перемещения людей по Wi-Fi, собирая MAC-адреса их телефонов (даже если вы не подключились к сети). Чтобы защитить вас, современные смартфоны используют MAC-рандомизацию - они генерируют случайный, поддельный MAC-адрес для каждой новой публичной сети.
  • Обход ограничений (Серая зона): Платный Wi-Fi в отелях часто дает бесплатный интернет только на 30 минут, запоминая ваш MAC. Подменив его, можно получить еще 30 минут.
  • Атаки и взлом (Нелегальное использование): Хакер может подменить свой MAC-адрес на адрес администратора или доверенного устройства, чтобы получить доступ к закрытой корпоративной сети, где настроена фильтрация по MAC-адресам.

Как защитить себя и сеть?

Когда речь заходит о безопасности на уровне MAC-адресов, важно разделять защиту сети (если вы администратор) и защиту себя (как пользователя).

1. Защита себя (Как пользователя)
Главная угроза в публичных сетях, связанная с MAC-адресами - это слежка и атаки типа ARP-spoofing (когда хакер обманывает роутер и заставляет весь ваш трафик идти через его компьютер).

  • Включите рандомизацию MAC: Убедитесь, что в настройках Wi-Fi на вашем смартфоне включена опция "Использовать случайный MAC-адрес" (Privacy address). Это не даст маркетологам составить карту ваших перемещений.
  • Используйте VPN в публичных местах: Подмена MAC не спасет от перехвата трафика хакером в кафе. Но если вы используете VPN, весь ваш трафик будет зашифрован. Даже если хакер перехватит его с помощью ARP-spoofing, он увидит только бесполезный набор символов.

2. Защита сети (Если вы настраиваете роутер или сервер)
Долгое время MAC-фильтрация (когда роутер пускает в сеть только устройства из "белого списка" MAC-адресов) считалась хорошим средством защиты. Сегодня это миф. Хакеру достаточно послушать эфир пару минут, увидеть "разрешенный" MAC-адрес и подменить свой на него.

Реальная безопасность строится иначе:

  • WPA3: Используйте современные протоколы шифрования Wi-Fi. Если сеть зашифрована надежным паролем, подмена MAC-адреса не поможет злоумышленнику подключиться.
  • Dynamic ARP Inspection (DAI) и Port Security: В корпоративных сетях умные коммутаторы жестко привязывают MAC-адрес к физическому порту в стене. Если кто-то попытается вытащить кабель из рабочего ПК и вставить в свой ноутбук с поддельным MAC, коммутатор мгновенно заблокирует порт.

Мини-FAQ: Частые вопросы о MAC-адресах

  • Можно ли полностью скрыть MAC-адрес?
    Нет. Без MAC-адреса ваша сетевая карта просто не сможет отправлять и получать данные - коммутаторы и роутеры не поймут, кому доставлять пакеты. Вы не можете его скрыть, но можете легко подменить на выдуманный. Это и есть лучшая маскировка.
  • Видит ли сайт мой MAC?
    Нет. Владельцы сайтов, стриминговых сервисов или администраторы серверов в интернете ваш MAC-адрес не видят. Он работает только в пределах вашей локальной сети - ровно до домашнего роутера или оборудования провайдера. Дальше в большой интернет уходит только ваш IP-адрес.
  • Можно ли узнать MAC-адрес по IP?
    Только если вы находитесь с человеком в одной физической или виртуальной локальной сети (например, сидите через один Wi-Fi или соединены через VPN). В этом случае адрес легко узнается через протокол ARP. Вычислить MAC-адрес по IP-адресу через глобальную сеть интернет невозможно.
  • Опасно ли показывать MAC-адрес?
    Сам по себе он не дает прямого доступа к вашему устройству, взломать вас зная только MAC - нельзя. Главная угроза здесь - приватность. Маркетинговые компании и торговые центры используют Wi-Fi радары, чтобы собирать реальные MAC-адреса устройств и отслеживать перемещения покупателей. Поэтому в публичных местах использование случайного MAC-адреса - строгая необходимость.
  • Почему MAC-фильтрация не работает?
    Представим, что вы решили защитить домашнюю сеть и настроили на роутере строгий "белый список" MAC-адресов. Злоумышленнику даже не нужно пытаться подобрать пароль. Он садится рядом, переводит свой Wi-Fi адаптер в режим мониторинга (с помощью утилит вроде airodump-ng) и просто "слушает" радиоэфир.
    Через пару минут он видит, как ваш легитимный смартфон общается с роутером, и записывает его MAC. Затем хакер отправляет вашему телефону команду на отключение (пакет деаутентификации), быстро меняет свой MAC-адрес на ваш с помощью macchanger и стучится в сеть. Роутер видит знакомый адрес из "белого списка" и пускает хакера. Защита, на которую вы потратили время, обходится за две минуты.
  • Как Android генерирует случайный MAC?
    Начиная с десятой версии, Android по умолчанию использует рандомизацию MAC-адресов, но делает это умно. Система не просто придумывает случайный набор символов каждую секунду. Она меняет специальный бит в начале адреса (показывая сети, что адрес сгенерирован локально), а затем создает уникальный, но постоянный фейковый MAC для каждой отдельной Wi-Fi сети.
    Зачем это нужно? Если вы каждый день ходите в одну и ту же кофейню, роутер заведения будет узнавать ваш "случайный" MAC-адрес, и вам не придется каждый раз заново вводить пароль от публичной сети. Но при этом для роутера в метро у вас будет уже совершенно другой MAC.

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

Подмена (спуфинг) - это уже давно не только хакерский инструмент, но и базовая функция современных смартфонов и ПК для защиты вашей приватности от слежки.

MAC-фильтрация - абсолютно неэффективный метод защиты сети. Надежную безопасность обеспечивает только современное шифрование (WPA2/WPA3) и сложные пароли.

В интернете ваш MAC-адрес остается неизвестным, там вся маршрутизация строится на базе IP-адресов.