Search
Write a publication
Pull to refresh
0
0
Дмитрий @ex_ineris

QA Engineer

Send message

VLESS+Reality и Multi-hop: Архитектура VPN-цепочки для нового поколения блокировок

Level of difficultyMedium
Reading time10 min
Views55K

Привет, Хабр!

Помните то блаженное время, когда для доступа к любому ресурсу хватало простого WireGuard до сервера в Германии? Я тоже помню. Но эта эпоха закончилась. Недавно я заметил, что мой верный VPN стал лагать, рвать соединение и вести себя так, будто его кто‑то целенаправленно «душит». Это был тот самый момент, когда я понял: игра изменилась. Системы глубокого анализа трафика (DPI) стали умнее, и мой трафик для них был как на ладони.

Это стало моим личным вызовом. Я отправился в путешествие по миру современных средств обхода блокировок, наступил на множество граблей (чего только стоит осознание, что «двойное шифрование» — это миф!), но в итоге нашел свое сокровище — рабочую и относительно устойчивую схему на базе VLESS+Reality и Multi‑hop.

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

Принять вызов

Скрипт-реаниматор: автоматическое восстановление упавших SSH-сессий

Level of difficultyEasy
Reading time3 min
Views5.4K

Привет, Хабр! Представим ситуацию: вы настраиваете сервер, работаете с критически важными процессами или изучаете логи - и внезапно SSH-соединение обрывается. Все не сохранённые изменения улетучиваются, прогресс откатывается, а вам приходится переподключаться и начинать всё заново.

В данной статье представлен скрипт-реаниматор для SSH, который:

Восстанавливает соединение при любых обрывах
Сохраняет рабочую сессию и историю команд
Поддерживает tmux/screen для полного сохранения контекста
Может отправлять уведомления о проблемах в Telegram
Решение представлено для Bash и PowerShell

Читать далее

Пишем простой драйвер Linux для устройства, ничего не зная о драйверах и о USB

Level of difficultyEasy
Reading time12 min
Views13K

Пару месяцев назад я купил Nanoleaf Pegboard Desk Dock — последнее слово в технологиях USB-хабов с RGB-светодиодами и крючками для устройств. К сожалению, это чудо инженерной мысли поддерживает только гейминговые операционные системы — Windows и macOS, поэтому возникла необходимость в драйвере для Linux.

В своих постах я уже настраивал Windows VM с пробросом USB и пытался выполнить реверс-инжиниринг официальных драйверов. При этом я задумался, а нельзя ли написать производителю и попросить у него спецификации или документацию его протокола. К моему удивлению, техподдержка Nanoleaf ответила мне всего через четыре часа, предоставив полное описание протокола, используемого Desk Dock, а также полосами RGB-светодиодов. Документация по большей мере подтвердила то, что я обнаружил самостоятельно, но также я нашёл в ней пару других мелких подробностей (например, управление питанием и яркостью), которые были мне неизвестны.

Сегодня мы попробуем написать драйвер на основании протокола (который я изучил реверс-инжинирингом), параллельно сверяясь с официальной документацией. Однако здесь есть одна небольшая проблема: раньше я ни разу не писал драйверов для устройств под Linux, а с USB-устройствами взаимодействовал только как пользователь.

Читать далее

Большинству людей плевать на качество софта

Level of difficultyEasy
Reading time6 min
Views36K

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

Но у этой деградации есть естественная причина, и она очень простая. Дело в том, что большинству людей по большому счёту наплевать.

Читать далее

6 устаревших команд Linux и инструменты, которые пришли им на замену

Reading time7 min
Views46K

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

"Все новое — лучше, чем старое" — девиз, который не всегда применим для утилит в Linux. Но все же исключения есть.

В статье под катом разработчик Хосе Висенте Нуньес* рассказывает о нескольких устаревших инструментах, которые вы, возможно, все еще используете. А также о том, чем их можно заменить. Автор объясняет, почему вам следует переключиться на эти улучшенные альтернативы, которые обеспечивают ту же — а в некоторых случаях даже большую — функциональность. Список составлен в произвольном порядке.

