New We are sorting MAX channels into categories and territories. Read the news
Public channel ID 76989105838120

Linux: Системный администратор

Здесь вы найдете полезные советы, практические материалы и интересные инсайты по администрированию Linux. Погружаемся в мир команд, скриптов и серверов вместе! 🚀

Авторский канал действующего админа 👨🏼‍💻

Open in MAX

Posts for the period

By reactions

Search and the whole feed — after free registration. Custom dates — with a subscription; the channel owner sees them for free. Sorting by reactions — with a subscription. Sign up

Loading…

🚧 systemd-networkd: быстрый дебаг сетевых настроек

Настроил systemd-networkd, но интерфейс не поднимается как надо? Не спеши лезть в journalctl. Есть встроенные инструменты, которые быстрее выявят проблему.

🔧 Пошагово:

1. Проверить статус интерфейса:


networkctl status eth0

Покажет текущую привязку .network-файла, состояние DHCP, IP и ошибки.

2. Посмотреть логи конкретного интерфейса:


journalctl -u systemd-networkd -g eth0

Фильтрация по интерфейсу сразу отсечёт мусор.

3. Проверить парсинг конфигов:


networkd-analyze verify

Покажет, где опечатка или конфликт в .network, .netdev, .link.

4. Активировать трассировку событий (для упёртых багов):


SYSTEMD_LOG_LEVEL=debug /lib/systemd/systemd-networkd

(только временно, вручную, в debug-сессии)

⚠️ Важно: systemd-networkd не обрабатывает интерфейсы, управляемые NetworkManager или ifupdown. Проверь networkctl list — если интерфейс в статусе unmanaged, он не под контролем systemd.

💡 Фича: networkd-dispatcher — хук-система на события сетевых интерфейсов, аналог if-up.d. Удобно для автоматических действий при получении IP.

Сохрани, пригодится при следующей миграции на systemd-networkd 🛠

#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin

👉 @channel_linux_admin
Views: 272
Go to post Open in MAX Report an inaccuracy
🔥 Быстрое сканирование открытых портов без nmap

Иногда nmap может быть недоступен на сервере, но хочется быстро узнать, какие порты открыты. Вот простой способ сделать это с помощью bash и timeout:

#!/bin/bash

HOST="127.0.0.1"
for PORT in {1..1024}; do
timeout 1 bash -c "echo >/dev/tcp/$HOST/$PORT" 2>/dev/null &&
echo "🔓 Порт $PORT открыт"
done


🔍 Этот скрипт:

* Проверяет порты с 1 по 1024
* Использует встроенный механизм bash /dev/tcp
* Показывает только открытые порты
* Работает без установки дополнительных утилит

⚠️ Не забудь про timeout, чтобы не зависнуть на закрытом порту!

Полезно для быстрого аудита или при ограничениях на установку ПО.

👉 @channel_linux_admin
Views: 489
Go to post Open in MAX Report an inaccuracy
🚨 iptables: как быстро сбросить соединения от IP-нарушителя

Когда в логи сыпется подозрительная активность от одного IP (DOS, скан, brute-force) — не всегда нужно ждать, пока сработает fail2ban. Можно сразу убить соединения и запретить новые.

🔧 Быстрые действия вручную:

# 1. Сбросить активные соединения от IP
conntrack -D -s 1.2.3.4

# 2. Заблокировать весь трафик от него (до перезапуска iptables)
iptables -I INPUT -s 1.2.3.4 -j DROP


📦 Убедитесь, что установлен пакет conntrack (обычно conntrack-tools).

🧠 Зачем и когда:

* моментально разрывает все TCP/UDP-сессии;
* эффективно при атаках с одного IP;
* можно автоматизировать в реакции на события (через fail2ban action, auditd или кастомный watchdog-скрипт).

⚠️ Не забудь внести в постоянные правила, если блок должен сохраниться после ребута (iptables-save / nftables / firewalld).

Сохрани, чтобы не паниковать в следующий инцидент.

