Обновить
256K+

Настройка Linux *

Вечный кайф

120,84
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Точечное внедрение Linux на производстве: опыт одного начальника склада

Время на прочтение12 мин
Охват и читатели23K

Представьте картину: вы руководитель склада на пищевом производстве, вам нужно распечатать и раздать сотрудникам задания, а рабочий МФУ в очередной раз уходит в «циклическую кому». Добавьте в уравнение ещё одну переменную: в компании попросту нет не то что ИТ‑отдела — эникея, которому можно было бы поручить дебаг. И эта вакханалия происходит изо дня в день у всего нашего офиса.

Читать далее

Новости

Qwen3.8. MTP и тензорный параллелизм в llama.cpp: 75 ток/сек на двух RTX 3090

Время на прочтение7 мин
Охват и читатели68K

Плотная 27-миллиардная модель на двух RTX 3090 в llama.cpp из коробки даёт 32 токена в секунду. Интуитивно понятно, что это не предел: две карты по 24 ГБ и 936 ГБ/с каждая не должны выдавать столько, сколько выдаёт одна. Значит, где-то узкое горлышко — и надо разобраться, что и где подкрутить.

Горлышек оказалось несколько, и все снимаются флагами запуска: те же веса — 75 токенов в секунду. Под катом каждый флаг описан по одной схеме: зачем, что писать, что даёт в цифрах, где ломается и с какой строкой в логе. В конце — готовый docker run, три проверки после каждой смены флага и список того, что не сработало. Текст можно отдать целиком агенту с доступом к серверу — это инструкция, а не история.

Читать далее

От HAProxy до VLESS+Reality: все грабли одного MTProto-прокси

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели10K

От HAProxy до VLESS+Reality: все грабли одного MTProto-прокси

Если вы когда-нибудь поднимали свой MTProto-прокси для Telegram и он у вас "работает, но как-то не очень" — эта статья для вас. Я прошёл путь от "просто добавить relay" до "переписать всю цепочку на VLESS+Reality с нуля", и по дороге собрал приличную коллекцию граблей. Расскажу всё по порядку, чтобы вам не пришлось наступать на те же.

Исходная ситуация

Была задача простая на первый взгляд: поднять MTProto проксю для Telegram на сервере в РФ. Причина стандартная — хочется, чтобы телега работала

Взял mtg (ghcr.io/9seconds/mtg:2 — отличная реализация MTProto-прокси с поддержкой fake-TLS), поднял на сервере — и оно не работает. Точнее, работает, но еле-еле: то подключается, то нет, на мобильном интернете почти всегда фейл.

Первая мысль, которая приходит в голову почти всем в такой ситуации: "провайдер блокирует адреса Telegram". И это отчасти правда — но, как выяснилось, правда не вся.

Первая попытка: спрятать Telegram за релеем

Логика была такая: раз провайдер режет соединения именно к IP Telegram, то уберу эти IP из виду. Арендую второй сервер за границей, туда ставлю настоящий mtg, а на RU-сервере — просто TCP-релей (HAProxy или голый iptables DNAT), который прозрачно перекидывает байты дальше.

Клиент → RU-сервер (HAProxy, чистый TCP passthrough) → Зарубежный сервер (mtg) → Telegram

Казалось бы, логично: сервер в РФ теперь физически ничего не знает про Telegram, он просто гоняет байты во внешний IP. Провайдер не должен видеть ничего подозрительного.

Читать далее

Linux Capabilities: новый root, объяснения и примеры работы

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели8.4K

Изначально с Capabilities я лично столкнулся в своем проекте ServeHub-2, когда настраивал контейнеры в docker-compose. Если быть более конкретным, я настраивал WG-easy с использованием AmneziaWG, которому нужны были привилегии, связанные с загрузкой модулей ядра и настройками интерфейсов. До этого я слышал о Capabilities, но не знал что это такое, поэтому решил подробнее в этом разобраться.

Сначала разберу общее понятие, что вообще такое Capabilities (далее буду кратко писать CAP), потом постепенно перейду к примерам.

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

Читать далее

Работа с HTTP-заголовками запроса и ответа

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели8K

Заголовки играют важную роль в работе веб-приложений. Они уточняют свойства запроса или ответа, управляют кэшированием, отвечают за безопасность и помогают отслеживать проблемы. В этой статье посмотрим, как можно управлять заголовками запросов и ответов в сервере Angie.

Читать далее

Робот оглох и молчит об этом: как мы учили гуманоида замечать, что микрофон «отвалился»

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели6.6K

Слышит ли вас робот прямо сейчас? А если микрофон «отвалился» — как быстро вы об этом узнаете?

Штатный микрофон гуманоида Walker Tienkung предполагает, что оператор стоит в полутора метрах перед работающей машиной ростом 173 см — неудобно и небезопасно. Мы взяли недорогую беспроводную петличку и думали, что задача решается за вечер: воткнул USB, написал pip install, готово. Реальность: выведенный наружу порт нашёлся только на другом бортовом компьютере, звук пришлось гнать по сети, а приёмник в случае любой неисправности отвечает одинаково — молча шлёт нули. Сел аккумулятор, выключили передатчик, выдернули донгл — для софта всё это неотличимо.

Рассказываем, как мы научили робота самому замечать, что он оглох, и говорить об этом голосом: диагностика по тишине, пять состояний аудиотракта, подсказки оператору, которые пришлось переписывать, потому что «технически верно» и «понятно человеку» — разные вещи. И как починили переподключение за десять секунд вместо двух из-за системного сервиса.

Читать далее

tmux у сисадмина — разбивает терминал, реанимирует сессии, уносит хаос

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели13K

Каждый, кто работает в терминале, держит открытыми сразу несколько вкладок: в первой смотрит логи, во второй следит за списком запущенных процессов через htop, в третьей работает с Git, в четвертой запускает миграции базы данных. При переключении между вкладками легко запутаться, закрыть нужную, а при обрыве связи — потерять запущенные процессы и сессии. 

Привет! Я Саломея, продуктовый технический писатель в Selectel. В этой статье поделюсь своим опытом, как с помощью tmux упорядочить этот хаос и сделать работу удобнее. Разделим окно терминала на панели, запустим сессию, которая не прервется при закрытии окна, автоматизируем настройку рабочего пространства. Посмотрим, как выполнять команду сразу на нескольких серверах.

Читать далее →

Простая декларативная установка NixOs, часть 1 — Настройка конфигурации

Уровень сложностиПростой
Время на прочтение15 мин
Охват и читатели7.8K

Эта статья является прямым продолжением этой статьи, посвящённой декларативной разметке диска через disko.

Что мы будем делать сегодня?

Мы с вами составим минимально-рабочий конфиг для нашей системы. Под "минимально-рабочим" я имею в виду: без графического окружения(XFCE, GNOME и прочее), углублённых настроек(установка zsh, например). Мы настроим: загрузчик, сеть, пользователя, звук, локализацию, подключим наш файл disko-config.nix.

Читать далее

Создаём простейший киоск при помощи Yocto

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели13K

Я уже рассказывал, как можно собрать минимальный Linux под различные архитектуры. Также я описывал свой эмулятор известной игры «Ну, Погоди!». В этой статье я хочу рассказать, как создать дистрибутив Linux с моим эмулятором, который будет работать в режиме киоска.

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

Читать далее

Omarchy — Arch Linux с красивыми обоями привлёк 10 миллионов долларов и вызвал споры в сообществе

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели7.4K

В твиттере уже несколько дней не утихают споры по поводу Omarchy — Linux дистрибутива от создателя фреймворка Ruby on Rails. Дистрибутив недавно получил крупное обновление 4.0 Quattro, но не оно стало причиной дискуссий. Создатель основал некоммерческую организацию Omacom Foundation и привлёк 8 миллионов долларов (уже 10) на развитие и поддержку дистрибутива. Проект уже объявил[1][2], что будет спонсировать разработку двух проектов, на которых основан — Hyprland и quickshell чтобы их создатели могли свободно продолжать работу над своими проектами, не думая об источнике финансирования.

Это вызвало споры в сообществе о полезности дистрибутива:

Энтузиасты считают, что дистрибутив создаёт импульс, который приведёт в Linux новых пользователей

Скептики указывают на отсутствие фундаментальной ценности в дистрибутиве (Arch Linux с предустановленными настройками и приложениями) и наличие уязвимостей.

Так кто же из них прав? Сначала приведу короткую информацию о дистрибутиве, аргументы обеих сторон, которые видел, и в конце приведу своё мнение по поводу полезности дистрибутива для сообщества. Сразу скажу - я не пробовал Omarchy, но настольным Linux пользуюсь больше 10 лет и вопросы, поднимаемые в этой дискуссии, не специфичны для дистрибутива, просто он спровоцировал новый виток их обсуждения.

Читать далее

Декларативная разметка дисков в NixOS с помощью Disko: от конфига до готовой ФС

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели6.5K

Каждый, кто хоть раз устанавливал Linux вручную, знает этот ритуал: загрузиться с Live‑образа, запустить fdisk или parted, создать таблицу разделов, отформатировать их в btrfs/ext4, создать субтома, а затем вручную примонтировать всё это в /mnt.

Конечно, такой подход можно использовать и при установке NixOs. Но вопрос — зачем?

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

В этой статье мы этим вопросом и займёмся, а поможет нам в этом известная утилита disko. Мы напишем чистый декларативный конфигурационный файл в ДВУХ вариантах:

Читать далее

Вечная загрузка: как я запретил Яндекс Браузеру закрываться молча

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели6.5K

Рука промахивается на Ctrl+Shift+W — и окно с полусотней вкладок закрывается без вопросов. Единственное, что заставляет Яндекс Браузер переспросить, — активная загрузка. Так что теперь systemd кормит мой браузер загрузкой, которая не кончается никогда: 0,4 МБ памяти, 64 КБ на диске, один байт по loopback раз в пять минут. Как я до этого дошёл, почему не спасают настройки и расширения и как тесты чуть не убили то, что защищали, — под катом.