*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис.

Читать далее

Добавляем устройства в Netbox с помощью скрипта на Python

Level of difficultyEasy
Reading time13 min
Views2.7K

Всем привет. Я сетевой инженер, работаю в интернет провайдере. Примерно год назад начал внедрение Netbox для документирования сети. Здесь я расскажу как я добавил коммутаторы доступа скриптом, через API Netbox. Скрипт добавления устройств в Netbox через API является универсальным и подойдёт всем. А так же расскажу, как я добывал первичные данные о коммутаторах, здесь уже мои скрипты помогут не всем, т.к. топология сети и настройки могут сильно отличаться, и методов сбора данных может быть не один десяток.

Читать далее

Изучение Python за 2 недели через боль и дедлайн: личная история

Level of difficultyEasy
Reading time9 min
Views22K

Изучил Python за короткий срок. Личная история. Взяли без знаний, но я смог до всяческих дедлайнов, пройдя огромное количество стресса, изучить язык программирования и даже этим спасти проект.

Читать далее

Хватит «внедрять таск-трекеры». Просто попробуйте этот вариант для ленивых

Level of difficultyEasy
Reading time3 min
Views27K

Таск-трекер без бизнес-процессов ― деньги на ветер! Самая частая ошибка ― пытаться заводить задачи, не продумав сам процесс. В этом тексте показываем 6 универсальных процессов, которые можно внедрить буквально за 10 минут: от онбординга до работы с подрядчиками.

Читать далее

Embedded Linux для начинающих (Часть первая)

Level of difficultyEasy
Reading time10 min
Views15K

Однажды по работе мне прилетела задача по сборке и запуску Linux на одноплатном ПК. Тогда я, будучи разработчиком ПО для микроконтроллеров, встал в небольшой ступор — задачка явно не решалась установкой IDE и нажатием в ней кнопки «Собрать проект». Гугл помог узнать о том, что существует некий Buildroot. В материалах по теме всё выглядело довольно просто: скачай, настрой, дерни пару команд, загрузи результат на одноплатник — и можно запускать! Получается, процесс не многим сложнее установки дистрибутива Linux или Windows на обычный ПК? Конечно же, нет. Ведь если у тебя в руках кастомный одноплатник неизвестного китайского бренда, а не BeagleBone или Raspberry Pi, то зарыться в Buildroot придётся с головой...

Читать далее

Гайд на виртуальный частный сервер (VPS) с нуля

Level of difficultyEasy
Reading time15 min
Views4.9K

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

Коротко, о чём гайд:

- Сервер Linux Debian 11
- Виртуальная частная сеть Wireguard
- Мониторинг Grafana
- Спасательный круг: backups & snapshots
- Базовая защита от взлома перебором fali2ban
- Фильтр нежелательного контента, приоритезация трафика QoS

Читать далее

Самый полный Роадмеп бэкенд-разработчика на Python с нуля 2025

Level of difficultyEasy
Reading time40 min
Views34K

Этот роадмэп мы начали собирать ещё в прошлом году вместе с нашей командой мидл-бэкендеров. Хотелось системно оформить весь стек технологий, с которым реально работает современный backend-разработчик на Python — от базовых тем вроде HTTP и SQL до CI/CD, микросервисной архитектуры, Kubernetes, облаков, безопасности и брокеров сообщений.

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

Читать далее

Архитектура сетей Zigbee

Level of difficultyMedium
Reading time9 min
Views8.6K

Технологии беспроводной связи традиционно ассоциируются с сетями WiFi и мобильной связью. Однако, в последнее время все большую популярность в промышленных сетях и Интернет вещей (IoT) набирает беспроводной протокол ZigBee. В этой статье мы поговорим о построении сетей на основе протокола ZigBee.

