ncat: netcat из проекта Nmap

Классический nc (netcat) умеет слушать порт и коннектиться, но для шифрования приходится городить отдельный TLS-туннель поверх. Ncat — реализация той же идеи от команды Nmap, где SSL встроен прямо во флаги, без openssl s_client или stunnel сбоку. Слушатель и подключение — тот же минимализм, что у nc: ncat -l 4444 # слушать на порту 4444 ncat host.example 4444 # подключиться Разница начинается там, где классическому netcat нужна дополнительная обвязка. Шифрованное соединение — один флаг на обеих сторонах: ...

October 14, 2026 · llexa

WireGuard: несколько пиров и живой NAT

В конфиге WireGuard с одним пиром AllowedIPs легко принять за обычный allow-list — какие адреса пустить через туннель. Как только пиров становится несколько, выясняется, что это ещё и таблица маршрутизации: ядро смотрит на AllowedIPs каждого пира и решает, какому из них отправить исходящий пакет, по той же логике longest-prefix-match, что и обычный роутинг. [Interface] PrivateKey = <приватный ключ сервера> ListenPort = 51820 [Peer] PublicKey = <публичный ключ клиента1> AllowedIPs = 10.192.122.3/32, 10.192.124.0/24 [Peer] PublicKey = <публичный ключ клиента2> AllowedIPs = 10.192.122.4/32, 192.168.0.0/16 Если диапазоны двух пиров пересекаются, сервер отдаст пакет тому, у кого совпадение точнее (более узкая маска), а не тому, кто добавлен раньше в конфиг. На практике это всплывает, когда забыли сузить AllowedIPs второго клиента, и его широкий 192.168.0.0/16 неожиданно перетягивает трафик, который должен был уйти по более специфичному маршруту первого. ...

October 13, 2026 · llexa

ethtool: диагностика сетевой карты без похода в BIOS

ethtool — первое, что стоит запустить, когда интерфейс “вроде работает, но как-то медленно”. Голый вызов без флагов показывает текущий режим линка: ethtool eth0 В выводе важны три строки: Speed (реальная согласованная скорость — не всегда совпадает с паспортной скоростью карты), Duplex (full/half — half duplex на современной проводной сети почти всегда означает проблему согласования) и Link detected: yes/no (физически ли подключен кабель, независимо от того, что показывает ip link). ...

October 12, 2026 · llexa

tc: ограничиваем скорость интерфейса из командной строки

tc из пакета iproute2 управляет qdisc (queueing discipline) интерфейса — очередью, через которую проходит исходящий трафик перед отправкой в сеть. По умолчанию на большинстве интерфейсов стоит pfifo_fast — обычная очередь без ограничений, пакеты уходят так быстро, как успевает железо. ...

October 12, 2026 · llexa

nginx: ограничение числа соединений через limit_conn

limit_req режет частоту запросов в секунду, а limit_conn в nginx решает другую задачу — ограничивает, сколько соединений с одного ключа (обычно IP) может быть открыто одновременно. Это разные лимиты, и путать их не стоит: клиент может укладываться в лимит запросов в секунду и всё равно держать десятки параллельных закачек с одного адреса. http { limit_conn_zone $binary_remote_addr zone=addr:10m; server { location /download/ { limit_conn addr 1; } } } Здесь на один IP разрешено одно одновременное соединение с /download/ — типичный кейс для раздачи файлов, где важно не количество запросов в секунду, а то, сколько параллельных закачек тянет один клиент. При превышении лимита nginx по умолчанию отвечает 503, код меняется через limit_conn_status. ...

October 6, 2026 · llexa

ss: смотрим сокеты без netstat

netstat на многих дистрибутивах уже даже не ставится по умолчанию — вместо него ss из пакета iproute2. Читает состояние сокетов напрямую из netlink, а не построчно парсит /proc/net/tcp — на хосте с тысячами соединений разница в скорости заметна на глаз. ...

September 29, 2026 · llexa

iperf3: тест пропускной способности сети

iperf3 — клиент-серверный тест пропускной способности. Один хост — сервер, второй — клиент. # На сервере iperf3 -s # На клиенте iperf3 -c 192.168.10.1 # TCP-тест (10 сек по умолчанию) iperf3 -c 192.168.10.1 -t 30 # 30 секунд iperf3 -c 192.168.10.1 -P 4 # 4 параллельных потока iperf3 -c 192.168.10.1 -R # реверс: сервер → клиент UDP — для проверки jitter и потерь (актуально для VoIP и tunnel-трафика): iperf3 -c 192.168.10.1 -u -b 500M # UDP, ограничение 500 Mbit/s Итог выглядит так: ...

July 2, 2026 · llexa

traceroute и tracepath: маршрут до хоста

traceroute отправляет пакеты с нарастающим TTL — каждый роутер на пути отвечает ICMP Time Exceeded, так строится маршрут. traceroute -n google.com # без DNS-резолвинга, быстрее traceroute -T -p 443 google.com # TCP SYN вместо UDP — проходит через файрволы traceroute -I google.com # ICMP echo (нужен root) tracepath google.com # без root, находит MTU на каждом сегменте tracepath не требует root и параллельно определяет MTU пути (PMTUD) — полезно при проблемах с фрагментацией пакетов. Если нужен непрерывный мониторинг маршрута — mtr объединяет оба инструмента в реальном времени. ...

June 30, 2026 · llexa

nginx: ограничение запросов (rate limiting)

limit_req в nginx режет частоту запросов прямо на уровне веб-сервера — без iptables и без отдельного WAF. http { # зона на 10 МБ, лимит — 10 запросов/сек на каждый IP limit_req_zone $binary_remote_addr zone=api:10m rate=10r/s; server { location /api/ { limit_req zone=api burst=20 nodelay; limit_req_status 429; proxy_pass http://backend; } } } burst=20 — разрешает кратковременный всплеск в 20 запросов сверх лимита, nodelay — не ставит их в очередь, а пропускает сразу или режет. Без nodelay лишние запросы притормозятся, а не отклонятся. ...

June 19, 2026 · llexa

WireGuard: VPN за 4 команды

WireGuard — VPN в ядре Linux с версии 5.6: меньше конфига, выше скорость, никакого OpenSSL-оверхеда. # ключи на каждой стороне wg genkey | tee privatekey | wg pubkey > publickey # /etc/wireguard/wg0.conf — сервер [Interface] PrivateKey = <privatekey> Address = 10.0.0.1/24 ListenPort = 51820 [Peer] PublicKey = <publickey-клиента> AllowedIPs = 10.0.0.2/32 # поднять / погасить туннель wg-quick up wg0 wg-quick down wg0 # текущее состояние: handshake, трафик по пирам wg show Автозапуск — systemctl enable wg-quick@wg0. Если сервер должен форвардить трафик дальше в интернет, не забыть net.ipv4.ip_forward=1 в sysctl и MASQUERADE в nftables/iptables. ...

June 19, 2026 · llexa