Читать далее

DevToolbox Cheats: шпаргалки всегда под рукой

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели7.5K

Привет, Хабр! В работе почти каждого, кто плотно сидит в Linux, есть один недостаток: одни и те же команды забываются с завидной регулярностью. Я, например, иногда по десять раз лезу в историю, чтобы уточнить - «так как в rsync директорию исключить, но структуру оставить?»

Можно, конечно, вести свои заметки. Можно - дрессировать Ctrl+R. А можно установить небольшую утилиту, которая будет жить в трее и выдавать нужную подсказку за полсекунды. Именно о такой утилите сегодня и расскажу - DevToolbox Cheats.

Читать далее

Ближайшие события

Как добавить свой модуль nginx в контрольной панели ispmanager

Уровень сложностиСложный
Время на прочтение12 мин
Охват и читатели6.2K

Многие знают и используют контрольную панель ispmanager для управления сервером, но, возможно, не всем известно, что функционал работы панели можно расширить самостоятельно и адаптировать для выполнения своих специфических задач.

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

Предлагается доработать ispmanager, а именно:

Читать далее

Мониторинг электричества в доме с помощью OpenWrt + Modbus TCP

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели12K

Уже второй сезон я строю дом. На этапе подведения коммуникаций появилась идея сразу проложить оптику от провайдера, чтобы потом не курочить стены. Сказано — сделано. Подключив пустую коробку к Интернету, я сразу задумался о том, что это отличный испытательный полигон для разных датчиков и подобного оборудования умного дома. Пока там никто не живёт, отвал или глюки датчиков никаких неудобств не вызовет, а скорее даст полезную информацию и опыт внедрения. Опять же, пока стены не отделаны, никаких проблем "быстро и грязно" протянуть кабели для Ethernet и RS-485 по месту в целях тестирования оборудования.

Читать далее

Как диагностировать тормоза Linux‑сервера без перезагрузки вслепую

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели9.5K

Сервер отвечает с задержкой, сайт еле открывается, а причина нагрузки неочевидна. В статье разберём пошаговую диагностику Linux‑сервера: как проверить CPU, память и диск с помощью top, free, vmstat, iostat и iotop, найти процесс‑виновник и понять, куда копать дальше.

Читать далее

Работа с переменными в Angie

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели6.7K

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

Читать далее

Tinted — то, из‑за чего ты захочешь использовать терминал

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели6.1K

Всем привет! Меня зовут Илья, я frontend‑разработчик.
Но сегодня хочу поговорить не о JavaScript, а о терминале.

Несмотря на то, что я уже много лет работаю разработчиком, активно пользоваться терминалом я начал всего около года назад. До этого терминал для меня был просто местом, где запускается сборка проекта, немного Git и иногда еще пара команд. Думаю, у многих так же.

Обычно мысли о терминале вызывают ступор. Кажется, что это что‑то непонятное, черно‑зеленое и предназначенное только для «настоящих программистов», и на практике большинство ограничивается npm run dev, git status и на этом все.

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

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

Читать далее

WireGuard не хранит AllowedIPs у пира

Уровень сложностиСложный
Время на прочтение14 мин
Охват и читатели11K

Добавляете нового пира на сервер WireGuard — и у соседнего в wg show вместо префикса появляется allowed ips: (none). Команда отработала успешно, dmesg пуст, wg-quick промолчал, туннель up, handshake свежий. А если бы у нового пира маска была /32 вместо /24, ничего бы не произошло.

Это ловят снова и снова: в трекере VyOS с 2020-го (закрыто как Invalid — «так делает ядро»), в OPNsense в 2025-м, на форуме OpenWrt каждый раз, когда к серверу добавляют второй телефон.

Разбор по drivers/net/wireguard/ мейнлайна, тег v6.12: почему AllowedIPs вообще не хранится у пира, что делает list_move_tail в allowedips.c:201, почему симптом «пропало у одних пиров, но не у всех» объясняется одной строкой parent->cidr == cidr, и откуда берётся ping: sendmsg: Required key not available, если вы его когда-нибудь видели и решили, что это про ключи шифрования.

И заодно: то же самое лежит в FreeBSD, OpenBSD, BoringTun, wireguard-go и в драйвере под Windows — шесть кодовых баз, пять разных структур данных, один и тот же молчаливый контракт. А MikroTik, который запрет прямо задокументировал, сам его не проверяет: на CHR оба пира показывают префикс, трафик идёт одному, и вернуть его второму можно только записью того же самого значения обратно.

Плюс способ проверить самому: настоящий allowedips.c из ядра, собранный в userspace одним gcc. Без модуля и без root.

Читать далее

Self-hosted почта на arch linux, postfix, dovecot и let's encrypt

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели8K

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

Читать далее
1
23 ...