Читать далее

Я сделал тачпанель управления умным домом чтобы вам тоже пришлось

Level of difficultyMedium
Reading time26 min
Views21K

Немного железа, немного софта, много времени, и у вас появится легендарная панель управления с интерактивным планом дома.

Вот как это сделать

Автоматизация мониторинга: как заставить скрипты работать вместо вас

Level of difficultyEasy
Reading time5 min
Views7.5K

Привет, Хабр! Ручной мониторинг серверов и логов - это как разжигать костёр вместо использования микроволновки. Если вы вручную проверяете логи, доступность сервисов или реагируете на алерты посредством почты - попробуйте перейти на автоматизацию.

Почему скрипты?

Гибкость: кастомизация проверки под свои нужды
Простота: запуск в cron или systemd - и можно с чистой душой забыть о проблеме
Самовосстановление: скрипт может не только найти проблему, но и исправить её (рестарт службы, чистка ненужных файлов, логов)

Автоматизированный мониторинг - это не про сложные системы в стиле Zabbix или Prometheus (они очень хороши для масштабируемых решений, данного факта не отрицаю). Это простые скрипты, которые делают ровно то, что вам нужно. Нет лишних зависимостей, сложных конфигов или чего-то лишнего.

Читать далее

Новое поколение Open Source. На пути к «Основанию» Айзека Азимова

Level of difficultyMedium
Reading time29 min
Views4.2K

В далёком 1951 году был опубликован роман Айзека Азимова «Основание». Он рассказывает о событиях ещё более далёкого 19 997 года: человечество освоило межзвёздные перелёты, превратилось в Галактическую Цивилизацию, изобрело научные методы психоистории для точного предсказания будущего и в итоге пришло к осознанию необходимости создания Галактической Энциклопедии — базы знаний, накопленных человечеством за многие тысячи лет своего существования. Цель энциклопедии — быть не просто справочником по типу Википедии, а практическим руководством, которое позволяет даже изолированной человеческой популяции пройти путь развития от каменного века до межзвёздных перелётов всего за несколько столетий.

По мнению Айзека Азимова, подобная глобальная база знаний является необходимым условием для фактического бессмертия человеческой цивилизации. В этом я с ним полностью согласен. Но я так и не дочитал книгу до конца, потому что довольно быстро основное внимание автора перешло от интересной научно-фантастической идеи к довольно банальным политическим интригам. Меня в первую очередь интересует техническая сторона «Основания» — как может быть устроена информационная система Галактической Энциклопедии сегодня? Исходя из возможностей современных технологий, за 17 972 года до суда над Гэри Селдоном, изгнания Энциклопедистов с Трантора на Терминус и старта полномасштабной работы над глобальной базой знаний человечества во вселенной Айзека Азимова.

Вступить в Основание

Мифический «стеклянный потолок» в карьере QA

Level of difficultyEasy
Reading time8 min
Views2.4K

Привет, Хабр! Меня зовут Алексей Гарцевич, я эксперт в Центре практик направления QA в МТС Web Services. Часто бываю на профессиональных конференциях и одна из популярных тем там — «стеклянный потолок» в карьере. Обычно проблема выглядит так: ты доходишь до определенного уровня и перестаешь понимать, куда двигаться дальше. Возникают сомнения: «я не могу стать руководителем», «я постоянно варюсь в однотипных задачах», «мне некуда развиваться». Это состояние создает ощущение, будто ты столкнулся с невидимой преградой. Я сам сталкивался с такой проблемой и потратил много времени и сил, чтобы ее понять и преодолеть.

Этот текст — попытка сделать материал, которого мне не хватало в тот сложный момент. На примере своего направления QA расскажу, что «стеклянного потолка» не существует. В текущем мире — с быстрым обменом информацией, доступом к рынку и сообществам — возможность развиваться есть всегда. В такой среде сама идея «потолка» становится скорее внутренней установкой, чем внешним ограничением.

