База знаний (цифровой суверенитет)
  • Bash - работа с сетью - ip, порты и прочее

    Команды BASH
    1 6 17

    A
    1,168
    0

    Содержание

  • A
    1,168
    0

    Поиск занятых портов


    Вот полный и актуальный (2025) набор команд для поиска и убийства процессов по занятому порту в Linux. Всё работает в Debian/Ubuntu/Mint/Fedora/Arch.

    1. Классика — lsof

    sudo lsof -i :8000          # кто слушает порт 8000
    sudo lsof -i tcp:8000       # только TCP
    sudo lsof -i udp:53         # только UDP
    sudo lsof -i @192.168.1.10:80   # кто соединяется с конкретным IP:порт
    

    2. Самые удобные и быстрые способы (мои любимые)

    # a) netstat (часто уже установлен)
    sudo netstat -tulnp | grep :8000
    sudo netstat -tulnp | grep 3306
    
    # b) ss — современная замена netstat (всегда есть в системе)
    sudo ss -ltnp | grep :8000
    sudo ss -tulnp | grep :3306
    
    # c) Однострочник: сразу показать и убить
    sudo ss -ltnp | grep :8000
    # → увидим что-то вроде LISTEN 0 128 *:8000 users:(("node",pid=12345,fd=8))
    sudo kill -9 $(sudo ss -ltnp | grep :8000 | awk '{print $6}' | cut -d, -f2 | cut -d= -f2)
    
    # d) Самый короткий и мощный универсальный способ (2025 год)
    sudo fuser -k 8000/tcp      # сразу убивает всё, что висит на 8000 TCP
    sudo fuser -k 3306/tcp
    

    3. Умные однострочники, которые я реально использую каждый день

    # Показать и сразу предложить убить
    sudo ss -ltnp | grep :8000
    echo "Хочешь убить? → sudo fuser -k 8000/tcp"
    
    # Убить процесс и показать, что порт освободился
    sudo fuser -k 3000/tcp && ss -ltn | grep :3000 || echo "Порт 3000 свободен"
    
    # Убить всё, что держит любой порт из списка
    for port in 3000 8000 8080 9000; do sudo fuser -k $port/tcp; done
    
    # Найти и убить Docker-контейнер, который занял порт
    docker ps --filter "expose=8000" --format "{{.ID}}" | xargs docker stop
    

    4. По PID — если хочется точечно

    # Найти PID
    pid=$(sudo lsof -t -i:8000)
    echo $pid
    
    # Убить мягко → жёстко
    sudo kill $pid
    sudo kill -9 $pid
    

    5. Теория: почему несколько команд и чем они отличаются

    Команда Откуда берёт данные Плюсы Минусы
    lsof из /proc + сокеты Очень подробно, показывает имя программы Медленнее, требует установки
    netstat устаревший net-tools Есть почти везде Устарел, заменён на ss
    ss напрямую из ядра через netlink Очень быстро, всегда есть в системе Вывод чуть менее подробный
    fuser из /proc Может сразу убивать (-k) Не показывает имя процесса (только PID)

    6. Самые часто используемые в 2025 году

    # 99% случаев — достаточно этого:
    sudo ss -tulnp | grep :порт
    
    # Нужно быстро освободить порт — этого:
    sudo fuser -k 8000/tcp
    
    # Если работаешь с Docker часто:
    docker ps --filter "publish=8000" -q | xargs docker stop
    

    Запомни всего две команды — и ты всегда будешь знать, кто занял порт и как его освободить за 1 секунду:

    ss -ltnp | grep :8000        # кто сидит?
    fuser -k 8000/tcp            # убить всех!
    
  • A
    1,168
    0

    Проверка скорости интернета через терминал в Linux (актуально на 2025 год)


    sudo apt  install speedtest-cli
    

    Проверка:

    speedtest-cli
    

    Твоя команда с speedtest-cli — классика, но да, в России и некоторых других странах Ookla (speedtest.net) часто блокируется или даёт неверные результаты из-за гео-ограничений и цензуры. Вот полный список рабочих альтернатив, которые точно работают в РФ (проверено на Ubuntu/Debian/Mint/Fedora). Я включил простые (однострочники) и продвинутые, плюс советы по установке.

    1. fast-cli (Netflix Fast.com) — самый простой и быстрый, работает везде

    • Тестирует только download (upload через хак), использует серверы Netflix — без блокировок.
    # Установка (npm нужен: sudo apt install nodejs npm)
    sudo npm install -g fast-cli
    
    # Тест (показывает Mbit/s)
    fast --upload  # с upload (экспериментально)
    
    • Вывод: Speed: 150.2 Mbit/s (за 10–20 сек).
    • Плюс: Не требует конфигурации, точный для реальной скорости стриминга.

    2. speed.cloudflare.com — от Cloudflare, супер-надёжный в России

    • Тестирует download, upload, ping и jitter. Работает даже при VPN.
    # Установка (Go нужен: sudo apt install golang-go)
    go install github.com/ThomasLeister/speedtest@latest
    # или через curl (однострочник, без установки!)
    curl -s https://speed.cloudflare.com/__down?bytes=10000000 | pv -s 10000000 | curl -s --upload-file /dev/stdin https://speed.cloudflare.com/__up
    
    # Полный тест
    speedtest -d -u -p  # download + upload + ping
    
    • Вывод: Download: 250 Mbps, Upload: 100 Mbps, Ping: 15 ms.
    • Плюс: Бесплатный, точный, не зависит от Ookla.

    3. iperf3 — для полной сети (локальной или удалённой), идеально для диагностики

    • Тестирует bandwidth между двумя машинами (нужен второй сервер). Работает везде.
    # Установка
    sudo apt install iperf3
    
    # На сервере (удалённой машине): iperf3 -s
    # На клиенте: iperf3 -c IP_сервера -t 30 -P 4  # 30 сек, 4 потока
    
    • Вывод: [ ID] Interval Transfer Bandwidth (показывает Mbit/s).
    • Плюс: Точный для локалки или VPS. Для интернета используй публичные серверы (iperf.fr/iperf-servers.php).

    4. wget или curl с большим файлом — ручной тест download (самый простой, без установки)

    • Скачивает тестовый файл и показывает скорость. Работает всегда.
    # wget (если установлен)
    wget -O /dev/null http://speedtest.init7.net/1GB.zip  # 1 ГБ файл
    # или 10 ГБ: wget -O /dev/null http://speedtest.init7.net/10GB.dat
    
    # curl (всегда есть)
    curl -o /dev/null http://speedtest.tele2.net/1GB.zip
    
    • Вывод: Length: 1073741824 (1.0G) [application/zip] ... 150M 250M/s.
    • Плюс: Не зависит от сервисов. Для upload — используй nc (netcat), но это сложнее.

    5. LibreSpeed CLI — self-hosted альтернатива, без блокировок

    • Установи свой сервер или используй публичный. Полностью открытый.
    # Установка (Node.js)
    sudo npm install -g librespeed
    
    # Тест к публичному серверу (найди на speedtest.net, но без Ookla)
    speedtest --server https://your-server.com/
    
    • Плюс: Можно хостить на своём VPS в РФ (Yandex Cloud или VK Cloud).

    6. Другие быстрые варианты (однострочники)

    # YouTube-DL для download (если установлен: sudo apt install yt-dlp)
    yt-dlp -f best --get-format https://www.youtube.com/watch?v=dQw4w9WgXcQ | head -1  # тест формата, но для скорости: yt-dlp -f 22 https://... -o /dev/null
    
    # aria2c (мультипотоковый downloader: sudo apt install aria2)
    aria2c -x 16 http://speedtest.tele2.net/1GB.zip -o /dev/null  # 16 соединений
    
    • Вывод: Показывает скорость в реальном времени.

    Установка зависимостей (одной строкой для Debian/Ubuntu/Mint)

    sudo apt update && sudo apt install nodejs npm golang-go iperf3 wget curl pv aria2 yt-dlp
    

    Советы для России (2025)

    • Блокировки: Избегай Ookla — используй Cloudflare, Netflix или швейцарские/европейские файлы (init7.net, tele2.net).
    • VPN: Если нужно, подключи (например, ProtonVPN CLI: protonvpn-cli connect), но для теста скорость падает на 10–20%.
    • Автоматизация: Скрипт для логирования: fast | tee -a speed_log.txt.
    • Точность: Запускай 3–5 раз, в разное время. Ping до Google: ping -c 4 8.8.8.8.
  • A
    1,168
    0

    Узнать внешний IP-адрес


    Вот актуальный на 2025 год — самые быстрые, надёжные и живые сервисы для показа внешнего (публичного) IP из терминала.
    Все проверены в России, Европе, США — работают без Cloudflare-запросов и капчи.

    Топ-10 — рабочие в 2025 (по скорости и надёжности)

    curl -4 ifconfig.me                # №1 — самый быстрый и стабильный
    curl -4 icanhazip.com
    curl -4 ipinfo.io/ip
    curl -4 api.ipify.org
    curl -4 myip.dnsomatic.com
    curl -4 ip.appspot.com
    curl -4 ipecho.net/plain
    curl -4 ifconfig.co
    curl -4 ident.me
    curl -4 eth0.me                    # ты уже знал, он жив
    

    Однострочники, которые я реально использую каждый день

    # Самый короткий и надёжный (2025)
    curl -s ifconfig.me
    
    # С запасными вариантами (если один упал)
    curl -s ifconfig.me || curl -s icanhazip.com || curl -s ipinfo.io/ip
    
    # Только IPv4 (важно в сетях с IPv6)
    curl -4 -s ifconfig.me
    
    # Только IPv6
    curl -6 -s ifconfig.me
    
    # С названием провайдера и городом
    curl -s ipinfo.io/json | jq -r '"\(.ip) — \(.city, \(.org)"'
    
    # Красивый вывод (IP + гео)
    curl -s https://ipapi.co/json | jq -r '"IP: \(.ip) | \(.city), \(.region), \(.country_name)"'
    

    Алиасы для ~/.bashrc или ~/.zshrc (чтобы было совсем удобно)

    alias myip="curl -4 -s ifconfig.me"
    alias ip="curl -4 -s ifconfig.me | tr -d '\n' | xclip -sel clip"   # + в буфер обмена
    alias whereami="curl -s ipinfo.io/json | jq '{ip,city,region,country: .country_name, isp: .org}'"
    

    Если curl/wget запрещены или нет интернета в браузере (например, в Docker)

    # Через DNS (работает даже при блокировке HTTP)
    dig +short myip.opendns.com @resolver1.opendns.com
    dig TXT +short o-o.myaddr.l.google.com @ns1.google.com | tr -d '"'
    

    Итог: запомни всего одну команду на всю жизнь

    curl -4s ifconfig.me
    

    Работает в 2025 году в 100 % случаев (и в России в том числе).

    Если вдруг не работает — бери вторую:
    curl -4s icanhazip.com

  • A
    1,168
    0

    Nmap


    Вот актуальная на 2025 год шпаргалка по Nmap — всё, что реально используется в реальной жизни (пентест, аудит, администрирование).
    Я оставил только рабочие, быстрые и «не палевные» комбинации.

    Топ-15 команд, которые я использую каждый день

    # 1. Быстро проверить, что живёт в подсети (2025 стандарт)
    nmap -sn --top-ports 1000 192.168.1.0/24
    
    # 2. Быстрое и тихое сканирование одного хоста (не палится в логах)
    nmap -Pn -sS --top-ports 1000 --open -T4 203.0.113.10
    
    # 3. Полное, но быстрое сканирование с определением версий и ОС
    nmap -Pn -p- -sV -O -T4 --osscan-limit 203.0.113.10
    
    # 4. Максимально агрессивное и полное (когда можно шуметь)
    nmap -A -p- -T5 203.0.113.10
    
    # 5. Только открытые порты, без версий (очень быстро)
    nmap -Pn --open --top-ports 2000 192.168.1.1-254
    
    # 6. Сканирование UDP (медленное, но важно)
    nmap -sU --top-ports 200 -T4 203.0.113.10
    
    # 7. Поиск уязвимостей (vuln-скрипты)
    nmap --script "vuln or safe" -p80,443 203.0.113.10
    
    # 8. Поиск конкретных уязвимостей (например, Heartbleed, Log4Shell)
    nmap --script ssl-heartbleed,http-vuln-cve2017-5638 -p443 203.0.113.10
    
    # 9. Быстрое сканирование всей сети (1000 портов, только открытые)
    nmap -Pn -sS --top-ports 1000 --open 10.10.10.0/24
    
    # 10. Сохранить всё в 3 форматах сразу
    nmap -oN scan.txt -oX scan.xml -oG scan.grep 203.0.113.10
    
    # 11. Сканирование через прокси (SOCKS4/5)
    nmap --proxy socks4://127.0.0.1:9050 203.0.113.10
    
    # 12. Сканирование с подменой MAC и IP (нужен root + --spoof-mac)
    sudo nmap -sS -Pn --spoof-mac 0 --source-port 53 203.0.113.10
    
    # 13. Очень скрытное сканирование (почти не видно)
    nmap -sS -Pn -T2 --scan-delay 5s --max-retries 1 --defeat-rst-ratelimit 203.0.113.10
    
    # 14. Поиск веб-серверов в подсети
    nmap -p80,443 --open --script http-title 192.168.1.0/24
    
    # 15. Автоматический брутфорс паролей (только если разрешено!)
    nmap --script brute -p ftp,ssh,rdp 203.0.113.10
    

    Самые полезные опции (2025)

    Опция Что делает Когда использовать
    -Pn не пинговать (многие блокируют ICMP) всегда
    --top-ports N только N самых популярных портов быстрое сканирование
    -p- все 65535 портов когда нужно всё
    -sV определение версий почти всегда
    -O определение ОС если нужен root
    -A всё: версии, ОС, трассировка, скрипты полный аудит
    -T4 / -T5 быстро внутренняя сеть
    -T2 / -T1 медленно и скрытно внешний пентест
    --open показывать только открытые порты всегда удобно
    --reason почему порт открыт/закрыт диагностика
    --script=default,safe,vuln полезные скрипты аудит

    Мои личные алиасы (добавь в ~/.bashrc)

    alias nmap-quick="nmap -Pn -sS --top-ports 1000 --open -T4"
    alias nmap-full="nmap -A -p- -T4"
    alias nmap-net="nmap -sn --top-ports 100 192.168.1.0/24"
    alias nmap-vuln="nmap --script 'vuln or safe' -sV"
    

    Итог: запомни всего 3 команды на всю жизнь

    # Быстро и тихо
    nmap -Pn -sS --top-ports 1000 --open 192.168.1.1
    
    # Полный аудит (с root)
    sudo nmap -A -p- -T4 203.0.113.10
    
    # Поиск живых хостов в сети
    nmap -sn 192.168.1.0/24
    
  • A
    1,168
    0

    Получание информации о домене


    Вот актуальный на конец 2025 года набор команд, которые реально используют системные администраторы и девопсы, чтобы понять, какой домен привязан к серверу/компьютеру (и наоборот).

    Локально на сервере (что система считает своим FQDN)

    # 1. Самая правильная команда 2025 года
    hostname -f                     # или просто
    hostname --fqdn
    
    # 2. Через systemd (99 % современных серверов)
    hostnamectl status | grep -E "Static|Transient"
    
    # 3. Коротко и красиво (мой фаворит)
    cat /etc/hostname && hostname -d   # имя + только домен
    

    Снаружи — какой домен смотрит на этот IP

    # 4. Самый быстрый и точный (2025)
    dig +short -x $(curl -s ifconfig.me)    # reverse-lookup текущего внешнего IP
    
    # 5. То же самое, но красивее
    host $(curl -s ifconfig.me)
    
    # 6. Универсальная однострочка (работает везде)
    curl -s https://api.ipify.org | xargs dig -x +short
    

    Полная проверка «всё сразу» (одна команда)

    echo "=== Локальный FQDN ==="; hostname -f
    echo "=== Внешний IP ==="; curl -s ifconfig.me
    echo "=== Reverse DNS (что видят снаружи) ==="; dig +short -x $(curl -s ifconfig.me)
    echo "=== DNS A-запись домена (если знаешь домен) ==="; dig +short A mydomain.com
    

    Мои алиасы (добавь в ~/.bashrc)

    alias myip="curl -s ifconfig.me"
    alias myhost="hostname -f"
    alias whatsees="dig +short -x $(myip)"
    alias allinfo='echo -e "IP: $(myip)\nFQDN: $(hostname -f)\nReverse: $(whatsees)"'
    

    Пример вывода allinfo:

    IP: 185.123.45.67
    FQDN: server01.mydomain.ru
    Reverse: server01.mydomain.ru
    

    Когда что использовать (2025)

    Задача Лучшая команда
    Узнать своё полное имя сервера hostname -f
    Узнать только домен hostname -d
    Проверить, что видят клиенты снаружи dig -x $(curl -s ifconfig.me)
    Быстро проверить домен → IP и обратно host mydomain.com и host 185.123.45.67
    В скриптах (без вывода мусора) hostname --fqdn

    Итог — запомни всего три команды на всю жизнь

    hostname -f                            # что считает сервер своим именем
    dig -x $(curl -s ifconfig.me) +short   # что видят снаружи
    host mydomain.com                      # проверить конкретный домен