👉 @channel_linux_admin
Views: 639
Go to post Open in MAX Report an inaccuracy
🧵 Диагностика странных зависаний сетевых соединений: "всё пингуется, но не работает"

💥 Бывает, что ping идёт, но ssh, curl или apt зависают. Проблема может быть в MTU / фрагментации пакетов.


🔍 Проверка: запусти ping с флагами "do not fragment" и максимальным размером пакета:

ping -M do -s 1472 <IP>
Если видишь Frag needed and DF set, MTU слишком большой. Уменьшай -s, пока не дойдёт.

🧠 Пример:

* 1472 + 28 (заголовки IP+ICMP) = 1500 — стандартный MTU
* если пакет не проходит, а проходит только при -s 1392, значит MTU на пути — 1420 (возможно, GRE/IPsec/WireGuard)


🔧 Решение — задай правильный MTU на интерфейсе (или wg):

sudo ip link set dev eth0 mtu 1420
Для WireGuard:

[Interface]
MTU = 1420
Или временно:

sudo wg set wg0 mtu 1420

💡 Когда применять:
– нестабильный VPN
– apt/ssh/rsync "зависает"
– TCP-соединения обрываются при загрузке больших данных
– странное поведение в Docker/K8s с overlay-сетями


Проверка MTU — обязательный шаг в нетипичной сетевой отладке.
Сохрани, пригодится.

👉 @channel_linux_admin
Views: 732
Go to post Open in MAX Report an inaccuracy
🚀 Подборка полезных IT каналов в Max


Системное администрирование, DevOps 📌

https://max.ru/i_odmin Все для системного администратора
https://max.ru/bash_srv Bash Советы
https://max.ru/sysadminof Книги для админов, полезные материалы
https://max.ru/i_odmin_book Библиотека Системного Администратора
https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др.
https://max.ru/tipsysdmin Типичный Сисадмин
https://max.ru/channel_win_sysadmin Системный Администратор Windows
https://max.ru/channel_linux_admin Linux: Системный администратор
https://max.ru/channel_linuxmod Linux
https://max.ru/channel_i_linux Системный администратор
https://max.ru/channel_devopslib DevOps, SRE, Sysadmin
https://max.ru/channel_devops_star DevOps Star (Звезда Девопса)

Excel лайфхак 📌
https://t.me/Excel_lifehack Excel лайфхак

Английский с нуля 🇬🇧
https://max.ru/UchuEnglish

1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С
https://max.ru/channel_DevLab1C 1С:Предприятие 8

Программирование C++📌
https://max.ru/cpp_lib Библиотека C/C++ разработчика
https://max.ru/channel_cpp_geek C++ geek

Программирование Go📌
https://max.ru/golang_lib Библиотека Go (Golang) разработчика

Программирование React📌
https://max.ru/react_lib React

Программирование Rust📌
https://max.ru/channel_rust_lib

Программирование Python 📌
https://max.ru/python_of Python академия.
https://max.ru/BookPython Библиотека Python разработчика

Java разработка 📌
https://max.ru/bookjava Библиотека Java разработчика
https://max.ru/channel_java_geek Java Geek

GitHub Сообщество 📌
https://max.ru/githublib Интересное из GitHub

Базы данных (Data Base) 📌
https://max.ru/database_info Все про базы данных

Фронтенд разработка 📌
https://max.ru/frontend_1 Подборки для frontend разработчиков

Библиотеки 📌
https://max.ru/programmist_of Книги по программированию
https://max.ru/proglb Библиотека программиста
https://max.ru/bfbook Книги для программистов

Программирование 📌
https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций
https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT
https://max.ru/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻

Шутки программистов 📌
https://max.ru/itumor Шутки программистов

Защита, взлом, безопасность 📌
https://max.ru/thehaking Канал о кибербезопасности
https://max.ru/xakkep_1 Хакер Free

Книги, статьи для дизайнеров 📌
https://max.ru/odesigners Статьи, книги для дизайнеров