Читать далее

Lisuan G100: первый игровой графический чип из Китая. Возможности новинки

Reading time5 min
Views6.3K

Китай анонсировал Lisuan G100 — свой первый графический процессор, созданный по 6-нм техпроцессу. Этот проект — часть стратегии страны по развитию автономности электронной отрасли вне зависимости от американских компаний. Сегодня разберем, что представляет собой G100, как он показывает себя в тестах. Ну и узнаем, почему его сравнивают с Nvidia GTX 660 Ti и AMD Radeon HD 7950 — видеокартами 2012 года. Поехали!

Читать далее

Мне нужен хороший параллельный компьютер

Level of difficultyEasy
Reading time22 min
Views13K

Видеокарта в вашем компьютере мощнее процессора в 10, а то и в 100 раз — это зависит от конкретной задачи. В задачах машинного обучения и рендеринга графики в реальном времени мы с удовольствием пользуемся этой мощью видеокарт, так как решать эти задачи на процессорах нецелесообразно. Почему мы не пользуемся этими возможностями для вычислений других видов? Что не даёт видеокартам превратиться в вычислительные устройства более общего назначения?

Я считаю, что существуют два основных фактора, которые этому мешают. Первый — ограниченная модель выполнения операций, из-за которой некоторые задачи либо сложно, либо невозможно решать эффективно. GPU замечательно справляются с обработкой больших блоков данных предсказуемой формы, например — с умножением плотных матриц, но испытывают трудности с динамическими нагрузками. Второй фактор — это наши несовершенные языки программирования и инструменты. Программировать параллельные компьютеры гораздо сложнее, чем обычные.

Современный видеоускоритель — это ещё и невероятно сложная система, которая постоянно становится всё сложнее. Новые возможности, вроде сеточных шейдеров (mesh shader) и графов задач (Work Graphs) хорошо описывает фраза «два шага вперёд, шаг назад». С каждой новой возможностью связана некая базовая задача, поддержка решения которой реализована не полностью.

Я уверен в возможности существования более простых и мощных параллельных компьютеров. В исторических материалах можно найти сведения, подтверждающие эту уверенность. Будь наша вселенная немного иной — сейчас у нас были бы такие компьютеры. Мы бы проектировали алгоритмы и писали бы программы, которые хорошо на них работают, решая с помощью таких компьютеров широкое множество разнообразных задач.

Читать далее

IT-расклад для стажеров: пять направлений для твоей будущей карьеры

Level of difficultyEasy
Reading time7 min
Views9.4K

Привет, Хабр! Это команда стажировок Авито и мы подготовили простой тест для стажеров, которые не знают, как выбрать направление в IT. 

На стажировке в Авито начинающие инженеры могут за полгода дорасти до уровня junior в QA или Frontend-, Backend-, Android- и iOS-разработке. С первых дней на программе ты сможешь работать над реальными задачами рука об руку с более опытными коллегами. А что именно нужно будет делать и как подобрать наиболее подходящее направление развития — узнаешь из этой статьи. 

Читать далее

Планирование в Python

Reading time7 min
Views5.2K
Планирование задач — неотъемлемая часть работы любых веб-приложений, в особенности таких, в которых требуется совершать периодические или отложенные действия. В Python предусмотрено множество способов планирования задач, и у каждого есть свои сильные и слабые стороны. В этой статье будут рассмотрены некоторые наиболее популярные способы планирования задач в приложении, написанном на основе FastAPI.

sched – планировщик событий из Python


Модуль sched входит в состав стандартной библиотеки Python и обеспечивает простой механизм для планирования событий в программе. Этот модуль может работать в приложении на FastAPI, но пользоваться им не рекомендуется, так как он слишком прост, и функциональность его ограничена.
Читать дальше →
1
23 ...

Information

Rating
8,283-rd
Location
Днепр, Днепропетровская обл., Украина
Date of birth
Registered
Activity