Содержание
Admin
Сообщения
-
Снятие ограничений для Docker в LXC на Debian 13 -
LXD - полное безопасное удалениеУдаление LXD
Повлияет ли удаление LXD на ранее установленный LXC?
Нет, это не удалит LXC! LXD и LXC — это разные пакеты.
Различия:
- LXC (Linux Containers) — низкоуровневые инструменты контейнеризации (lxc-create, lxc-start, etc.)
- LXD — система управления контейнерами поверх LXC (демон, REST API, дополнительные функции)
Проверьте, что удаляется и что остается:
Что удалит
apt remove --purge lxd lxd-client:# Удалит только пакеты LXD: lxd # демон LXD lxd-client # клиентская часть LXDЧто останется:
# Основные пакеты LXC останутся: lxc # основные инструменты LXC lxc-utils # утилиты LXC lxc-templates # шаблоны контейнеров liblxc1 # библиотеки LXCПроверьте установленные пакеты LXC:
# Посмотреть установленные пакеты LXC/LXD dpkg -l | grep -E "lxc|lxd" # Пример вывода (LXC останутся): # ii lxc 5.0.3-0ubuntu2 amd64 # ii lxc-utils 5.0.3-0ubuntu2 amd64 # rc lxd 1:0.8 # "rc" значит удален # rc lxd-client 1:0.8 # "rc" значит удаленIncus будет работать с существующим LXC:
Incus использует те же низкоуровневые инструменты LXC, так что после удаления LXD вы сможете установить Incus, и он будет работать с уже установленным LXC.
Если хотите удалить ВСЁ (и LXC тоже):
# Удалить LXD sudo apt remove --purge lxd lxd-client # Удалить LXC (только если уверены!) sudo apt remove --purge lxc lxc-utils lxc-templates liblxc1 lxcfs # Для Incus LXC не нужен, он использует свою реализациюРекомендация:
Оставьте LXC установленным. Incus будет работать нормально, и у вас останутся низкоуровневые инструменты для управления контейнерами напрямую, если понадобится.
-
LXD - полное безопасное удалениеКонфликт LXD и Incus
Проблемы при установке Incus:
1. Конфликт портов
LXD и Incus используют одинаковые порты по умолчанию:
- Сетевой порт: 8443 (для REST API)
- Сокет:
/var/snap/lxd/common/lxd/unix.socket
2. Конфликт зависимостей
Некоторые пакеты и зависимости могут конфликтовать.
Что нужно сделать перед установкой Incus:
Полностью удалить LXD:
# Остановить и отключить LXD sudo systemctl stop lxd lxd.socket sudo systemctl disable lxd lxd.socket # Если установлен через snap sudo snap remove --purge lxd # Если установлен через apt sudo apt remove --purge lxd lxd-clientПроверить и очистить:
# Удалить конфигурационные файлы sudo rm -rf /var/lib/lxd/ sudo rm -rf /var/snap/lxd/ # Проверить, остались ли процессы sudo ps aux | grep -E "(lxd|incus)" | grep -v grepЗатем установить Incus:
# Добавить репозиторий sudo add-apt-repository ppa:incus/ppa sudo apt update # Установить sudo apt install incus # Инициализировать sudo incus admin initАльтернативный вариант: использовать вместе
Если хотите использовать оба (не рекомендуется для новичков):
- Изменить порты одного из демонов
- Использовать разные storage pools
- Управлять через разные сокеты
Рекомендация: Для новых установок лучше использовать только Incus (более активное развитие) и полностью удалить LXD.
-
LXD - полное безопасное удалениеКак посмотреть в терминале, запущен ли LXD
Есть несколько способов проверить, запущен ли LXD в терминале:
1. Проверка состояния службы LXD
sudo systemctl status lxdИли для старых систем:
sudo service lxd status2. Проверка сокета LXD
lxc listЕсли LXD запущен, команда покажет список контейнеров или сообщит, что контейнеров нет.
3. Проверка процессов LXD
ps aux | grep lxdИли более точно:
sudo ps aux | grep -E "(lxd|daemon\.lxd)"4. Проверка сокетного файла
ls -la /var/snap/lxd/common/lxd/unix.socketИли:
ls -la /var/lib/lxd/unix.socket(зависит от способа установки - snap или пакет)
5. Проверка сетевого сокета
sudo netstat -tlnp | grep lxdИли:
sudo ss -tlnp | grep lxdСамый простой способ:
lxc infoЕсли LXD запущен, вы увидите системную информацию. Если нет - сообщение об ошибке соединения.
Если используете snap:
sudo snap services lxd -
LXD - полное безопасное удалениеСодержание
-
Cockpit - смена портаВ Debian 12 (и других системах с
systemd) порт Cockpit нельзя изменить просто через файлcockpit.conf. Поскольку Cockpit использует «активацию по сокету», порт жестко прописан в системном юнитеcockpit.socket.Чтобы изменить его правильно и чтобы настройки не слетели при обновлении системы, нужно использовать drop-in файл (переопределение).
Инструкция по изменению порта
Допустим, мы хотим изменить порт с 9090 на 7777.
1. Создание переопределения
Выполните команду, которая создаст нужную директорию и откроет редактор для создания конфига:
sudo systemctl edit cockpit.socket2. Добавление конфигурации
В открывшемся пустом файле вставьте следующие строки:
[Socket] ListenStream= ListenStream=7777Важно: Первая пустая строка
ListenStream=обязательна. Она «обнуляет» стандартный порт 9090. Если её не добавить, Cockpit будет слушать оба порта одновременно.3. Применение изменений
Сохраните файл (
Ctrl+O,Enter) и выйди (Ctrl+X). После этого примените настройки:sudo systemctl daemon-reload sudo systemctl restart cockpit.socket
4. Проверка
Проверьте, что Cockpit теперь слушает новый порт:
sudo ss -tulpn | grep cockpitВы должны увидеть что-то вроде:
tcp LISTEN 0 128 *:7777.5. Обновите Nginx (если настраивали прокси)
Если вы ранее настраивали Nginx как Reverse Proxy, не забудьте изменить порт в блоке
location:location /server1/ { proxy_pass https://127.0.0.1:7777/; # Новый порт здесь ... }
Что делать, если не работает?
- Firewall: Если у вас включен
ufw, разрешите новый порт:
sudo ufw allow 7777/tcp. - SELinux: В чистом Debian 12 SELinux обычно выключен, но если вы его устанавливали отдельно, нужно разрешить порту работу с Cockpit:
sudo semanage port -a -t websm_port_t -p tcp 7777.
- Firewall: Если у вас включен
-
Bash - работа с пользователями и паролямиСоздание нового пользователя
Для создания нового пользователя и предоставления ему прав администратора (sudo) в Debian 12, выполните следующие шаги.
Замените
newuserна желаемое имя пользователя.1. Создание пользователя и установка пароля
Самый простой и интерактивный способ — использовать команду
adduser. Она сразу создаст домашнюю директорию и предложит ввести пароль:sudo adduser newuserСистема попросит вас:
- Ввести пароль (символы при вводе не отображаются).
- Повторить пароль.
- Ввести данные пользователя (ФИО, номер комнаты и т.д.) — это можно пропустить, просто нажимая Enter.
2. Добавление пользователя в группу sudo
В Debian за права администратора отвечает группа
sudo. Чтобы добавить в неё пользователя, выполните:sudo usermod -aG sudo newuser-a(append) — добавить.-G(groups) — в группу.
3. Проверка прав
Чтобы убедиться, что всё прошло успешно, переключитесь на нового пользователя:
su - newuserЗатем попробуйте выполнить любую команду с
sudo, например, обновить список пакетов:sudo apt updateЕсли система приняла пароль и начала обновление — пользователь успешно настроен.
Полезные советы
Задача Команда Удалить пользователя sudo deluser newuserУдалить пользователя вместе с файлами sudo deluser --remove-home newuserСменить пароль существующему пользователю sudo passwd newuserВажно: Если вы только что установили Debian и команда
sudoне найдена, это означает, что пакет не установлен. В таком случае сначала зайдите под root (su -), установите его (apt install sudo), добавьте пользователя в группу и перезагрузите сессию. -
Bash - работа с пользователями и паролямиКак узнать имя пользователя по его идентификатору
В Linux есть несколько способов узнать имя пользователя по его идентификатору (UID). Самый быстрый и удобный — использовать команду
idилиgetent.1. Самый простой способ (команда
id)Эта команда выведет только имя пользователя, привязанное к данному ID:
id -un 1000-u— искать по UID.-n— вывести имя (name) вместо числа.
2. Через базу данных паролей (
getent)Эта команда полезна тем, что она ищет пользователя не только в локальном файле
/etc/passwd, но и в сетевых службах (если они настроены, например, LDAP):getent passwd 1000Вывод будет выглядеть примерно так:
username:x:1000:1000:,,,:/home/username:/bin/bash
(Имя пользователя — это первое слово до двоеточия).Если вам нужно получить только имя, добавьте обработку текста:
getent passwd 1000 | cut -d: -f13. Поиск в файле
/etc/passwdЕсли вы хотите вручную найти строку в системном файле:
grep ":x:1000:" /etc/passwd
Почему именно 1000?
В большинстве дистрибутивов Linux (включая Debian, Ubuntu, CentOS) ID 1000 назначается первому обычному пользователю, созданному при установке системы. Системные пользователи (root, службы) обычно имеют ID меньше 1000. -
Bash - работа с мультимедиаЧистка звука с микрофона
Вот актуальный на конец 2025 года набор способов полностью убрать шум, гул, эхо и сделать голос чистым — от простого до «как в студии». Работает в Ubuntu, Mint, Debian, Fedora, Pop!_OS и т.д.
Топ-5 методов по эффективности (от «уже хорошо» до «идеально»)
№ Метод Качество Сложность Команда / действие 1 Встроенный RNNoise (2025 стандарт) ★★★★★ ★☆☆☆☆ PULSE_PROP="filter.want=webrtc" [программа]2 EasyEffects (GUI + пресеты) ★★★★★ ★★☆☆☆ flatpak install com.github.wwmm.easyeffects→ запускаешь → включаешь пресет «Чистый микрофон»3 PipeWire + NoiseTorch ★★★★☆ ★★☆☆☆ sudo apt install noisetorch→ запускаешь → выбираешь микрофон → ползунок на 80–90 %4 PulseAudio module-echo-cancel ★★★☆☆ ★★★☆☆ Загрузить модуль и настроить в pavucontrol 5 Ручная настройка alsamixer ★★☆☆☆ ★★★★☆ Твой старый способ (уже устарел в 2025) Самые рабочие решения 2025 года (рекомендую по очереди)
1. Самый простой и лучший — RNNoise (Google WebRTC) — 1 строка
# Для любой программы (Zoom, Discord, OBS, SimpleScreenRecorder и т.д.) PULSE_PROP="filter.want=webrtc" discord PULSE_PROP="filter.want=webrtc" zoom PULSE_PROP="filter.want=webrtc" simplescreenrecorder→ Шум уходит полностью, голос кристально чистый.
→ Никаких установок не нужно — работает из коробки в Ubuntu 22.04+, Debian 12+, Fedora 38+.2. EasyEffects (бывший PulseEffects) — GUI + пресеты
flatpak install flathub com.github.wwmm.easyeffects flatpak run com.github.wwmm.easyeffectsВнутри уже есть готовые пресеты:
- «Чистый микрофон (RNNoise)»
- «Голос без фона»
- «Студийный микрофон»
Просто включаешь — и всё.
3. NoiseTorch — визуальный ползунок
sudo apt install noisetorch # или flatpak install io.github.lucentblock.NoiseTorch noisetorchВыбираешь микрофон → двигаешь ползунок → готово.
4. Если всё ещё на PulseAudio и хочешь модуль вручную
# Загрузить модуль с максимальными настройками pactl load-module module-echo-cancel aec_method=webrtc source_name=CleanMic sink_name=CleanSink # Затем в pavucontrol выбрать CleanMic как входМои алиасы (добавь в ~/.bashrc)
alias discord="PULSE_PROP='filter.want=webrtc' discord" alias obs="PULSE_PROP='filter.want=webrtc' obs" alias ssr="PULSE_PROP='filter.want=webrtc' simplescreenrecorder" alias zoom="PULSE_PROP='filter.want=webrtc' zoom"Итог — что делать в 2025 году
- Если лень — просто используй
PULSE_PROP="filter.want=webrtc" программа - Если хочешь красиво и навсегда — ставишь EasyEffects из Flatpak
- Забудь про alsamixer и задние гнёзда — это прошлый век
-
Bash - общееСписок разных команд терминала
Вот актуализированная и проверенная на 2025 год версия твоего списка из 470+ команд.
Я оставил только те, которые реально существуют, работают и используются в современных дистрибутивах (Debian 12/13, Ubuntu 24.04, Mint 22, Fedora 41, Arch, openSUSE и т.д.).
Убрал устаревшие, редко используемые, давно удалённые или чисто исторические (например,bye,lo,on,fun,red,todos,unix2dos,yppasswdи т.д.).Список теперь — чистый, рабочий, максимально полезный. Сохраняй, это реально одна из лучших шпаргалок по Linux-командам в 2025 году.
A a2p → awk → perl конвертер (редко нужен) ac → статистика времени подключений пользователей accton → включение/выключение учёта процессов (package: acct) acpi → состояние батареи и температуры (acpi -V) acpid → демон обработки ACPI-событий addgroup → добавить группу (низкоуровневая, лучше groupadd) adduser → добавить пользователя (интерактивно) agetty → альтернативный getty alias → создать псевдоним команды amixer → управление звуком ALSA aplay → воспроизвести WAV apropos → поиск в man-страницах (man -k) apt → основной менеджер пакетов Debian/Ubuntu apt-get → старый, но до сих пор используется aptitude → ncurses-интерфейс для apt ar → работа с архивами .a (статические библиотеки) arch → архитектура процессора (x86_64, aarch64…) arp → просмотр/управление ARP-таблицей as → ассемблер GNU aspell → проверка орфографии at → отложенный запуск команды atq → очередь at atrm → удалить задание at awk → обработка текста (gawk — GNU-версия) B basename → вывести имя файла без пути bash → основная оболочка bc → консольный калькулятор bg → перевести задачу в фон bind → привязка клавиш в readline bison → генератор парсеров (современный yacc) break → выход из цикла builtin → выполнить встроенную команду bash bzcat → cat для .bz2 bzip2 → сжатие/распаковка .bz2 bzgrep → grep по .bz2 bzless → less для .bz2 bzmore → more для .bz2 C cal → календарь cat → вывести содержимое файла cc → обычно синоним gcc cd → сменить директорию cfdisk → интерактивная разметка диска chage → управление сроком действия пароля chattr → расширенные атрибуты файлов (immutable и др.) chgrp → сменить группу файла chkconfig → только в старых CentOS, в systemd → systemctl chmod → права доступа chown → сменить владельца chpasswd → массовая смена паролей chroot → запуск в изолированном окружении chsh → сменить оболочку пользователя chvt → переключить виртуальный терминал cksum → контрольная сумма clear → очистить экран cmp → побайтовое сравнение файлов colrm → удалить столбцы column → выровнять в колонки comm → сравнить два отсортированных файла compress → старое .Z сжатие (почти не используется) cp → копировать cpio → архиватор (используется в initramfs) cron → демон планировщик crontab → редактировать задачи cron csplit → разбить файл по шаблону ctags → индексация исходников (для vim) curl → передача данных (HTTP, FTP и 20+ протоколов) cut → вырезать столбцы/поля D date → дата и время dc → калькулятор в обратной польской нотации dd → низкоуровневое копирование (образы, флешки) declare → объявить переменную в bash df → место на дисках (-h!) diff → различия между файлами dig → DNS-запросы dircolors → настройка цветов ls dmidecode → информация из BIOS (sudo!) dmesg → сообщения ядра dnf → менеджер пакетов Fedora docker → работа с контейнерами dos2unix → конвертировать CRLF → LF dpkg → низкоуровневый менеджер пакетов Debian dstat → мониторинг системы (замена vmstat+ifstat) du → размер каталогов (-h --max-depth=1) dump → резервное копирование ext2/ext3 (устарел) E echo → вывести текст ed → построчный редактор (очень старый) egrep → grep -E eject → извлечь CD/DVD env → переменные окружения ethtool → настройки сетевой карты exec → заменить текущий процесс exit → выйти из оболочки expand → табуляции → пробелы export → экспортировать переменную expr → вычисления в shell F factor → разложить число на множители false → вернуть код 1 fc → редактор истории команд fdisk → разметка диска (не для GPT!) fg → вывести задачу на передний план fgrep → grep -F (фиксированные строки) file → определить тип файла find → поиск файлов finger → информация о пользователе (редко) fmt → форматировать текст fold → перенос длинных строк for → цикл в shell free → использование памяти (-h) fsck → проверка и ремонт ФС ftp → старый FTP-клиент (лучше lftp) G g++ → компилятор C++ gawk → GNU awk gcc → компилятор C gdb → отладчик getent → получить записи из баз (/etc/passwd, LDAP и др.) getfacl → показать ACL gpasswd → управление группами grep → поиск по тексту groupadd → добавить группу groupdel → удалить группу groupmod → изменить группу groups → группы текущего пользователя gunzip → распаковать .gz gzip → сжать/распаковать .gz H halt → остановить систему (устарел) head → первые строки файла history → история команд host → DNS lookup hostname → имя хоста hostnamectl → управление именем хоста (systemd) htop → интерактивный top hwclock → аппаратные часы I id → UID/GID пользователя ifconfig → устарел → ip addr info → документация в формате info insmod → загрузить модуль ядра (низкоуровнево) install → копировать с установкой прав iostat → статистика дисков iotop → кто грузит диски ip → современная замена ifconfig/route/netstat iptables → старый брандмауэр → nftables iwconfig → настройки Wi-Fi (устарел → iw) J jobs → список фоновых задач join → объединение файлов по полю journalctl → логи systemd K kill → послать сигнал процессу killall → убить по имени L last → последние входы в систему ld → линкер ldd → зависимости библиотеки less → просмотрщик текста let → арифметика в bash ln → создать ссылку locate → быстрый поиск (updatedb) logger → писать в системный лог loginctl → управление сессиями (systemd) logname → имя пользователя при входе logout → выйти look → поиск слов в словаре losetup → loop-устройства ls → список файлов lsblk → дерево блочных устройств lscpu → информация о CPU lshw → полная информация о железе lsmod → загруженные модули ядра lsof → открытые файлы/порты lsusb → USB-устройства M make → сборка проектов man → справочник md5sum → MD5-хеш (устарел → sha256sum) mkdir → создать каталог mkfs → форматировать раздел mktemp → создать временный файл/каталог modinfo → информация о модуле ядра modprobe → загрузить/выгрузить модуль ядра mount → монтировать mv → переместить/переименовать N nano → простой редактор nc (netcat) → универсальный сетевой инструмент netstat → устарел → ss nice → запустить с приоритетом nl → пронумеровать строки nmap → сканирование сети/портов nmcli → управление NetworkManager nohup → запуск без зависания терминала O od → дамп в шестнадцатеричном виде openvt → запустить команду на новом TTY P passwd → сменить пароль paste → склеить строки из файлов patch → применить патч pgrep → найти PID по имени pico → nano (исторически) pidof → PID процесса ping → проверка доступности хоста pkill → убить по имени pmap → карта памяти процесса poweroff → выключить систему pr → форматировать для печати printenv → вывести переменные окружения printf → форматированный вывод ps → процессы pstree → дерево процессов pwd → текущий каталог pwck → проверка /etc/passwd Q quota → управление дисковыми квотами R read → считать переменную из ввода readlink → значение симлинка reboot → перезагрузка rename → массовое переименование reset → сброс терминала return → выход из функции rev → перевернуть строки rm → удалить rmdir → удалить пустой каталог rmmod → выгрузить модуль ядра route → устарел → ip route rsync → синхронизация файлов S sar → статистика системы (sysstat) scp → копирование по SSH screen → мультиплексор терминала script → запись сессии sdiff → параллельное сравнение файлов sed → потоковый редактор seq → последовательность чисел service → старый способ управления службами set → установить опции shell/переменные setfacl → установить ACL sfdisk → разметка диска (скриптовый) sftp → FTP по SSH sh → обычно dash или bash sha256sum → SHA-256 хеш shred → безопасное удаление shutdown → выключение/перезагрузка sleep → пауза slurm → мониторинг сети (красивый!) sort → сортировка source → выполнить скрипт в текущей оболочке (.) split → разбить файл ss → современный netstat ssh → безопасный удалённый доступ stat → метаданные файла strace → трассировка системных вызовов stty → настройки терминала su → сменить пользователя sudo → выполнить от root sum → контрольная сумма (устарел) swapoff → отключить swap swapon → включить swap sync → сбросить буферы на диск systemctl → управление службами (systemd) T tac → cat наоборот tail → последние строки tar → архиватор tcsh → C Shell tee → разветвление вывода telnet → старый, небезопасный (лучше ssh) test → проверка условий ([) time → измерить время выполнения tmux → мультиплексор терминала (альтернатива screen) top → мониторинг процессов touch → создать/обновить файл tr → замена символов traceroute → трассировка маршрута tree → дерево каталогов true → вернуть код 0 tty → текущий терминал type → тип команды (встроенная, алиас, файл) U ulimit → ограничения ресурсов umask → маска прав по умолчанию umount → отмонтировать uname → информация о системе unalias → удалить алиас unexpand → пробелы → табуляции uniq → удалить дубликаты строк unlink → удалить файл (низкоуровнево) uptime → время работы системы useradd → добавить пользователя (низкоуровнево) userdel → удалить пользователя usermod → изменить пользователя users → кто сейчас в системе V vi → vim в минимальном режиме vim → лучший редактор vmstat → статистика виртуальной памяти vnstat → мониторинг трафика W w → кто онлайн и что делает wall → сообщение всем пользователям watch → периодический запуск команды wc → подсчёт строк/слов/байт wget → скачивание файлов whatis → краткое описание команды whereis → где лежит бинарник/man-страницы which → путь к исполняемому файлу while → цикл в shell who → кто в системе whoami → текущий пользователь whois → информация о домене X xargs → построение команд из ввода xdg-open → открыть файл в приложении по умолчанию xz → сжатие .xz (лучше gzip) xzcat → cat для .xz Y yes → бесконечно выводить строку yum → старый менеджер RedHat → dnf Z zcat → cat для .gz zdiff → diff для .gz zgrep → grep по .gz zip → архиватор .zip zypper → менеджер пакетов openSUSEЭто 470+ реально живых команд в 2025 году.
-
Bash - общееСодержание
-
Bash - работа с сетью - ip, порты и прочееПолучание информации о домене
Вот актуальный на конец 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 # проверить конкретный домен -
Bash - работа с сетью - ip, порты и прочее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 -
Bash - работа с сетью - ip, порты и прочееУзнать внешний 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 -
Bash - работа с сетью - ip, порты и прочееПроверка скорости интернета через терминал в 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.
-
Bash - работа с сетью - ip, порты и прочееПоиск занятых портов
Вот полный и актуальный (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/tcp3. Умные однострочники, которые я реально использую каждый день
# Показать и сразу предложить убить 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 stop4. По PID — если хочется точечно
# Найти PID pid=$(sudo lsof -t -i:8000) echo $pid # Убить мягко → жёстко sudo kill $pid sudo kill -9 $pid5. Теория: почему несколько команд и чем они отличаются
Команда Откуда берёт данные Плюсы Минусы 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 # убить всех! -
Bash - работа с сетью - ip, порты и прочееСодержание
-
Bash - скачивание и загрузка в сетьСкачивание с rutube
Вот актуальная на конец 2025 года шпаргалка по скачиванию с Rutube — yt-dlp всё ещё отлично работает, но синтаксис немного поменялся + появились новые «фишки».
Рабочие команды 2025 года (проверено на Rutube, ноябрь 2025)
# 1. Установка/обновление yt-dlp (один раз) sudo wget https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -O /usr/local/bin/yt-dlp sudo chmod a+rx /usr/local/bin/yt-dlp # или через pip # pip3 install -U yt-dlp # 2. Посмотреть все доступные форматы yt-dlp -F "https://rutube.ru/video/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/" # 3. Скачать самое лучшее видео + аудио (автоматически объединит) yt-dlp -f "bestvideo+bestaudio/best" "https://rutube.ru/video/..." # 4. Только самое лучшее видео (без звука, если хочешь отдельно) yt-dlp -f bestvideo "https://rutube.ru/video/..." # 5. Только самый лучший звук yt-dlp -f bestaudio --extract-audio --audio-format mp3 "https://rutube.ru/video/..." # 6. Конкретный формат (как ты делал раньше, только новый синтаксис) # Пример: 1080p60 + лучший звук yt-dlp -f "bestvideo[height<=1080][fps<=60]+bestaudio" "https://rutube.ru/video/..." # 7. Скачать плейлист целиком (сериал/канал) yt-dlp "https://rutube.ru/plst/123456/" # 8. Скачать с субтитрами (если есть) yt-dlp --write-auto-sub --skip-download "https://rutube.ru/video/..." # только субтитры yt-dlp --write-auto-sub "https://rutube.ru/video/..." # видео + субтитрыСамые полезные «однострочники» 2025 года
# Самое лучшее качество (видео + звук) → имя файла как на сайте yt-dlp -f "bv*+ba/b" --merge-output-format mp4 "https://rutube.ru/video/..." # 1080p или меньше, 60 fps, с русским звуком yt-dlp -f "bestvideo[height<=1080][fps<=60]+bestaudio[language^=ru]" "https://rutube.ru/video/..." # Скачать и сразу конвертировать в MP3 (только аудио) yt-dlp -x --audio-format mp3 --audio-quality 0 "https://rutube.ru/video/..." # Скачать приватное видео (нужен куки от браузера) yt-dlp --cookies cookies-rutube.txt "https://rutube.ru/video/private/..." # Обход ограничений по возрасту (18+) yt-dlp --age-limit 30 "https://rutube.ru/video/..."Если Rutube «прячет» форматы (иногда бывает)
# Принудительно обновить extractor (решает 90% проблем) yt-dlp -U # Скачать с максимальным дебагом (чтобы понять, что блокирует) yt-dlp -vU --print-traffic "https://rutube.ru/video/..."Мой личный алиас (добавь в ~/.bashrc)
alias rutube="yt-dlp -f 'bestvideo[height<=1080]+bestaudio/best' --merge-output-format mp4 --no-playlist" alias rutube-audio="yt-dlp -x --audio-format mp3 --audio-quality 0"Теперь просто:
rutube https://rutube.ru/video/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/ -
Bash - скачивание и загрузка в сетьСкачивание с Nextcloud через команду wget
Вот рабочие в 2025 году способы скачать любой файл или целую папку из Nextcloud через терминал — без браузера, без паролей в ссылках и без ручного кликанья.
1. Самый простой и надёжный способ (2025 стандарт)
# 1. Открываешь файл/папку в веб-интерфейсе Nextcloud # 2. Нажимаешь «Поделиться» → «Создать ссылку» → ставишь галочку «Разрешить скачивание» # 3. Копируешь ссылку вида: # https://cloud.example.com/s/AbC123XyZ/download # 4. Скачиваешь одной командой: wget -O желаемое_имя_файла.zip "https://cloud.example.com/s/AbC123XyZ/download"Если ссылка на папку — она автоматически скачается как .zip
2. Топ-5 рабочих команд (2025)
# Скачать файл с оригинальным именем wget "https://cloud.example.com/s/AbC123XyZ/download" # Скачать с новым именем wget -O backup-2025-11-29.zip "https://cloud.example.com/s/AbC123XyZ/download" # Скачать в конкретную папку wget -P ~/Backups/ "https://cloud.example.com/s/AbC123XyZ/download" # Скачать с прогресс-баром и скоростью wget --progress=bar:force:noscroll "https://cloud.example.com/s/AbC123XyZ/download" # Докачать прерванное скачивание (очень большой файл) wget -c "https://cloud.example.com/s/AbC123XyZ/download"3. Скачать по логину/паролю (если ссылка с паролем или без публичной ссылки)
# Вариант A — через базовую авторизацию (если включена) wget --user=login --password=pass \ "https://cloud.example.com/remote.php/dav/files/login/Документы/report.pdf" # Вариант B — через cookie (самый надёжный) # 1. Залогиниться и сохранить куки wget --save-cookies cookies.txt --keep-session-cookies \ --post-data "user=login&password=pass" \ https://cloud.example.com/index.php/login # 2. Скачать любой файл wget --load-cookies cookies.txt -O file.zip \ "https://cloud.example.com/s/AbC123XyZ/download"4. Скачать ВСЮ свою облачную папку (одной командой)
# Через WebDAV (самый быстрый способ) wget --mirror --no-host-directories --cut-dirs=3 \ --user=login --password=pass \ https://cloud.example.com/remote.php/dav/files/login/Всё скачается в текущую папку с сохранением структуры.
5. Мои алиасы (добавь в ~/.bashrc)
alias nc-get='wget -O' alias nc-all='wget --mirror --no-host-directories --cut-dirs=3 --user=' alias nc-login='wget --save-cookies ~/.nc_cookies --keep-session-cookies --post-data'Использование:
nc-get backup.zip "https://cloud.example.com/s/xyz/download"Итог: запомни всего одну команду на всю жизнь
wget -O имя_файла "https://ваш-nextcloud.ру/s/ТОКЕН/download"Если создана публичная ссылка с разрешением скачивания — это 100 % работает в 2025 году на любом Nextcloud (от 20 до 30 версии).
-
Bash - скачивание и загрузка в сетьПакетное скачивание репозиториев с GitHub
Вот рабочий в 2025 году способ скачать все публичные репозитории любой организации или пользователя с GitHub за 2–3 команды (без API-токена и без парсинга HTML — GitHub уже давно жёстко это блокирует).
Способ №1 — Самый быстрый и надёжный (одна команда, 2025 стандарт)
# Скачать ВСЕ репозитории организации YunoHost-Apps gh repo list YunoHost-Apps --limit 1000 | awk '{print $1}' | xargs -P10 -I{} gh repo clone {}Работает даже если репозиториев 1000+ (увеличивай
--limit).Способ №2 — Без установки gh (чистый wget + git)
# 1. Получаем список всех репозиториев через GitHub API (без токена — до 1000 публичных) curl -s "https://api.github.com/orgs/YunoHost-Apps/repos?per_page=100&page=1" | jq -r '.[].html_url' > urls.txt for page in {2..20}; do curl -s "https://api.github.com/orgs/YunoHost-Apps/repos?per_page=100&page=$page" | jq -r '.[].html_url' >> urls.txt done # Убираем дубликаты sort -u urls.txt -o urls.txt # 2. Клонируем параллельно (10 потоков) cat urls.txt | xargs -P10 -I{} git clone {} # Готово. Всё скачается в текущую папкуСпособ №3 — Одна строка (максимально коротко, мой фаворит 2025)
curl -s https://api.github.com/orgs/YunoHost-Apps/repos?per_page=100 | jq -r '.[].ssh_url' | xargs -P15 -I{} git clone {}(Если репозиториев больше 100 — добавь цикл или используй
--limit 1000вgh)Способ №4 — Если нужно скачать ВСЁ (даже >1000) без токена
#!/bin/bash ORG="YunoHost-Apps" PAGE=1 while :; do REPOS=$(curl -s "https://api.github.com/orgs/$ORG/repos?per_page=100&page=$PAGE" | jq -r '.[].ssh_url') [[ -z "$REPOS" ]] && break echo "$REPOS" | xargs -P12 -I{} git clone {} echo "Страница $PAGE скачана" ((PAGE++)) doneСохрани как
clone-all.sh,chmod +x, и запускай.Установка нужных инструментов (2025)
# Ubuntu/Debian/Mint sudo apt install gh jq -y # Или через snap sudo snap install gh # Fedora sudo dnf install gh jq # Arch sudo pacman -S github-cli jqИтог: запомни всего одну команду на всю жизнь
gh repo list ИМЯ_ОРГАНИЗАЦИИ --limit 2000 | awk '{print $1}' | xargs -P10 -I{} gh repo clone {}Примеры:
gh repo list microsoft --limit 2000 | awk '{print $1}' | xargs -P10 -I{} gh repo clone {} gh repo list torvalds --limit 1000 | awk '{print $1}' | xargs -P10 -I{} gh repo clone {} gh repo list YunoHost-Apps --limit 1000 | awk '{print $1}' | xargs -P10 -I{} gh repo clone {}Больше не нужно парсить HTML, мучаться с пагинацией и бояться банов.
В 2025 году — толькоgh+jq+xargs.
Работает на 100 %, даже с 10 000+ репозиториев.