Математика 📌
https://max.ru/Pomatematike Канал по математике
https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике

Вакансии в IT📌
https://max.ru/progjob
https://max.ru/channel_rabotait

Мир технологий 📌
https://max.ru/mir_teh Канал для любознательных

Городские📌
https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга
https://max.ru/mockva_life Свежие новости Москвы
https://max.ru/piterspb Питер Новости: Санкт-Петербург / СПБ / ДТП
https://max.ru/channel_krasnodar_novosty Краснодар Новости
https://max.ru/channel_novosibirsk_novosti Новосибирск
https://max.ru/channel_samara_novosti Новости Самары
https://max.ru/channel_ekaterinburg_novosti Новости Екатеринбурга
https://max.ru/channel_kazan_novosti Новости Казани
https://max.ru/channel_omsk_novosti Новости Омска
https://max.ru/channel_moskva_24 Москва 24
Views: 660
Go to post Open in MAX Report an inaccuracy
💥 Как настроить systemd-networkd для статического IP и маршрутов

Если ты не используешь NetworkManager (например, на серверах), systemd-networkd — отличный выбор. Ниже — минимальная, но рабочая настройка для интерфейса с ручным IP и маршрутами.


📁 Шаг 1: настрой сеть

Создай файл:

/etc/systemd/network/10-static.network

[Match]
Name=ens33

[Network]
Address=192.168.1.100/24
Gateway=192.168.1.1
DNS=8.8.8.8

[Route]
Destination=10.10.0.0/16
Gateway=192.168.1.254


💡 Можно добавить несколько [Route] секций, если нужно.


🔧 Шаг 2: включи systemd-networkd и отключи другие менеджеры

systemctl disable --now NetworkManager
systemctl enable --now systemd-networkd
systemctl enable --now systemd-resolved


⚠️ Проверь, что /etc/resolv.conf ссылается на ../run/systemd/resolve/stub-resolv.conf


🔎 Шаг 3: проверь статус и интерфейс

networkctl status ens33
ip a s ens33
ip r

🧠 Когда применять:
— на headless-серверах
— в минималистичных образах
— если хочешь контроль и простоту без NM

🔥 Трюк: systemd-networkd автоматически применяет маршруты из [Route] при поднятии интерфейса — без лишнего скриптинга.

Сохрани, пригодится!

👉 @channel_linux_admin
Views: 579
Go to post Open in MAX Report an inaccuracy
🔧 Отключаем IPv6 правильно через sysctl — без костылей и багов

В некоторых окружениях (legacy-сети, специфичные firewall policy, старые софты) требуется полностью отключить IPv6. Многие делают это через GRUB (ipv6.disable=1), но это не всегда корректно: интерфейсы всё равно могут получать link-local адреса (fe80::/10), что приводит к неожиданностям.

📌 Надёжный способ — через sysctl:

cat << 'EOF' > /etc/sysctl.d/99-disable-ipv6.conf
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
EOF

sysctl --system


🔥 Не забудь:
- Если у тебя кастомные интерфейсы (eth0, ens33, и т.д.) — проверь их через sysctl net.ipv6.conf.<iface>.disable_ipv6.
- Также удали ::1 из /etc/hosts, если не нужен loopback IPv6.

📍 Когда применять:
– нет поддержки IPv6 на маршрутизаторах/файрволах;
– жёсткие требования к аудиту/безопасности;
– снижение attack surface.

⚠️ Важно:
Некоторые демоны (например, Postfix, systemd-resolved) могут логировать ошибки при отсутствии IPv6 — проверь логи!

👉 @channel_linux_admin
Views: 671
Go to post Open in MAX Report an inaccuracy
🔥 Когда tcpdump врёт: ловим только то, что проходит через iptables

Иногда вы запускаете tcpdump, видите трафик — но приложение его не получает. Почему?

📌 tcpdump по умолчанию работает на уровне интерфейса, а не IP-стека. Он видит весь трафик — даже тот, что будет дропнут iptables.

