NetworkManager иногда игнорирует ручные изменения в /etc/resolv.conf
На современных дистрибутивах (Ubuntu, CentOS, Fedora) за DNS часто отвечает NetworkManager, который может перезаписывать /etc/resolv.conf при каждом подключении. Ручные правки слетают, DNS-серверы меняются сами собой — раздражает?
✅ Решение:
Закрепи нужный DNS через NetworkManager, чтобы изменения были постоянными.
Пошагово:
1. Найди имя интерфейса:
2. Пропиши DNS для интерфейса:
3. Перезапусти соединение:
4. Проверь результат:
💡 Трюк:
Чтобы глобально задать DNS для всех новых соединений:
⚠️ Избегай ручного редактирования /etc/resolv.conf при использовании NetworkManager — иначе гарантированы "сюрпризы" после ребута или reconnection.
Сохрани, пригодится!
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
На современных дистрибутивах (Ubuntu, CentOS, Fedora) за DNS часто отвечает NetworkManager, который может перезаписывать /etc/resolv.conf при каждом подключении. Ручные правки слетают, DNS-серверы меняются сами собой — раздражает?
✅ Решение:
Закрепи нужный DNS через NetworkManager, чтобы изменения были постоянными.
Пошагово:
1. Найди имя интерфейса:
nmcli device status
2. Пропиши DNS для интерфейса:
nmcli con mod <имя_подключения> ipv4.dns "8.8.8.8 1.1.1.1"
nmcli con mod <имя_подключения> ipv4.ignore-auto-dns yes
3. Перезапусти соединение:
nmcli con down <имя_подключения> && nmcli con up <имя_подключения>
4. Проверь результат:
resolvectl status
💡 Трюк:
Чтобы глобально задать DNS для всех новых соединений:
nmcli networking off
nmcli general hostname myhost
nmcli con mod "System eth0" ipv4.dns "8.8.8.8"
nmcli con mod "System eth0" ipv4.ignore-auto-dns yes
nmcli networking on
⚠️ Избегай ручного редактирования /etc/resolv.conf при использовании NetworkManager — иначе гарантированы "сюрпризы" после ребута или reconnection.
Сохрани, пригодится!
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍5😁2❤1
🔐 Быстрый способ защитить SSH от брутфорса с помощью
SSH-серверы в публичной сети постоянно испытывают волну брутфорс-атак. Вместо дополнительного уровня с fail2ban можно использовать встроенные возможности nftables для динамической блокировки злонамеренных IP.
1. Создаём таблицу и базовый цепочки
* table inet filter: единая таблица для IPv4/IPv6.
* chain input: обрабатывает входящий трафик до локального стека.
* set blacklist: обрабатывает динамические списки IP (добавляем IP при превышении лимита).
2. Добавляем правило учёта попыток подключения
* ct state new + limit: разрешаем первые 10 новых соединений в минуту.
* add
3. Блокируем пакеты из чёрного списка
* insert: ставим правило выше остальных, чтобы сразу сбрасывать пакеты.
*
4. Сохраняем конфигурацию
* list ruleset сохраняет текущее состояние, после перезагрузки правила восстанавливаются.
Зачем и когда использовать:
* Почему: минимизируем зависимость от внешних скриптов, снимаем нагрузку при атаке (нет лишних fork/grep/iptables).
* Когда: если сервер доступен из интернета, и надо быстро выставить «самоблок» без дополнительных демонов.
🌟 Вместо фиксированного времени (
- так не потребуется динамический set, а «автоблок» сработает мгновенно.
Сохрани, пригодится!
А ты так защищаешь SSH?
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
nftables
SSH-серверы в публичной сети постоянно испытывают волну брутфорс-атак. Вместо дополнительного уровня с fail2ban можно использовать встроенные возможности nftables для динамической блокировки злонамеренных IP.
1. Создаём таблицу и базовый цепочки
sudo nft add table inet filter
sudo nft 'add chain inet filter input { type filter hook input priority 0 \; }'
sudo nft 'add set inet filter blacklist { type ipv4_addr\; flags dynamic\; }'
* table inet filter: единая таблица для IPv4/IPv6.
* chain input: обрабатывает входящий трафик до локального стека.
* set blacklist: обрабатывает динамические списки IP (добавляем IP при превышении лимита).
2. Добавляем правило учёта попыток подключения
sudo nft add rule inet filter input tcp dport 22 ct state new limit rate 10/minute accept comment "Разрешаем до 10 новых зачключений SSH в минуту"
sudo nft add rule inet filter input tcp dport 22 ct state new add @blacklist { ip saddr } expire 1h comment "Если превысили скорость — вносим в чёрный список на 1 час"
* ct state new + limit: разрешаем первые 10 новых соединений в минуту.
* add
@blacklist
{ ip saddr }: при каждом новом подключении вне лимита IP добавляется в blacklist.3. Блокируем пакеты из чёрного списка
sudo nft insert rule inet filter input ip saddr @blacklist drop comment "Блокируем SSH для чёрного списка"
* insert: ставим правило выше остальных, чтобы сразу сбрасывать пакеты.
*
@blacklist
: любой IP из сета моментально сбрасывается.4. Сохраняем конфигурацию
sudo nft list ruleset > /etc/nftables.conf
sudo systemctl enable nftables --now
* list ruleset сохраняет текущее состояние, после перезагрузки правила восстанавливаются.
Зачем и когда использовать:
* Почему: минимизируем зависимость от внешних скриптов, снимаем нагрузку при атаке (нет лишних fork/grep/iptables).
* Когда: если сервер доступен из интернета, и надо быстро выставить «самоблок» без дополнительных демонов.
🌟 Вместо фиксированного времени (
expire 1h
) можно использовать «скоростной» подход с limit rate
напрямую:
nft add rule inet filter input tcp dport 22 ct state new counter limit rate over 15/minute drop comment "Быстрая блокировка при 15 попытках в минуту"
- так не потребуется динамический set, а «автоблок» сработает мгновенно.
Сохрани, пригодится!
А ты так защищаешь SSH?
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍3
⚡ Как оптимизировать сетевой стек Linux для высоких нагрузок
В условиях высоких сетевых нагрузок стандартных настроек ядра и драйверов NIC часто недостаточно: возникают «пропуска» пакетов, увеличивается задержка и теряется пропускная способность. Ниже — практическое руководство по тонкой настройке с помощью
1. Аудит текущих параметров
Проверяем значения кольцевых буферов (RX/TX):
Показывает текущие размеры ring-буферов:
Смотрим текущие sysctl-параметры сетевого стека:
2. Увеличиваем буферы NIC
1. Подбираем оптимальные значения.
Обычно в нагрузочных дата-центрах достаточно:
*
*
> Когда применять: На серверах с большой пропускной способностью (>1 Gbps) и высокой маллатентностью сети.
2. Проверяем после изменения:
Убедитесь, что значения приняты драйвером.
3. Настройка параметров ядра (sysctl)
Добавьте в
*
*
*
* BBR снижает задержки и повышает пропускную способность в условиях загруженных сетей.
Применяем:
4. Проверка и валидация
Мониторим показатели через
Смотрим на количество ошибок, состояние TCP-сокетов, очереди.
* Измеряем пропускную способность:
Сравниваем до и после настроек.
5. Зачем и когда применять
* Виртуальные машины/контейнеры с «тонкой» сетью: при «подёргиваниях» в трафике (bursty traffic).
* Серверы игр/стриминга/СХД: где важна низкая задержка и высокая стабильность.
* Сервисы с пиковыми нагрузками (backup, CDN-ноды): помогут снизить потерю пакетов при пиках.
6. Полезный трюк и предостережение
* Трюк:
Чтобы изменения NIC-буферов применялись автоматически при перезагрузке, создайте udev-правило
* Предупреждение:
На VDS с ограниченной памятью чрезмерное увеличение буферов может привести к OOM-ситуациям. Всегда мониторьте нагрузку на RAM и swap.
Вывод
С помощью правильной комбинации
👉 Сохрани, пригодится!
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
В условиях высоких сетевых нагрузок стандартных настроек ядра и драйверов NIC часто недостаточно: возникают «пропуска» пакетов, увеличивается задержка и теряется пропускная способность. Ниже — практическое руководство по тонкой настройке с помощью
ethtool
и sysctl
на Debian/Ubuntu (или производных).1. Аудит текущих параметров
Проверяем значения кольцевых буферов (RX/TX):
sudo ethtool -g eth0
Показывает текущие размеры ring-буферов:
rx
, tx
, rx-mini
, rx-jumbo
и т.д.Смотрим текущие sysctl-параметры сетевого стека:
sysctl net.core.rmem_max net.core.wmem_max \
net.ipv4.tcp_rmem net.ipv4.tcp_wmem net.ipv4.tcp_congestion_control
2. Увеличиваем буферы NIC
1. Подбираем оптимальные значения.
Обычно в нагрузочных дата-центрах достаточно:
sudo ethtool -G eth0 rx 4096 tx 4096
*
rx 4096
— кольцевой буфер для приёма пакетов.*
tx 4096
— кольцевой буфер для передачи.> Когда применять: На серверах с большой пропускной способностью (>1 Gbps) и высокой маллатентностью сети.
2. Проверяем после изменения:
ethtool -g eth0
Убедитесь, что значения приняты драйвером.
3. Настройка параметров ядра (sysctl)
Добавьте в
/etc/sysctl.d/99-network-tuning.conf
:
# Увеличиваем максимальные размеры буферов ядра
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
# Стандартизованные границы TCP-буферов (min/default/max)
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
# Увеличиваем очередь для входящих соединений
net.core.netdev_max_backlog = 5000
# Активация TCP-Congestion Control: BBR (если ядро поддерживает)
net.ipv4.tcp_congestion_control = bbr
net.ipv4.tcp_mtu_probing = 1
*
rmem_max/wmem_max
задают максимальный объём памяти, выделяемой ядром под сетевые буферы.*
tcp_rmem/tcp_wmem
определяют минимум/дефолт/максимум для динамического буфера TCP-соединения.*
netdev_max_backlog
увеличивает очередь пакетов, ожидающих обработки kernel-space до userspace.* BBR снижает задержки и повышает пропускную способность в условиях загруженных сетей.
Применяем:
sudo sysctl --system
4. Проверка и валидация
Мониторим показатели через
ss
или netstat
:
ss -s
Смотрим на количество ошибок, состояние TCP-сокетов, очереди.
* Измеряем пропускную способность:
iperf3 -c <сервер> -P 4 -t 60
Сравниваем до и после настроек.
5. Зачем и когда применять
* Виртуальные машины/контейнеры с «тонкой» сетью: при «подёргиваниях» в трафике (bursty traffic).
* Серверы игр/стриминга/СХД: где важна низкая задержка и высокая стабильность.
* Сервисы с пиковыми нагрузками (backup, CDN-ноды): помогут снизить потерю пакетов при пиках.
6. Полезный трюк и предостережение
* Трюк:
Чтобы изменения NIC-буферов применялись автоматически при перезагрузке, создайте udev-правило
/etc/udev/rules.d/70-ethtool.rules
:
ACTION=="add", SUBSYSTEM=="net", NAME=="eth0", RUN+="/usr/sbin/ethtool -G eth0 rx 4096 tx 4096"
* Предупреждение:
На VDS с ограниченной памятью чрезмерное увеличение буферов может привести к OOM-ситуациям. Всегда мониторьте нагрузку на RAM и swap.
Вывод
С помощью правильной комбинации
ethtool
+ sysctl
можно значительно улучшить сетевые метрики: снизить пинг, уменьшить потерю пакетов и увеличить throughput.👉 Сохрани, пригодится!
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍5❤1
Ускоряем TCP-стек: тонкий тюнинг offload и sysctl
В самом пиковом трафике TCP-серверы часто не вытягивают заявленную пропускную способность. Причина — неэффективные offload-фичи NIC и «жесткие» дефолтные параметры ядра.
1. Проверяем возможности сети (offloads):
Вы увидите, какие фичи задействованы (GRO, GSO, TSO, LRO и т.п.).
2. Тонкая настройка offload-фичей:
▫️Чтобы отключить оффлоад (например, при отладке или если оборудование плохо работает):
▫️Чтобы вернуть на продакшн-уровень (во многих случаях лучше оставить включённым):
3. Настройка sysctl для TCP-стека:
Создаём файл
Сохраняем и применяем:
4. Полезный трюк (systemd-интеграция offload):
Вместо скриптов можно зафиксировать нужные offload-параметры в профиле systemd-networkd.
Создаём
Дальше:
Такой подход гарантирует, что при рестарте сети offload-настройки сохранятся.
5. Предупреждение об ошибке:
Не стоит «глушить» все offload-фичи на продакшене без причин — может вырасти CPU-загрузка и снизиться общая пропускная способность.
Заключение:
Правильный монтаж offload и sysctl-тюнинг — залог стабильной и быстрой сети.
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
В самом пиковом трафике TCP-серверы часто не вытягивают заявленную пропускную способность. Причина — неэффективные offload-фичи NIC и «жесткие» дефолтные параметры ядра.
1. Проверяем возможности сети (offloads):
ethtool -k eth0
Вы увидите, какие фичи задействованы (GRO, GSO, TSO, LRO и т.п.).
2. Тонкая настройка offload-фичей:
▫️Чтобы отключить оффлоад (например, при отладке или если оборудование плохо работает):
ethtool -K eth0 gro off gso off tso off lro off
▫️Чтобы вернуть на продакшн-уровень (во многих случаях лучше оставить включённым):
ethtool -K eth0 gro on gso on tso on lro on
Зачем: отключение может помочь выявить причину артефактов или падений производительности. В бою же правильная комбинация offload снижает CPU-нагрузку.
3. Настройка sysctl для TCP-стека:
Создаём файл
/etc/sysctl.d/99-network-tuning.conf
с ключевыми параметрами:
# Увеличиваем буферы приёмника/передачи
net.core.rmem_max = 268435456
net.core.wmem_max = 268435456
# Автоматически масштабируем буферы TCP
net.ipv4.tcp_rmem = 4096 87380 268435456
net.ipv4.tcp_wmem = 4096 87380 268435456
# Увеличиваем размер очереди соединений
net.core.somaxconn = 1024
# Включаем TCP Fast Open (по возможности)
net.ipv4.tcp_fastopen = 3
# Тюнинг для низкой задержки (если нужно)
net.ipv4.tcp_low_latency = 1
Сохраняем и применяем:
sysctl --system
Когда применять: нагрузки с большим числом соединений (базы данных, прокси, высоконагруженные веб-фронтенды).
4. Полезный трюк (systemd-интеграция offload):
Вместо скриптов можно зафиксировать нужные offload-параметры в профиле systemd-networkd.
Создаём
/etc/systemd/network/20-eth0.network
:
[Match]
Name=eth0
[Link]
# Примеры: включить TSO и GSO, отключить GRO
TCPGenericReceiveOffload=no
TCPGenericSendOffload=yes
Дальше:
systemctl restart systemd-networkd
Такой подход гарантирует, что при рестарте сети offload-настройки сохранятся.
5. Предупреждение об ошибке:
Не стоит «глушить» все offload-фичи на продакшене без причин — может вырасти CPU-загрузка и снизиться общая пропускная способность.
Заключение:
Правильный монтаж offload и sysctl-тюнинг — залог стабильной и быстрой сети.
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍2
🚀 Bash скрипт мониторинга заполнения диска с оповещением на email 📩
Отслеживаем заполнение дисковых разделов и получаем предупреждения, когда они переполняются.
1. THRESHOLD – задаёт порог в процентах, при котором срабатывает оповещение.
2. df -H – получает информацию о дисках в «читаемом» формате (GB).
3. Цикл
4. Если заполнение раздела ≥
✨Запланируйте выполнение скрипта через cron:
Вместо email можно отправлять уведомления в Slack или Telegram через их API.
Для логирования добавьте запись в syslog через
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
Отслеживаем заполнение дисковых разделов и получаем предупреждения, когда они переполняются.
#!/usr/bin/env bash
# ⚙️ Настройки
THRESHOLD=80 # порог заполнения в %
EMAIL="[email protected]"
SUBJECT="⚠️ Disk Usage Alert on $(hostname)"
TMPFILE=$(mktemp)
# 📊 Сбор данных о дисках
df -H | grep -vE '^Filesystem|tmpfs|cdrom' > "$TMPFILE"
# 📣 Проверка и оповещение
while read -r filesystem size used available percent mount; do
used_value=${percent%\%}
if [ "$used_value" -ge "$THRESHOLD" ]; then
echo -e "Раздел: $filesystem\nТочка монтирования: $mount\nЗаполнено: $percent" | \
mail -s "$SUBJECT" "$EMAIL"
fi
done < "$TMPFILE"
# 🧹 Убираем временный файл
rm "$TMPFILE"
1. THRESHOLD – задаёт порог в процентах, при котором срабатывает оповещение.
2. df -H – получает информацию о дисках в «читаемом» формате (GB).
3. Цикл
while
перебирает строки, игнорируя заголовки и tmpfs.4. Если заполнение раздела ≥
$THRESHOLD
%, отправляем письмо через mail -s
.✨Запланируйте выполнение скрипта через cron:
# Каждые 30 минут
*/30 * * * * /path/to/disk_alert.sh
Вместо email можно отправлять уведомления в Slack или Telegram через их API.
Для логирования добавьте запись в syslog через
logger
.#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍7
🔍 Быстрая диагностика задержек и потерь пакетов с tcpdump + tshark
Устали искать «почему тормозит сеть» вслепую? Давайте соберём данные и быстро выявим узкое место.
1️⃣ Сниффинг трафика
2️⃣ Подсчёт средних RTT и пакетов
3️⃣ Анализ потерь и повторов
4️⃣ Состояние сокетов в реальном времени
❓ Зачем и когда
Выявить задержки: RTT и пики задержек.
Найти потери: точно знать, на каком сегменте уходит трафик.
Без GUI: всё в консоли, подходит для серверов.
💡 Трюк
Для live-анализа пропускайте вывод tcpdump напрямую:
Таким образом вы сразу видите задержки без файлов.
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
Устали искать «почему тормозит сеть» вслепую? Давайте соберём данные и быстро выявим узкое место.
1️⃣ Сниффинг трафика
tcpdump -i eth0 port 80 -w /tmp/capture.pcap \
-C 50 -W 4
•-C 50
&-W 4
— кольцевой буфер: четыре файла по 50 МБ, без остановки
•port 80
— фильтрация по порту (замените на нужный)
2️⃣ Подсчёт средних RTT и пакетов
tshark -r /tmp/capture.pcap \
-q -z io,stat,0,AVG(tcp.analysis.ack_rtt)
Выдаст статистику задержек TCP-ACK во времени.
3️⃣ Анализ потерь и повторов
tshark -r /tmp/capture.pcap \
-Y "tcp.analysis.retransmission or tcp.analysis.loss" \
-T fields -e frame.number -e tcp.analysis.retransmission
Список фреймов с повторными передачами или потерями.
4️⃣ Состояние сокетов в реальном времени
ss -s # общая статистика
ss -ti dst :80 # детально по портам
❓ Зачем и когда
Выявить задержки: RTT и пики задержек.
Найти потери: точно знать, на каком сегменте уходит трафик.
Без GUI: всё в консоли, подходит для серверов.
💡 Трюк
Для live-анализа пропускайте вывод tcpdump напрямую:
tcpdump -i eth0 -l port 443 | tshark -l -T fields -e frame.time_relative -e tcp.analysis.ack_rtt
Таким образом вы сразу видите задержки без файлов.
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍2
🔒 iptables: блокируем скан nmap
Многие забывают:
📌 Цель: заблокировать NULL, FIN, XMAS сканы — любимые техники скрытного обнаружения.
👣 Пошагово:
💡 Эти сканы эксплуатируют особенности TCP — они не характерны для нормального трафика. Если ты не хостишь экзотику, можно смело дропать.
⚠️ Важно: Не перебарщивай — агрессивные правила могут мешать нестандартным приложениям (например, BitTorrent). Проверяй логи!
🔥 Добавь логирование в отдельную цепочку для отладки:
🧠 Защита от портсканирования — это must-have на фронте. Идеально в связке с fail2ban.
Сохрани, пригодится 💥
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
Многие забывают:
nmap
умеет скрываться. Обычные правила iptables не всегда помогут. Но есть трюк.📌 Цель: заблокировать NULL, FIN, XMAS сканы — любимые техники скрытного обнаружения.
👣 Пошагово:
# Блокируем NULL-скан (без флагов)
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
# Блокируем FIN-скан (только FIN-флаг)
iptables -A INPUT -p tcp --tcp-flags ALL FIN -j DROP
# Блокируем XMAS-скан (FIN, PSH, URG)
iptables -A INPUT -p tcp --tcp-flags ALL FIN,PSH,URG -j DROP
💡 Эти сканы эксплуатируют особенности TCP — они не характерны для нормального трафика. Если ты не хостишь экзотику, можно смело дропать.
⚠️ Важно: Не перебарщивай — агрессивные правила могут мешать нестандартным приложениям (например, BitTorrent). Проверяй логи!
🔥 Добавь логирование в отдельную цепочку для отладки:
iptables -N SCAN_DROP
iptables -A SCAN_DROP -j LOG --log-prefix "PortScan Blocked: " --log-level 7
iptables -A SCAN_DROP -j DROP
# Пример с логом:
iptables -A INPUT -p tcp --tcp-flags ALL FIN,PSH,URG -j SCAN_DROP
🧠 Защита от портсканирования — это must-have на фронте. Идеально в связке с fail2ban.
Сохрани, пригодится 💥
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍11
🔥 Как быстро сбросить iptables, не потеряв доступ по SSH
Иногда после кривой настройки iptables можно отрезать себя от сервера. Но если SSH-сессия ещё активна — есть шанс всё вернуть.
🔧 Пошагово:
1. Сохраняем текущие правила в файл — на всякий случай:
2. Создаём “спасательный” скрипт для сброса:
3. Запускаем с отложенным выполнением (через 1 минуту):
4. ⚠️ За это время проверь правила и поправь ошибки.
Если всё заработает — отмени задание, чтобы не сбросить то, что уже исправлено:
🧠 Зачем?
Этот приём спасает при ошибках в firewall’е, когда нельзя подключиться заново, но активная сессия ещё жива.
💡Добавляй в iptables-скрипты проверку подключения (например, через ping/curl), прежде чем применять DROP-политики.
Сохрани, пригодится. А ты так страхуешься?
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
Иногда после кривой настройки iptables можно отрезать себя от сервера. Но если SSH-сессия ещё активна — есть шанс всё вернуть.
🔧 Пошагово:
1. Сохраняем текущие правила в файл — на всякий случай:
iptables-save > /root/iptables.bak
2. Создаём “спасательный” скрипт для сброса:
cat <<EOF > /tmp/flush.sh
#!/bin/bash
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
EOF
chmod +x /tmp/flush.sh
3. Запускаем с отложенным выполнением (через 1 минуту):
at now + 1 minute -f /tmp/flush.sh
4. ⚠️ За это время проверь правила и поправь ошибки.
Если всё заработает — отмени задание, чтобы не сбросить то, что уже исправлено:
atq # узнать ID задания
atrm <ID>
🧠 Зачем?
Этот приём спасает при ошибках в firewall’е, когда нельзя подключиться заново, но активная сессия ещё жива.
💡Добавляй в iptables-скрипты проверку подключения (например, через ping/curl), прежде чем применять DROP-политики.
Сохрани, пригодится. А ты так страхуешься?
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍8❤2
🔥 Сетевой интерфейс завис после ifdown? Как поднять без ребута
Иногда после
📌 Решение:
💡 Или ещё жёстче — снять все адреса и применить заново:
📍Когда применять:
– после кривого
– при ошибках конфигурации сетевого интерфейса без желания ребутать;
– если
🛑 Важно: на проде делай это только с консоли или IPMI, иначе останешься без доступа.
Сохрани — пригодится, когда SSH срежет сук под тобой 😅
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
Иногда после
ifdown eth0
интерфейс "залипает": ip link
показывает DOWN, ifup eth0
— молчит или пишет, что интерфейс уже внизу. Особенно частая беда при ручных правках /etc/network/interfaces
.📌 Решение:
# Убедимся, что интерфейс точно down
ip link show eth0
# Принудительно поднимем
ip link set eth0 up
# Применим конфиг из /etc/network/interfaces
ifup --force eth0
💡 Или ещё жёстче — снять все адреса и применить заново:
ip addr flush dev eth0
ifdown --force eth0 && ifup eth0
📍Когда применять:
– после кривого
ifdown
;– при ошибках конфигурации сетевого интерфейса без желания ребутать;
– если
systemctl restart networking
не помогает.🛑 Важно: на проде делай это только с консоли или IPMI, иначе останешься без доступа.
Сохрани — пригодится, когда SSH срежет сук под тобой 😅
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍4❤1
Сколько раз бывало: "Где лежит этот конфиг? А в каком файле та самая строка?" — и понеслась лихорадочная проверка
🔍 Поиск файлов по имени:
А если не знаешь точное имя — используй маску:
📂 Поиск только файлов или только директорий:
🧵 Поиск по содержимому файла — мой любимый
Здесь:
*
*
🎯 Хочешь только имена файлов, а не строки? Используй:
🔥 Ищу файлы, изменённые за последние сутки:
Это спасает, если надо понять, кто и когда трогал конфиги. Отличный приём при разборе инцидентов.
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
/etc
, find
, grep
... 🔍 Поиск файлов по имени:
find /etc -name "sshd_config"
А если не знаешь точное имя — используй маску:
find /var/log -iname "*auth*"
📂 Поиск только файлов или только директорий:
find /opt -type f # только файлы
find /srv -type d # только каталоги
🧵 Поиск по содержимому файла — мой любимый
grep
:
grep -Ri "PermitRootLogin" /etc/ssh
Здесь:
*
-R
— рекурсивно,*
-i
— игнор регистра.🎯 Хочешь только имена файлов, а не строки? Используй:
grep -Rl "Listen 80" /etc
🔥 Ищу файлы, изменённые за последние сутки:
find /etc -mtime -1
Это спасает, если надо понять, кто и когда трогал конфиги. Отличный приём при разборе инцидентов.
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍9
🛠 Мини-гайд: Как читать
Вот что стоит смотреть:
🔹 CPU bars (вверху)
– Разноцветные полоски = разные типы загрузки
* 🔴 красное — system (ядро)
* 💚 зелёное — user (твои процессы)
* 🔵 синее — nice (низкий приоритет)
* ⚫ серое — idle (простой)
Если всё в красном — значит, ядро чем-то занято. Чаще всего — IO или проблемы с драйверами.
🔹 Memory / Swap
– Если swap активно используется — беда. RAM не хватает.
– Если swap постоянно растёт — ищи прожорливый процесс.
🔹 Сортировка по колонкам
Нажми F6, чтобы выбрать, по чему сортировать:
– CPU
– MEM
– TIME+ (время работы)
– PRI (приоритет)
Часто забывают про TIME+ — а он показывает, кто реально долго жрёт ресурсы.
🔹 Управление процессами прямо из
–
–
–
–
Запусти у себя, поиграй с колонками и цветами, и начни действительно понимать, что происходит в системе.
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
htop
, если ты не просто кликаешь мышкойhtop
— любимая команда всех линуксоидов. Но многие юзают её по принципу “вижу, что что-то горит — и ладно”. А ведь она даёт кучу полезной инфы, если читать внимательно.Вот что стоит смотреть:
🔹 CPU bars (вверху)
– Разноцветные полоски = разные типы загрузки
* 🔴 красное — system (ядро)
* 💚 зелёное — user (твои процессы)
* 🔵 синее — nice (низкий приоритет)
* ⚫ серое — idle (простой)
Если всё в красном — значит, ядро чем-то занято. Чаще всего — IO или проблемы с драйверами.
🔹 Memory / Swap
– Если swap активно используется — беда. RAM не хватает.
– Если swap постоянно растёт — ищи прожорливый процесс.
🔹 Сортировка по колонкам
Нажми F6, чтобы выбрать, по чему сортировать:
– CPU
– MEM
– TIME+ (время работы)
– PRI (приоритет)
Часто забывают про TIME+ — а он показывает, кто реально долго жрёт ресурсы.
🔹 Управление процессами прямо из
htop
–
F9
— убить процесс–
F7/F8
— изменить приоритет (nice)–
F3
— поиск по названию–
F2
— кастомизация интерфейса (рекомендую)htop
— не просто анимация для терминала. Это инструмент диагностики.Запусти у себя, поиграй с колонками и цветами, и начни действительно понимать, что происходит в системе.
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
❤5👍4🔥1
🧠Ловим «призрачный» трафик:
Сервер «висит» — подозрительная активность, но
📌 1. Базовый сниффинг по интерфейсу:
📌 2. Только входящие подключения (например, к порту 22):
📌 3. Вывести IP-адреса и порты в читаемом виде:
📌 4. Сохраняем трафик в файл для анализа:
📌 5. Проверка на скан SYN-пакетов (часто — злоумышленники):
🔍 Когда использовать:
– Видишь нагрузку, а не можешь найти, кто её создаёт
– Подозрение на сканирование, ботнет или майнер
– Анализ нестандартного поведения сети
💡
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
tcpdump
Сервер «висит» — подозрительная активность, но
ss
, netstat
и iftop
ничего не показывают? Используй tcpdump
, чтобы увидеть весь трафик в обход сокетов.📌 1. Базовый сниффинг по интерфейсу:
tcpdump -i eth0 -n
📌 2. Только входящие подключения (например, к порту 22):
tcpdump -i eth0 'tcp dst port 22'
📌 3. Вывести IP-адреса и порты в читаемом виде:
tcpdump -ni eth0
📌 4. Сохраняем трафик в файл для анализа:
tcpdump -i eth0 -w /tmp/capture.pcap
📌 5. Проверка на скан SYN-пакетов (часто — злоумышленники):
tcpdump 'tcp[tcpflags] & tcp-syn != 0 and tcp[tcpflags] & tcp-ack == 0'
🔍 Когда использовать:
– Видишь нагрузку, а не можешь найти, кто её создаёт
– Подозрение на сканирование, ботнет или майнер
– Анализ нестандартного поведения сети
💡
tcpdump
может показать даже raw-трафик от контейнеров, tun-интерфейсов, снифферов, которые не видны через ss/netstat
.#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
🔥2👍1
💡 Как ускорить резолв DNS в Linux (и не словить таймаут)
Иногда
🔧 1. Проверяем текущий DNS:
или:
Убедись, что указан локальный (127.0.0.53) резолвер, если используется
⚙️ 2. Проверяем
Если там:
— ок для systemd-resolved.
Если там:
— опасно! Убедись, что локальный DNS работает (
🚑 3. Подключи быстрые DNS напрямую (если нужно):
Добавь:
Применить:
📌 Совет:
Проверь производительность DNS:
Или используй
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
Иногда
curl
, apt
, ping
и др. тормозят из-за медленного DNS. Особенно при неверной конфигурации /etc/resolv.conf
. Вот как это проверить и поправить:🔧 1. Проверяем текущий DNS:
systemd-resolve --status | grep 'DNS Servers' -A2
или:
resolvectl status
Убедись, что указан локальный (127.0.0.53) резолвер, если используется
systemd-resolved
, или явные DNS (например, 8.8.8.8) — если нет.⚙️ 2. Проверяем
/etc/resolv.conf
:
cat /etc/resolv.conf
Если там:
nameserver 127.0.0.53
— ок для systemd-resolved.
Если там:
nameserver 127.0.0.1
— опасно! Убедись, что локальный DNS работает (
dnsmasq
, unbound
и пр.). Иначе — будут фризы.🚑 3. Подключи быстрые DNS напрямую (если нужно):
sudo nano /etc/systemd/resolved.conf
Добавь:
[Resolve]
DNS=1.1.1.1 8.8.8.8
FallbackDNS=9.9.9.9
Применить:
sudo systemctl restart systemd-resolved
📌 Совет:
Проверь производительность DNS:
systemd-resolve google.com --statistics
Или используй
dig
, drill
и resolvectl query
.#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
✍2👍2
💡 Как я ускоряю поиск по логам в Linux
Сегодня покажу вам приём, который не раз спасал мне нервы при анализе логов.
Представим, что нужно найти ошибки в большом лог-файле, например
Но это медленно. Лучше так:
Ещё лучше — использовать
А затем нажать
А если хочется реального профита, то вот мой любимый трюк:
Что делает эта команда:
- Ищет ошибки 500/502/503
- Извлекает IP-адреса (предположим, это первое поле)
- Считает, сколько раз каждый IP дал ошибку
- Показывает топ атакующих/плохих клиентов
Эта команда — мини-аналитика в одну строку. Часто помогает сразу понять, где проблема.
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
Сегодня покажу вам приём, который не раз спасал мне нервы при анализе логов.
Представим, что нужно найти ошибки в большом лог-файле, например
/var/log/nginx/access.log
. Обычно все начинают с:
cat access.log | grep "500"
Но это медленно. Лучше так:
grep "500" access.log
Ещё лучше — использовать
less
и внутри него grep
-подобный поиск:
less +F access.log
А затем нажать
/500
— и перейти по найденным совпадениям. Работает быстро, особенно на больших логах.А если хочется реального профита, то вот мой любимый трюк:
grep -E "500|502|503" access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head
Что делает эта команда:
- Ищет ошибки 500/502/503
- Извлекает IP-адреса (предположим, это первое поле)
- Считает, сколько раз каждый IP дал ошибку
- Показывает топ атакующих/плохих клиентов
Эта команда — мини-аналитика в одну строку. Часто помогает сразу понять, где проблема.
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍8
🚀 Netplan: быстрая настройка второго IP на интерфейсе
Нужно добавить второй адрес без простоя? Netplan справится за пару секунд.
1. Редактируем конфиг:
2. Применяем изменения без перезагрузки:
3. Проверяем:
Зачем так?
– Удобно для быстрого тестирования сервисов.
– Применяется атомарно (не рвёт соединения).
– Работает одинаково в Ubuntu/Debian с Netplan.
⚠️ Трюк: можно применить временно:
- изменения откатятся, если не подтвердить за 120 сек.
Сохрани себе — выручит, когда надо быстро поднять доп. IP без рестарта сети.
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
Нужно добавить второй адрес без простоя? Netplan справится за пару секунд.
1. Редактируем конфиг:
# /etc/netplan/01-netcfg.yaml
network:
version: 2
ethernets:
ens33:
addresses:
- 192.168.1.10/24
- 192.168.1.20/24 # ← второй IP
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 1.1.1.1]
2. Применяем изменения без перезагрузки:
netplan apply
3. Проверяем:
ip a show ens33
Зачем так?
– Удобно для быстрого тестирования сервисов.
– Применяется атомарно (не рвёт соединения).
– Работает одинаково в Ubuntu/Debian с Netplan.
⚠️ Трюк: можно применить временно:
netplan try
- изменения откатятся, если не подтвердить за 120 сек.
Сохрани себе — выручит, когда надо быстро поднять доп. IP без рестарта сети.
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍4
ss
вместо netstat
: быстрое выявление зависших соединенийnetstat
устарел, а вот ss
работает быстрее и даёт больше деталей.Полезно, когда сервер "подвис" на куче TCP-сессий.
Базовые приёмы:
1. Все активные TCP-соединения:
ss -tuna
(
-t
TCP, -u
UDP, -n
без DNS, -a
все сокеты)2. Сортировка по количеству соединений с IP:
ss -tan | awk '{print $6}' | sort | uniq -c | sort -nr | head
→ Быстро видим топ-источники трафика.
3. Состояния TCP (например, зависшие TIME-WAIT):
ss -tan state time-wait
4. Отбор по порту:
ss -tan sport = :443
Зачем?
– Диагностика DDoS / "залипших" коннектов.
– Поиск проблемных клиентов.
– Быстрая альтернатива
netstat
без лишних зависимостей.👉
ss -p
— сразу показывает PID процесса, владеющего сокетом.Проверь свой сервер — удивишься количеству "мертвых" коннектов.
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍3
🚀 Быстрый способ ограничить скорость на интерфейсе с
Иногда нужно временно урезать пропускную способность - тест, симуляция плохого канала, защита от перегрузки. Делается это без лишних пакетов - встроенным Traffic Control.
Пример: ограничим eth0 до 10 Мбит/с
🔹 rate - целевая скорость.
🔹 burst - размер «рывка» (буфер), лучше 2–3× MTU.
🔹 latency - допустимая задержка очереди.
📌 Проверка:
📌 Сброс:
💡 Когда полезно:
- тестирование поведения приложений при низкой скорости;
- эмуляция 3G/4G-сетей;
- временное сдерживание исходящего трафика при ddos/backup.
Сохрани, пригодится.
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
tc
Иногда нужно временно урезать пропускную способность - тест, симуляция плохого канала, защита от перегрузки. Делается это без лишних пакетов - встроенным Traffic Control.
Пример: ограничим eth0 до 10 Мбит/с
# Очистить старые правила
tc qdisc del dev eth0 root 2>/dev/null
# Добавить qdisc с ограничением
tc qdisc add dev eth0 root tbf rate 10mbit burst 32kbit latency 400ms
🔹 rate - целевая скорость.
🔹 burst - размер «рывка» (буфер), лучше 2–3× MTU.
🔹 latency - допустимая задержка очереди.
📌 Проверка:
tc -s qdisc show dev eth0
📌 Сброс:
tc qdisc del dev eth0 root
💡 Когда полезно:
- тестирование поведения приложений при низкой скорости;
- эмуляция 3G/4G-сетей;
- временное сдерживание исходящего трафика при ddos/backup.
Сохрани, пригодится.
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
❤3👍1
🔥 iptables: быстрое логирование и дроп подозрительных пакетов
Иногда нужно понять, что именно ломится в сервер, но без спама в
Минимальный рабочий набор:
Где смотреть логи:
-
- или
💡 Best practice:
- Используйте
- Для массового анализа можно отправлять в
Сохрани — пригодится, если нужно быстро вычислить мусорный трафик и отрезать его 🚫
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
Иногда нужно понять, что именно ломится в сервер, но без спама в
dmesg
.Минимальный рабочий набор:
# 1. Создаём цепочку для логирования
sudo iptables -N LOG_DROP
# 2. Логируем с ограничением частоты (1 сообщение/сек)
sudo iptables -A LOG_DROP -m limit --limit 1/second -j LOG \
--log-prefix "[FW DROP] " --log-level 4
# 3. Дропаем пакет
sudo iptables -A LOG_DROP -j DROP
# 4. Применяем к подозрительному трафику (пример: TCP 23)
sudo iptables -A INPUT -p tcp --dport 23 -j LOG_DROP
Где смотреть логи:
-
journalctl -k -f
- или
/var/log/kern.log
(Debian/Ubuntu)💡 Best practice:
- Используйте
-m limit
, чтобы не утопить систему в логах- Для массового анализа можно отправлять в
rsyslog
с отдельным тегомСохрани — пригодится, если нужно быстро вычислить мусорный трафик и отрезать его 🚫
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍3❤1
🚀 Быстрый контроль за соединениями через
Когда нужно понять, кто держит соединение, какой порт занят или где «течёт» трафик —
Пример: найти все процессы, слушающие порты TCP
Активные установленные соединения:
Отфильтровать по порту:
💡
Когда применять:
- диагностика зависших сервисов
- поиск «висящих» соединений
- аудит входящих/исходящих подключений
Сохрани, пригодится.
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
ss
Когда нужно понять, кто держит соединение, какой порт занят или где «течёт» трафик —
ss
быстрее и информативнее, чем устаревший netstat
.Пример: найти все процессы, слушающие порты TCP
ss -ltnp
-l
— только прослушивающие сокеты-t
— TCP-n
— не пытаться резолвить имена-p
— показать PID/имя процессаАктивные установленные соединения:
ss -tn state established
Отфильтровать по порту:
ss -tn sport = :443
💡
ss
может фильтровать по состояниям, адресам и портам прямо в команде — это экономит время при отладке сетевых проблем и поиске подозрительных подключений.Когда применять:
- диагностика зависших сервисов
- поиск «висящих» соединений
- аудит входящих/исходящих подключений
Сохрани, пригодится.
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍5❤2
🔥 net.ipv4.conf.all.rp_filter - твой тихий телохранитель от IP spoofing
Многие админы забывают, что rp_filter в Linux может спасти от подмены IP пакетов, но при кривой настройке ломает сложные маршруты.
Проверка:
Значения:
-
-
-
Безопасная настройка для большинства серверов:
Для сложных схем с несколькими WAN:
Применить навсегда:
💡 Когда включать strict (1) - одиночный WAN, простая маршрутизация.
💡 Когда loose (2) - мульти-WAN, policy routing, сложные VPN-топологии.
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
Многие админы забывают, что rp_filter в Linux может спасти от подмены IP пакетов, но при кривой настройке ломает сложные маршруты.
Проверка:
sysctl net.ipv4.conf.all.rp_filter
sysctl net.ipv4.conf.default.rp_filter
Значения:
-
0
- фильтр выключен-
1
- строгий режим (пакет отбрасывается, если обратный маршрут не совпадает с интерфейсом входа)-
2
- «loose mode» (разрешает асимметричную маршрутизацию, но всё ещё фильтрует spoof)Безопасная настройка для большинства серверов:
sysctl -w net.ipv4.conf.all.rp_filter=1
sysctl -w net.ipv4.conf.default.rp_filter=1
Для сложных схем с несколькими WAN:
sysctl -w net.ipv4.conf.all.rp_filter=2
sysctl -w net.ipv4.conf.default.rp_filter=2
Применить навсегда:
cat >> /etc/sysctl.conf <<EOF
net.ipv4.conf.all.rp_filter=1
net.ipv4.conf.default.rp_filter=1
EOF
sysctl -p
💡 Когда включать strict (1) - одиночный WAN, простая маршрутизация.
💡 Когда loose (2) - мульти-WAN, policy routing, сложные VPN-топологии.
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍2