Подарить свое сердце? А может, лучше подарить свой сервер? 💙
Очень приятная фича, которая даст возможность перенести сервер вместе с бэкапами, IP и сетевыми дисками с одного аккаунта на другой без лишних заморочек.
Как перенести сервер:
1️⃣Заходим в Панель управления, выбираем конкретный сервер и нажимаем «Доступ»
2️⃣Кликаем кнопку «Передать»
3️⃣Указываем логин аккаунта, на который переносится сервер, и вводим код подтверждения (он придет на почту)
4️⃣У получателя сервер появится в списке. Его можно принять или вообще отказаться от переноса
Важно: во время передачи облачный сервер будет заблокирован и помечен в панели как ожидающий переноса (но на его работе это не отразится).
Подключайтесь к трансляции митапа для инженеров и сисадминов
Сегодня на SelectOS OpenFix Day обсуждаем лучшие практики работы с Open Source, вспоминаем свои инженерные факапы и разбираемся с нестандартными инфраструктурными задачами. Начало трансляции в 18:30 (мск).
Программа
Rust в ядре — прогресс или костыль в бронзе? Живая дискуссия про разный опыт работы с этим языком программирования.
Как справиться с инфраструктурным хаосом: вредные советы.
Честные истории о том, как падал и поднимался прод.
Ждем всех, кто не просто использует Linux, а вникает в код, фиксирует баги и патчит уязвимости.
Ловите возможность узнать лучшие практики по подготовке и получению сертификации по TOGAF Enterprise Architecture Foundation в 2025 году.
Вебинар предназначен для всех, кто хочет познакомиться с актуальной версией самого популярного фреймворка по управлению корпоративной архитектурой TOGAF.
Ведущий вебинара, бизнес-тренер Олег Бурко, сдал экзамен на сертификат TOGAF Enterprise Architecture Foundation в 2025 году и поделится лучшими практиками как по подготовке к сертификации, так и по изучению TOGAF 10.
📅 Дата: 24.06.2025
⏰ Время: 16:00-17:00 (Мск)
На вебинаре:
✔️ Фреймворк по управлению корпоративной архитектурой TOGAF
✔️ Что нового в TOGAF 10
✔️ Какую сертификацию по TOGAF выбрать
✔️ Как подготовиться и успешно получить сертификат TOGAF Enterprise Architecture Foundation
Батл мнений: «Ванильный» K8s VS коммерческие решения: когда стоит платить?
Коммерческие платформы, предлагающие расширенную функциональность «из коробки», активно конкурируют с «ванильным» Kubernetes, который поставляется на базе открытого кода и «обогащается» внутренними командами самостоятельно. Но когда же выгоднее собрать продукт внутри, а когда — использовать чужое? И какой путь чаще выбирает крупный бизнес?
В прямом эфире вместе с AM Live собрали представителей топовых компаний: «Авито», Почта Банк, beeline cloud, АЛРОСА ИТ, RWB Media.
Они рассказали, какой подход используют внутри и почему именно его, с какими сложностями сталкиваются и какая команда эксплуатирует и поддерживает контейнерную платформу.
Смотрите запись эфира на удобной для вас платформе:
О возвращеніи къ истокамъ: почему дореволюціонная орѳографія можетъ стать новымъ трендомъ въ IT
Или какъ перестать писать "плиз" и начать писать "извольте"
Привѣтствую, уважаемые обитатели Хабра!
Сидѣлъ я намедни за терминаломъ, читалъ коммиты, и вдругъ осѣнило меня: отчего это мы всѣ пишемъ "фиксы", "фичи" да "релизы", когда у насъ есть прекрасный русскій языкъ съ богатѣйшей исторіей? И рѣшилъ я возродить старую добрую традицію — писать по-русски, да не просто по-русски, а какъ писали наши прадѣды до революціи 1917 года.
Что же это за звѣрь такой — дореволюціонная орѳографія?
Для начала развѣю главный миѳъ: это не "языкъ Пушкина" и не "древнерусскій". Это вполнѣ себѣ обычный русскій языкъ, только съ болѣе сложными правилами правописанія, которыя отмѣнили большевики въ 1918 году "для упрощенія".
Основныя правила, которыя должен знать каждый уважающій себя разработчикъ:
Исправилъ досадный багъ въ обработкѣ данныхъ
- Передѣлалъ функцію парсинга
- Добавилъ провѣрку на нулевыя значенія
- Обновилъ тесты подъ новую логику
Или документацію:
## О методѣ getUserById()
Сей методъ служитъ для полученія пользователя по его идентификатору.
Возвращаетъ объектъ типа User или null, если пользователь не найденъ.
Какъ начать писать въ старомъ стилѣ?
Установите правильныя шрифты — нужны шрифты съ поддержкой ѣ, і, ѳ, ѵ
Настройте раскладку — есть готовыя рѣшенія для всѣхъ ОС
Изучите основныя правила — начните съ ъ и постепенно добавляйте остальное
Дисциплина ума — сложныя правила тренируютъ вниманіе къ деталямъ
Эстетика — старыя тексты выглядятъ солиднѣе
Заключеніе
Дореволюціонная орѳографія — это не просто "модный трендъ", это возможность вернуть красоту и глубину русскому языку въ IT. Вмѣсто безликихъ "окей" и "сабмитовъ" мы можемъ писать "извольте" и "представляю на разсмотрѣніе".
Начните съ малаго — поставьте ъ въ концѣ своего ника. Напишите одинъ коммитъ въ старомъ стилѣ. Создайте README съ ятями. И увидите — за вами потянутся другіе.
Ибо, какъ говорили наши предки: "Безъ корней дерево не стоитъ".
P.S. Если статья понравилась, могу написать туторіалъ по настройкѣ vim для работы съ дореволюціонной орѳографіей.
Целевая аудиторія: Системные администраторы (бородатые хранители серверовъ и блюстители традицій)
Хабы:
Системное администрированіе (ибо кто какъ не админы цѣнятъ традиціи)
IT-стандарты (старая орѳографія — тоже стандартъ, только забытый)
Ненормальное программированіе (писать съ ятями — это вамъ не Hello World)
История IT (а что, развѣ языкъ — не часть исторіи?)
Читальный залъ (для любителей изящной словесности)
Собрали подробный гайд для новичков о процессорах CPU и GPU: что под капотом, чем отличаются и для каких задач подходят. Каждый эффективен при выполнении предназначенных для них задач, однако специфика существенно отличается.
CPU (Central Processing Unit) — это центральный процессор, отвечающий за все функциональные задачи: управление операционной системой, операции с данными, регулирование доступами к ресурсам, общие вычисления и многие другие. CPU выполняет действия по строгому алгоритму и состоит из трех последовательных действий: получение команды от оперативной памяти (ОЗУ), перевод команды в машинный код, выполнение команды.
GPU (Graphics Processing Unit) — это графический процессор, который предназначен для выполнения ресурсоемких операций и задач без задействования центрального процессора. Существует два основных типа: интегрированный и дискретный. Обычно когда для текущих задач мощности обычного процессора не хватает, в дело вступает GPU, инструмент отлично справляется с обработкой Big Data, рендерингом и обучением AI-моделей.
Подробнее об архитектуре процессов и для чего CPU и GPU используются на практике читайте в базе знаний Облака Рег.ру.
Апгрейднули тарифы и добавили пояснение к каждому. Давайте знакомиться:
👉Тариф Dev. Подходит для тестирования функционала нашего Managed Kubernetes — 200 ₽/мес
Пример использования: небольшие пет-проекты
👉Тариф Base. Для кластеров со средней нагрузкой, где отказоустойчивость не критична — 2000 ₽/мес
Пример использования: корпоративные веб-сервисы или ML inference-сервисы
👉Тариф Custom. Для гибкой настройки — от 2520 ₽/мес
Пример использования: highload-платформы и BigData/ML пайплайны
Пара слов о тарифе Custom. В нем можно выбрать количество ядер, объем оперативы и диска, а также установку с одной мастер-нодой или с тремя для настройки отказоустойчивости.
SpaceWeb подключил Kubernetes к партнерской программе
Добавили Kubernetes к партнерской программе SpaceWeb для веб-мастеров. Теперь участникам будет начисляться 20% вознаграждения за каждого привлеченного пользователя, подключившего облачную услугу.
Сегодня партнерская программа SpaceWeb предлагает партнерам до 48% вознаграждения от стоимости хостинга за каждого вовлеченного клиента. Сейчас же программа расширена и для облачных услуг: Kubernetes, DBaaS, облачные бэкапы и балансировщик.
Всем участникам «партнерки» доступен моментальный вывод средств и заключение партнерства без бумажных носителей, а партнерский статус может получить любой желающий. Напомним, что партнерская программа SpaceWeb существует уже более 10 лет. Запартнериться можно здесь.
Уязвимость в протоколе REALITY XTLS/Xray-core: быстрый фикс уязвимости Aparecium
На прошлой неделе была обнаружена уязвимость в известном ПО для создания прокси соединений XTLS/Xray-core, а именно в протоколе REALITY, позволяющая выявлять работу этого протокола.
Для тех, кто не в курсе: REALITY — это уникальный протокол прокси, который позволяет маскировать прокси-трафик под легитимное посещение реальных сайтов (например, google.com или любого другого), при этом не требуя покупки домена и настройки TLS-сертификата на своем сервере.
Обнаружение уязвимости
В начале июня 2025 года исследователь под ником ban6cat6 опубликовал утилиту под названием Aparecium. Ее цель — находить серверы, использующие протоколы вроде REALITY.
В чем была суть уязвимости? Утилита обнаружила, что серверы на базе OpenSSL после завершения основного TLS-рукопожатия (handshake) обычно отправляют клиенту один или два служебных сообщения NewSessionTicket. Это стандартное поведение, позволяющее возобновлять сессии. Протокол REALITY в своей реализации это поведение не имитировал.
Это тонкое различие позволяло Aparecium с высокой точностью отличать настоящий веб-сервер от сервера с REALITY, просто проанализировав последовательность TLS-сообщений.
Быстрый фикс
Информация об уязвимости была опубликована в виде issue #4778 в репозитории Xray-core. Разработчики, в частности RPRX, отреагировали практически молниеносно.
Вместо того чтобы добавить отправку фейковых NewSessionTicket, они пошли по более правильному пути. Уже через несколько дней в версии Xray-core v25.6.8 появилось «предварительное» решение:
Теперь при первом запуске сервер REALITY, используя отпечаток клиента Chrome, сам подключается к целевому сайту (dest), «подсматривает», какие именно post-handshake сообщения и какой длины тот отправляет, кэширует эту информацию и в дальнейшем идеально имитирует именно это поведение.
На это «зондирование» уходит около 30 секунд при первом старте сервера, но оно по большей части решает основную проблему. Вместе с этим был исправлен и неприятный баг с производительностью из-за неработающего аппаратного ускорения AES-NI.
Глубокий анализ
Казалось бы, проблема решена, однако разработчики начали копать глубже, и вот что выяснилось:
Загадка «лишнего пакета» от bilibili.com Один из разработчиков заметил, что при подключении к некоторым сайтам (например, bilibili.com) с отпечатком Chrome, сервер возвращает не только NewSessionTicket, но и еще один небольшой пакет. После анализа выяснилось, что это не TLS-сообщение, а кадр настроек HTTP/2 (settings frame). Это значит, что для идеальной маскировки нужно имитировать не только TLS-уровень, но и поведение прикладного протокола (HTTP/2), который был согласован в ходе рукопожатия.
Проблема разных отпечатков (fingerprints) Выяснилось, что один и тот же сайт может по-разному отвечать на ClientHello от разных клиентов. Например, на запрос с отпечатком Chrome он может отправить два NewSessionTicket и settings фрейм, а на запрос от Go-клиента — только один NewSessionTicket. Похоже, что статического зондирования недостаточно.
Идея «живого обучения» В ходе мозгового штурма родилась идея для долгосрочного решения, которое было оформлено в issue #4788. Суть в том, чтобы сервер REALITY, получив ClientHello от нового клиента, не просто использовал стандартный отпечаток для зондирования, а копировал отпечаток реального клиента и именно с ним обращался к целевому сайту. Это позволит динамически адаптироваться под любого клиента и достичь практически идеальной мимикрии.
Разработчики рекомендуют всем обновить сервера и клиенты, использующие Xray-core, до версии 25.6.8.
Вышла нейросеть для расшифровки скриншотов — Snippai. Работает Gemini или GPT-4. Умеет перегонять формулы со скринов в LaTeX-формат, решать задачи и примеры, генерировать код по скринам или тексту, преобразовывать таблицы в Markdown, извлекать, переводить и пояснять текст. Доступна на macOS, Windows и Linux.
Как уведомить Роскомнадзор об обработке персональных данных?
На Хабр вышла наша статья, прочтение которой поможет корректно подать уведомление в Роскомнадзор о намерении обрабатывать персональные данные. Особенно она будет полезна для ИТ-компаний и стартапов.
Выбрать облачный сервис с помощью ИИ не отходя от кассы
Когда заходите на наш сайт, можете увидеть симпатичный розовый шарик, который предлагает помочь в создании готовой инфры.
Через него можно ввести запрос и получить от нейронки варианты сборки, которые мы можем предложить для бизнеса и личного пользования (кстати, такая фича есть только у нашего облака 😏).
Пример: Подобрать отказоустойчивую облачную инфраструктуру для SaaS-платформы с 50 000 активных пользователей в сутки.
ИИ-помощник сразу даст варианты сборки и ее конечную стоимость. Нужен кастом? Тогда можете написать сюда.
Лайфхак: Советуем проверить актуальные решения, даже если вы уже юзаете наши сервисы в облаке — вдруг появилось что-то покруче?
BSONError: Invalid UTF-8 string in BSON document
BSONError: bad embedded document length in bson
Документы в базе нормальные. Ошибки появлялись только при включённом Xray с WARP (через встроенный WireGuard). Когда VPN отключён — всё читается корректно.
Поначалу думал, что что-то с кодировкой или драйвером, но оказалось, что проблема в том, что Mongo работала через Cloudflare WARP.
Когда запросов было мало — срабатывало нормально.
Когда запускался алгоритм и начинались частые обращения к базе — Mongo валился с ошибками BSON.
Причина — искажение бинарного трафика при передаче через WARP.
Mongo использует бинарный протокол BSON, и даже один сбитый байт ломает парсинг.
Пофиксил так:
добавил в routing.rules Xray правило, чтобы трафик к Mongo шёл мимо WARP:
Знакомы ли с этим сообщением об ошибке? И знаете ли, как ее исправить?
Этот запрет на отправку ICMP-пакетов внутри контейнера можно получить при выполнении, например, такой задачи.
Задача: Организовать k8s-кластеры в ручном режиме с помощью kubeadm и kubectl на базе cri-o (1.28+) и использовать Calico как CNI-плагин.
Кластер доступен для взаимодействия через kubectl, команда возвращает корректную информацию о кластере. Есть возможность сделать ping 8.8.8.8 с образом busybox.
Если вы опытный DevOps и знаете, как решается эта «детская проблема» при работе с оркестратором, регистрируйтесь на спринт-оффер для девопсов. Сможете буквально играючи получить новую работу за 3 дня.
Если кто-то не знал, у нас есть свой YouTube-канал (и он даже не пустой). Раньше там выходили подкасты «Релиз в пятницу» и «Быть». Потом мы сделали паузу и сосредоточились на продукте.
Теперь возвращаемся с новыми видео — про облака, айти-сферу и даже с юмористическим контЭнтом.
На канале вас уже ждут два свежих видео:
1️⃣ Про наш любимый Kubernetes. Наши партнеры показали, как собрать и задеплоить микросервисное приложение в Таймвеб Клауд.
2️⃣ Про стартапы. Продакт-менеджер Артем Гаврилов и лид разработки Михаил Шпаков рассказали о профите облачных решений для бизнеса.
👉 А еще постим на канал забавные шортсы (да, таким мы тоже балуемся).
В Облаке Рег.ру появились облегченные образы ispmanager
На облачной платформе Рег.ру оптимизируем и прокачиваем работу ispmanager. Свежий апдейт — добавили облегченные образы. Теперь можно заказать панель управления в базовой конфигурации сервера: 1 vCPU, 1 ГБ RAM и 10 ГБ диска. Обновление доступно на ОС: AlmaLinux, Debian и Ubuntu.
Образ ispmanager Mini идет с ограниченным набором ПО и подойдет для быстрого решения несложных задач.
Напомним, что можно заказать сервер с уже установленным ispmanager, оплата происходит по часам, а не месяцам. Лицензия панели управления также оплачивается на почасовой основе.
Как обнаружить anycast-адреса сервисов при помощи неравенства треугольника
Технически, по одному и тому же IP-адресу может отвечать всякий интернет-узел, который находится на (двунаправленном) техническом пути следования пакетов. Чтобы такое работало без запинки для многих IP-источников - требуется согласовать пути следования пакетов на уровне IP-сети, то есть, средствами BGP. Штатный способ использования этой особенности называется Anycast. Настроить и поддерживать сложно, но, при грамотном подходе, метод отлично работает и достаточно широко используется в глобальной Сети. При Anycast один и тот же IP-адрес, наблюдаемый из разных точек Интернета, адресует разные физические узлы. Эти физические узлы могут быть географически распределены - ближе к пользователям. Обычно, так и делается, потому что это одно из основных практических преимуществ Anycast, но далеко не единственное преимущество - anycast-адреса могут быть разведены средствами BGP и коммутации сетевых сегментов из соображений устойчивости к DDoS-атакам, распределения прочей нагрузки, повышения надёжности и т.д. Примеры: 1.1.1.1, 8.8.8.8, многие корневые DNS-серверы.
Как подручными средствами проверить, что какой-то интернет-сервис стоит за anycast-адресами? Для этого нужно использовать неравенство треугольника. Тестируемый узел должен отвечать в рамках того или иного протокола, который позволяет измерить сетевое время доставки пакетов.
Методика. Пусть мы обнаружили IP-адрес сервиса (обычно, из DNS) и хотим его проверить. Пусть узел под этим адресом отвечает по ICMP - ping. Возьмём два опорных узла-источника, расположенных в совсем разных местах Интернета: например, узел в Амстердаме (обозначим его А) и узел во Владивостоке (соответственно - В). Тестируемый узел назовём Т. Принцип: если среднее время доставки ping между А, В (А <--> В) существенно превышает сумму ping для А --> Т и В --> Т, то сервис, работающий на узле T, скорее всего, использует Anycast. Поэтому измеряем время силами ping. Это и есть нарушение неравенства треугольника: если сумма расстояний (в смысле ICMP) от каждой из точек тестирования к тестируемому узлу меньше, чем расстояние между этими точками, то тестируемый узел - это, скорее всего, как минимум два узла, использующих один и тот же IP-адрес, то есть, это anycast-адрес.
Конечно, тут всегда есть место для погрешности, однако в подавляющем большинстве случаев Anycast так виден - иначе в нём не было бы смысла. Можно взять несколько опорных точек, а не две, тогда точность возрастёт.