🛠 Как посмотреть только то, что прошло фильтрацию iptables?

1. Создаём временный NFLOG-правилo:

iptables -I INPUT -p tcp --dport 22 -j NFLOG --nflog-group 1

2. Слушаем лог-группу с tcpdump:

tcpdump -i nflog:1 -nn -vv

3. Потом удалим правило:

iptables -D INPUT -p tcp --dport 22 -j NFLOG --nflog-group 1

📎 Что происходит?
Правило направляет пакеты, которые дошли до этой цепочки, в NFLOG. А tcpdump уже читает их после обработки iptables.

✅ Когда применять:
— Отладка проблем доступа
— Проверка, дропает ли iptables нужный трафик
— Точная диагностика без "шума"

⚠️ Не забудьте убрать правило после отладки, иначе лог будет засоряться.

Сохрани, пригодится. Особенно когда "всё открыто, но не работает" 😉

👉 @channel_linux_admin
Views: 832
Go to post Open in MAX Report an inaccuracy
Хотите быстро проверить, через какой интерфейс и IP ваш Linux-сервер выйдет к определённому адресу, без реального подключения?

Решение:
Используйте ip route get — лёгкая команда для диагностики маршрутизации:

ip route get 8.8.8.8

Что покажет:
- Какой IP-адрес будет использоваться для исходящего соединения;
- Какой сетевой интерфейс (dev eth0 и т.д.);
- Какой шлюз (via) задействован.

Пример вывода:
8.8.8.8 via 192.168.1.1 dev eth0 src 192.168.1.10 uid 0

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

Бонус:
Проверить маршрут сразу для нескольких целей:
for ip in 8.8.8.8 1.1.1.1; do ip route get $ip; done

Важно:
Если у вас настроены policy-based routing (PBR) или VRF, команда тоже отразит их влияние!

Сохрани, пригодится на проде. 🔥

👉 @channel_linux_admin
Views: 679
Go to post Open in MAX Report an inaccuracy
Как быстро сбросить сетевой интерфейс без перезапуска системы

Иногда после правки конфигурации сети нужно *мягко* применить изменения без ребута. Особенно на продакшене.

🔧 Простейший способ — с помощью ip:

ip link set eth0 down
ip addr flush dev eth0
ip link set eth0 up

Что делают эти команды:
- set down — переводит интерфейс в неактивное состояние.
- flush — очищает IP-адреса интерфейса.
- set up — активирует интерфейс заново.

Когда применять:
🔹 После ручной настройки IP через ip/ifconfig;
🔹 После внесения изменений в /etc/network/interfaces, Netplan, systemd-networkd и пр.;
🔹 Для быстрой переинициализации интерфейса без влияния на другие службы.

⚡ Трюк: если используется DHCP-клиент (dhclient), можно сразу запросить новый IP:

dhclient -r eth0 && dhclient eth0

(первое — release, второе — новый запрос)

Важно:
- Для виртуальных интерфейсов (vlan, bridge) могут быть дополнительные зависимости!
- После flush интерфейс теряет все адреса — убедись, что автоматика подтянет их обратно.

Итог: Безопасный способ быстро перезагрузить сетевой стек локально.

Сохрани, пригодится! 🚀
Views: 753
Go to post Open in MAX Report an inaccuracy
The full feed — after free sign-up
VKontakte Telegram Odnoklassniki
Favorites at datool.ru

Follow the channel in your account

Sign up at datool.ru to add the channel “Linux: Системный администратор” to favorites and track its metrics.

Sign up
For channel owners

Verify your channel

Sign in or sign up at datool.ru, then add our bot to the channel following the instructions in your account. Once ownership is verified, the lock disappears and channel management becomes available.

Sign in or sign up

Report an inaccuracy

Describe what needs fixing. If you have a source, add a link.

You are leaving datool.ru

The link leads to an external website. datool.ru is not responsible for its content — check the address before entering passwords or payment details.

Redirecting in 10 s

Go