❄
coldcommand
249 CMD

coldcommand — команды VPS/Linux

249 готовых команд VPS/Linux: SSL, nginx, сеть, диски, почта, Docker — с поиском и копированием

набор сверен: 2026-09

Диагност по симптому

Жми симптом — открою нужный раздел и подсвечу команду.

Выбери симптом выше.
показаны все 249
Tab, → или клик — принять подсказку · / или Ctrl+K — фокус в поиск · Enter — скопировать первую · Esc — очистить

Редактор

Черновик команд: хранится только в этом браузере.

пусто
+1 · SSL — certbot, выпуск и проверка — команды 01–08, 126–137, 140, 18922

Все сертификаты 01

sudo certbot certificates

Показывает все сертификаты на сервере, их домены и даты истечения. Начни с неё, чтобы понять, что уже выпущено.

Выпуск через nginx-плагин 02

sudo certbot --nginx -d coldcommand.solusrex.ru

Выпускает сертификат и сам прописывает SSL в конфиг nginx. Удобно, когда nginx уже обслуживает домен.

Выпуск через webroot 03

sudo certbot certonly --webroot -w /var/www/certbot -d coldcommand.solusrex.ru

Выпускает сертификат без изменения конфига nginx, проверяя домен через папку webroot. Именно так выпускаются серты test/inter/coldcommand в нашем docker-сетапе.

Тест продления 04

sudo certbot renew --dry-run

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

Продление с reload 05

sudo certbot renew --deploy-hook "systemctl reload nginx"

Продлевает истёкшие серты и перезагружает nginx только если продление было. Перезагрузка нужна, иначе nginx продолжит отдавать старый сертификат из памяти.

Проверка и reload nginx 06

sudo nginx -t && sudo systemctl reload nginx

Проверяет синтаксис конфига nginx и мягко перезагружает его без обрыва соединений. Выполняй всегда после правок конфигов и после продления серта.

Срок и издатель серта 07

echo | openssl s_client -connect coldcommand.solusrex.ru:443 -servername coldcommand.solusrex.ru 2>/dev/null | openssl x509 -noout -dates -issuer -subject

Показывает срок действия, издателя и домен сертификата удалённого сайта. Так проверяешь, что отдаётся именно твой LE-сертификат, а не чужой или просроченный.

HTTPS и TLS одной строкой 08

curl -vI https://coldcommand.solusrex.ru/ 2>&1 | grep -E "subject|issuer|SSL connection|HTTP/"

Проверяет HTTPS-ответ, версию TLS и данные сертификата одной командой. Видно код ответа и что шифрование реально работает.

Сертификат в /etc/ssl 126

sudo nano /etc/ssl/example.com.crt

Открывает файл сертификата для вставки серта с цепочкой. Если файл уже есть — проверь содержимое через декодер или создай рядом example.com1.crt.

Ключ в /etc/ssl 127

sudo nano /etc/ssl/example.com.key

Открывает файл ключа для вставки приватного ключа. Выход — Ctrl+X, подтвердить Y, ключ никому не показывай.

Установка certbot на CentOS 128

sudo dnf install epel-release && sudo dnf install certbot python3-certbot-nginx

Ставит certbot с nginx-плагином через dnf и python3 без запуска выпуска. CentOS 7 снят с поддержки (EOL) — живой выбор это AlmaLinux или Rocky, пакет python3-certbot-nginx доступен из EPEL.

Проверка nginx-плагина 129

dnf list installed | grep 'certbot-nginx'

Проверяет через dnf, установлен ли nginx-плагин certbot. Пустой вывод — доустанови пакет из cmd-128. На CentOS 7 (EOL) переезжай на AlmaLinux или Rocky.

Cron автопродления 130

30 6 * * * certbot renew --deploy-hook "systemctl reload nginx"

Строка для crontab -e: каждое утро пробует продлить серты и мягко перезагружает nginx только при удачном продлении. deploy-hook, как в cmd-05, не трогает работающий сервис, если продления не было. Перед добавлением проверь PATH с /usr/bin и /usr/sbin.

Бэкап ssl.conf в twssl.conf 131

sudo cp /etc/nginx/bx/conf/ssl.conf /etc/nginx/bx/conf/twssl.conf

Делает копию конфига для своих правок, только если twssl.conf ещё нет. После — удали из копии обе строки ssl_certificate с cert.pem.

Поиск vhost по домену 132

sudo grep server_name /etc/nginx/bx/site_enabled/* -RiI

Находит, в каком vhost прописан домен. Основной — ssl.s1.conf для /home/bitrix/www, остальные — bx_ext_ssl_*.conf для ext_www, без сайта — default ssl.s1.conf.

Пути стороннего сертификата 133

ssl_certificate /etc/nginx/ssl/example.com.crt;
ssl_certificate_key /etc/nginx/ssl/example.com.key;

Прописывает пути стороннего сертификата и ключа в twssl-блоке. Рядом замени include bx/conf/ssl.conf на bx/conf/twssl.conf.

Пути Let's Encrypt 134

ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

Прописывает пути Let's Encrypt в том же twssl-блоке. Домены в путях должны совпадать с -d из выпуска.

Редирект HTTP на HTTPS 135

return 301 https://$host:443$request_uri;

Отправляет весь HTTP-трафик на HTTPS с тем же адресом. Вставляй в s1.conf или bx_ext_*.conf сразу после server_name.

Алиасы сайта nginx 136

server_name example.com www.example.com new-alias.ru www.new-alias.ru;

Добавляет www и дополнительный домен в nginx-vhost. Тот же набор в Apache — ServerAlias в /etc/httpd/bx/conf/*.conf.

Плавная перезагрузка nginx и Apache 137

sudo systemctl reload nginx

Плавно перезагружает nginx без обрыва соединений после правок vhost и алиасов. Apache — так же: sudo systemctl reload apache2 на Debian/Ubuntu или sudo systemctl reload httpd на RHEL/Alma. Конфиг проверяй заранее связкой cmd-06.

Параметры DH для nginx 140

sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

Генерирует DH-параметры для nginx. Опционально: TLS 1.3 их не использует, современные клиенты договариваются через ECDHE — параметры нужны только старым клиентам на TLS 1.2 с DHE. Работает долго (минуты), не прерывай; флаг -dsaparam ускоряет выпуск.

Сроки серта из файла 189

openssl x509 -noout -dates -in /etc/letsencrypt/live/solusrex.ru/fullchain.pem

Читает notBefore и notAfter прямо из fullchain.pem на диске — без сети и без SNI. Дополняет сетевые проверки cmd-07 и cmd-43: здесь видно, что реально лежит на сервере. Путь подставь под свой домен — как в cmd-134.

+2 · Сеть — ip, ss, resolvectl — команды 09–16, 119–124, 17815

Интерфейсы кратко 09

ip -brief addr show

Кратко показывает все интерфейсы и их IP-адреса в одну строку на интерфейс. Самая быстрая проверка «какой IP где».

Маршруты 10

ip route show

Показывает таблицу маршрутов и шлюз по умолчанию. Если нет default via ... — интернета не будет.

Состояние интерфейса 11

ip -s link show "$(ip route get 1.1.1.1 | awk '{print $5; exit}')"

Показывает состояние основного интерфейса, MTU, MAC и счётчики ошибок/потерь. Имя определяется динамически: в облаках привычное имя почти не встречается — бывает ens3, enp1s0 или ens18.

Слушающие порты 12

ss -tulpn

Показывает, какие порты слушают TCP/UDP и какие процессы их держат. Проверяй после запуска nginx/docker, что 80/443 реально заняты.

Сводка сокетов 13

ss -s

Показывает сводку по сокетам (сколько TCP/UDP открыто). Быстрый способ понять, не течёт ли что-то по соединениям.

DNS-серверы 14

resolvectl status

Показывает DNS-серверы для каждого интерфейса через systemd-resolved. На Ubuntu 24.04 это главный способ проверить, откуда берётся DNS.

Временный DNS 15

sudo resolvectl dns "$(ip route get 1.1.1.1 | awk '{print $5; exit}')" 1.1.1.1 8.8.8.8

Временно задаёт DNS-серверы основному интерфейсу до перезагрузки. Интерфейс вычисляется динамически, потому что имена отличаются: ens3, enp1s0, ens18. Удобно для теста «дело в нашем DNS или нет».

Резолвинг домена 16

resolvectl query coldcommand.solusrex.ru

Проверяет резолвинг имени через системный резолвер. Видно, какой сервер ответил и какой IP вернулся.

Кто держит порт 443 119

sudo lsof -i :443 -sTCP:LISTEN -P -n

Показывает процесс и PID, который слушает порт 443. Дополняет ss: видно именно кто держит порт.

Файлы процесса 120

sudo lsof -p 1

Показывает все файлы и сокеты, открытые процессом с ID 1. Замени 1 на PID из прошлой команды.

Сеть процесса 121

sudo lsof -i -a -p 1

Показывает только сетевые соединения процесса с ID 1. Так видно, куда именно ходит процесс.

Слушатели через grep 122

sudo lsof -Pni | grep LISTEN

Показывает все слушающие порты разом через фильтр LISTEN. Удобно для быстрого обзора без флагов состояния.

Все TCP-слушатели 123

sudo lsof -nP -iTCP -sTCP:LISTEN

Показывает все TCP-порты в состоянии LISTEN без grep. Чистый вариант вместо пайпа выше.

Файлы каталога 124

sudo lsof +D /var/log

Показывает открытые файлы в каталоге /var/log. Так видно, что держит логи или мешает размонтировать.

Скорость и ошибки линка 178

ethtool <iface>

Показывает скорость, duplex и ошибки сетевого интерфейса. Имя подставь из cmd-09 — бывает ens3, enp1s0 или ens18.

+3 · Интерфейсы — netplan и NetworkManager — команды 17–24, 1849

Файлы netplan 17

ls /etc/netplan/ && cat /etc/netplan/*.yaml

Показывает файлы постоянной конфигурации сети и их содержимое. На Ubuntu Server вся статика живёт именно здесь.

Проверка синтаксиса 18

sudo netplan generate

Проверяет YAML-синтаксис без применения изменений. Запускай перед apply, чтобы не потерять SSH из-за опечатки в отступах.

Безопасное применение 19

sudo netplan try

Применяет конфиг тестово с автооткатом через 120 секунд без подтверждения. Самый безопасный способ менять сеть по SSH.

Применение навсегда 20

sudo netplan apply

Применяет конфиг сети навсегда. Делай только после generate/try и имея запасной доступ к консоли.

Сводка netplan 21

sudo netplan status -a

Показывает сводку интерфейсов, маршрутов и DNS из netplan. Удобнее сырого ip addr, когда хочешь сверить «что задумано vs что активно».

Применение с дебагом 22

sudo netplan --debug apply

Применяет конфиг с подробным логом для диагностики. Используй, когда обычный apply молча не работает.

Устройства NM 23

nmcli device status

Показывает устройства и их состояние через NetworkManager. На Server 24.04 сервис может отсутствовать — тогда это нормально, сеть ведёт netplan+networkd.

Подключения NM 24

nmcli connection show

Показывает сохранённые подключения NetworkManager. Актуально для десктопа; на сервере команда может вернуть пусто — это не ошибка.

Почему сбрасывается сеть 184

cloud-init status --long

Показывает статус cloud-init и этапы настройки. Если hostname или сеть сбрасываются после ребута — правь /etc/cloud/cloud.cfg или отключай управление облаком.

+4 · Панели — nginx, PHP-FPM, ISPmanager, FastPanel — команды 25–32, 64–73, 125, 144–156, 160–161, 188, 19336

Синтаксис nginx 25

sudo nginx -t

Проверяет синтаксис всех конфигов nginx без перезапуска. Ответ должен быть syntax is ok и test is successful.

Статус nginx 26

sudo systemctl status nginx --no-pager

Показывает, запущен ли nginx и нет ли ошибок старта. Смотри сюда первым делом при 502/белой странице.

Виртуальные хосты 27

ls -l /etc/nginx/sites-enabled/ && cat /etc/nginx/sites-available/example.com

Показывает включённые виртуальные хосты и содержимое конфига сайта. Так находишь, какой server_name реально обслуживает домен.

Включение сайта 28

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

Включает сайт симлинком из available в enabled. После неё обязательно nginx -t и reload.

Статус PHP-FPM 29

systemctl status php8.3-fpm --no-pager

Проверяет PHP-FPM 8.3 — версию по умолчанию на Ubuntu 24.04. Если он не running, nginx вернёт 502 на любом PHP.

Сокеты PHP 30

ls -l /run/php/*.sock

Показывает сокеты PHP-FPM, к которым обращается nginx. Путь из fastcgi_pass должен совпадать с реальным файлом сокета.

Владелец файлов сайта 31

sudo chown -R www-data:www-data /var/www/example.com/html

Отдаёт файлы сайта пользователю веб-сервера. Неверный владелец — самая частая причина 403 после заливки по root.

Ошибки nginx 32

sudo tail -n 50 /var/log/nginx/error.log

Показывает последние 50 строк ошибок nginx. Здесь видно, ругается ли он на права, сокет PHP или синтаксис.

Сайты ISPmanager 64

sudo /usr/local/mgr5/sbin/mgrctl -m ispmgr webdomain

Показывает все сайты панели одной строкой на сайт. С неё начинай разбор чужого сервера с ISPmanager.

PHP ISPmanager 65

php -nv && ls -d /opt/php* 2>/dev/null

Показывает нативный PHP и альтернативные версии из /opt. Так сверяешь, что реально доступно сайтам.

SSL ISPmanager 66

sudo /usr/local/mgr5/sbin/mgrctl -m ispmgr letsencrypt.periodic

Дожимает выпуск и продление Let's Encrypt вручную. Подробности смотри в /usr/local/mgr5/var/letsencrypt.log.

Перезапуск ISPmanager 67

sudo /usr/local/mgr5/sbin/mgrctl -m ispmgr exit

Мягко перезапускает панель, сайты при этом не трогает. Модуль сам поднимется при следующем заходе на :1500.

Логи и vhost ISPmanager 68

ls /etc/nginx/vhosts/ && sudo tail -n 50 /var/www/httpd-logs/example.com.error.log

Показывает конфиги сайтов панели и свежие ошибки сайта. Путь лога поменяй под свой домен.

Сайты FastPanel 69

sudo mogwai sites list

Показывает все сайты: ID, домен, владелец и версия PHP. ID из этой таблицы нужен для остальных команд.

Новый сайт FastPanel 70

sudo mogwai sites create --server-name=example.com --owner=fastuser --create-user -h php_fpm --handler_version=8.3

Создаёт сайт с отдельным пользователем и PHP-FPM 8.3. Для .htaccess бери -h fcgi вместо php_fpm.

PHP FastPanel 71

sudo mogwai sites update --id=1 -h php_fpm --handler_version=8.3

Меняет режим и версию PHP у сайта по ID. ID смотри в sites list выше.

SSL FastPanel 72

sudo mogwai certificates create-le --server-name=example.com --email=admin@example.com

Выпускает и ставит бесплатный Let's Encrypt для сайта. Редирект на HTTPS включай в Настройки → HTTPS.

Логи FastPanel 73

sudo tail -n 50 /var/www/fastuser/data/logs/example.com-frontend.error.log

Показывает свежие ошибки сайта. Конфиг nginx рядом: /etc/nginx/fastpanel2-sites/fastuser/example.com.includes.

Смена IP сервера FastPanel 125

sudo mogwai change_ip --from=<OLD-IP> --to=<NEW-IP>
sudo grep -rn <OLD-IP> /etc/ 2>/dev/null

Меняет IP всем сайтам разом, в отличие от add-ip для одного ID из sites list. Вторая строка ищет остатки старого IP — пусто значит переезд чистый.

SSL FastPanel с дебагом 144

sudo mogwai certificates create-le --server-name=example.com --email=admin@example.com --debug

Повторяет выпуск из cmd-72 с подробным логом. Если verification не проходит — смотри, какой challenge отвалился, и чини DNS.

Правка Exim под новый IP 145

sudo perl -pi -e 's/<OLD-IP>/<NEW-IP>/g' /etc/exim/*

Меняет старый IP на новый во всех файлах Exim разом. Перед ним скопируй каталог, после — рестарт ниже.

Рестарт Exim 146

sudo systemctl restart exim

Применяет правки Exim из прошлой команды. Проверь статус и очередь, письма должны пойти с нового IP.

Снять зависший прогресс ISP 147

sudo mv /usr/local/mgr5/var/.ispmgr.progress.xml /root/ispmgr.progress.bak

Убирает зависший флаг операции, когда панель висит на прогрессе. Не удаляй в никуда — сложи бэкап в /root.

Разблокировать ISPmanager 148

sudo /usr/local/mgr5/sbin/mgrctl -m ispmgr --unlock

Снимает блокировку панели после зависшей операции. Голый exit сюда не нужен — он уже есть в cmd-67.

Статус панели и базы ISP 149

sudo systemctl status ihttpd ispmysql --no-pager

Штатная проверка панели и её MySQL перед сменой IP. Обе должны быть active — иначе чини службы, а не IP.

Замена IP в конфигах ISP 150

sudo sed -i 's/<OLD-IP>/<NEW-IP>/g' /usr/local/mgr5/etc/ispmgr.conf

Аварийно меняет IP в конфиге панели, когда штатная смена недоступна. После — обязательно grep-проверка ниже.

Проверка и рестарт панели ISP 151

sudo grep -rn <OLD-IP> /usr/local/mgr5/etc/ 2>/dev/null && sudo systemctl restart ihttpd ispmysql

Ищет остатки старого IP и рестартит панель с базой, если чисто. Нечисто — добей sed выше, а не рестарт по кругу.

Бэкап баз ISP перед IP 152

sudo du -sh /var/lib/mysql /var/ispmysql && sudo tar -czf /root/isp-backup.tar.gz /var/lib/mysql /var/ispmysql

Смотрит размер баз и складывает бэкап в /root перед сменой IP. Без бэкапа sed выше не запускай.

Настройка Bitrix с логом 153

sudo sh /home/bitrix/configure.sh 2>/tmp/bitrix-config.log

Гонит настройку BitrixVM с логом ошибок в /tmp. Если в логе Cannot assign requested address — вернись к sysctl из cmd-138, это не дубль.

Реальный IP за Cloudflare 154

sudo grep -Rn "REMOTE_ADDR.*X_REAL_IP" /etc/nginx/ 2>/dev/null && sudo grep -Rn "CF_CONNECTING_IP" /etc/nginx/ 2>/dev/null

Проверяет, что REMOTE_ADDR берётся из X_REAL_IP и CF_CONNECTING_IP. Без связки в логах client светится с прокси-IP, а ветка client/open сыплет 403.

Логи сайтов FastPanel разом 155

sudo ls -l /var/www/USERNAME/data/logs/ | head -n 30

Обобщает cmd-68 и cmd-73: показывает все логи юзера вместо одного домена. USERNAME поменяй на владельца из sites list.

Логи панели FastPanel2 156

sudo ls /var/log/fastpanel2/ && sudo tail -n 50 /var/log/fastpanel2/*.log

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

Перезапуск FastPanel 160

sudo systemctl restart fastpanel2

Перезапускает саму панель через systemd, сайты при этом не трогает. Если :8888 молчит после — смотри логи панели из cmd-156.

Перезапуск ihttpd ISPmanager 161

sudo systemctl restart ihttpd

Перезапускает встроенный веб-сервер панели, сайты не затрагивает. Мягкий exit уже есть в cmd-67, разблокировка в cmd-148, связка со сменой IP в cmd-151, статус в cmd-149.

Статус FastPanel 188

sudo systemctl status fastpanel2 --no-pager -l

Сначала смотрим состояние панели с полным выводом, и только потом рестартим её, как в cmd-160. Флаг -l не обрезает длинные строки — видно настоящую причину падения. Логи панели — cmd-156.

Массовая замена IP по всему /etc 193

sudo tar czf /root/etc-backup-$(date +%F-%H%M).tar.gz /etc
sudo grep -rl '<OLD-IP>' /etc 2>/dev/null
sudo find /etc -type f -exec sed -i.bak 's/<OLD-IP>/<NEW-IP>/g' {} +
sudo grep -rn --exclude='*.bak' '<OLD-IP>' /etc/ 2>/dev/null

Аварийный массовый вариант, когда штатные пути не подходят: cmd-125 для FastPanel и cmd-150 для ISP. Строка 1 — бэкап всего /etc в /root, строка 2 — сперва посмотреть список файлов, строка 3 — замена с копией .bak рядом с каждым файлом, строка 4 — проверка остатков игнорирует .bak-копии — они хранят старый IP осознанно и остаются рядом как бэкап; пусто = чисто в рабочих конфигах. Подставляя IP, экранируй точки: 185\.119\.56\.206, иначе sed примет точку за «любой символ». После — рестарт затронутых служб: nginx -t, почта, панель.

+5 · Диагностика — ping, mtr, curl, dig — команды 33–40, 1779

Интернет по IP 33

ping -c 4 8.8.8.8

Проверяет базовый интернет по IP без DNS. Если не идёт — проблема в маршрутах или фаерволе, а не в домене.

Пинг домена 34

ping -c 4 coldcommand.solusrex.ru

Проверяет доступность твоего домена с учётом DNS. Сравни с предыдущим: IP идёт, а домен нет — чини DNS.

Потери по хопам 35

mtr --report --report-cycles 10 coldcommand.solusrex.ru

Показывает потери и задержки на каждом хопе до сервера. Видно, где именно рвётся путь (у тебя, у провайдера или у хостинга).

Маршрут 36

traceroute coldcommand.solusrex.ru

Показывает маршрут пакетами до цели без статистики mtr. Если traceroute нет — поставь mtr-tiny или используй tracepath.

Заголовки HTTPS 37

curl -I https://coldcommand.solusrex.ru/

Показывает только HTTP-заголовки ответа. Быстрая проверка «сайт жив, редиректы и серт в порядке».

Замер одной строкой 38

curl -w "%{http_code} %{time_total}s %{remote_ip}\n" -o /dev/null -s https://coldcommand.solusrex.ru/

Замеряет код, время ответа и реальный IP сервера одной строкой. Удобно для сравнения «было/стало» после правок.

A-запись 39

dig A coldcommand.solusrex.ru +short

Показывает A-запись домена без лишнего мусора. Должен вернуть 147.45.238.82 после настройки DNS.

Заголовки HTTP 40

curl -I http://coldcommand.solusrex.ru/

Проверяет HTTP-версию сайта до редиректа. Должен вернуть 301 на https:// — так задумано конфигом nginx.

Проверка порта снаружи 177

nc -zv <IP> <порт>

Пробует соединение с портом: succeeded — открыт, refused — закрыт или не слушают, timeout — фильтрует фаервол. Изнутри проверяй 127.0.0.1, снаружи — публичный IP.

+6 · ТСПУ — доступность и SNI — команды 41–477

Базовый замер 41

curl -s -o /dev/null -w "%{http_code} %{time_total}s %{remote_ip}\n" https://coldcommand.solusrex.ru/

Базовый замер доступности сайта из твоей сети одной строкой. Повторяй несколько раз: плавающий таймаут намекает на фильтрацию по пути.

TLS-хендшейк 42

curl -v https://coldcommand.solusrex.ru/ 2>&1 | grep -E "subject|issuer|SSL connection|Server certificate"

Показывает TLS-хендшейк и данные сертификата при соединении. Обрыв до Server certificate — признак SNI-фильтрации.

Серт с явным SNI 43

echo | openssl s_client -connect coldcommand.solusrex.ru:443 -servername coldcommand.solusrex.ru 2>/dev/null | openssl x509 -noout -dates -subject -issuer

Проверяет сертификат напрямую с явным SNI-именем. Так отделяешь «IP доступен, но режут по имени» от «IP недоступен вообще».

Замер IPv4 44

curl -4 -s -o /dev/null -w "IPv4: %{http_code} %{time_total}s\n" https://coldcommand.solusrex.ru/

Замеряет доступность строго через IPv4. Сравни с IPv6-замером ниже — ТСПУ часто режет протоколы по-разному.

Замер IPv6 45

curl -6 -s -o /dev/null -w "IPv6: %{http_code} %{time_total}s\n" https://coldcommand.solusrex.ru/

Замеряет доступность строго через IPv6. Ошибка при живом IPv4 — чини AAAA или фаервол под IPv6, а не сайт.

Мимо DNS 46

curl --resolve coldcommand.solusrex.ru:443:147.45.238.82 -I https://coldcommand.solusrex.ru/

Принудительно идёт на твой IP, минуя DNS. Если так работает, а без --resolve нет — проблема в подмене DNS, а не в блокировке IP.

Три замера от флапа 47

for i in 1 2 3; do curl -s -o /dev/null -w "try $i: %{http_code} %{time_total}s\n" https://coldcommand.solusrex.ru/; done

Делает три замера подряд для выявления флапа. Стабильные 200 — норма; чередование 200/000/таймаут — классический симптом ТСПУ.

+7 · Docker — compose, логи, тома — команды 48–55, 1879

Версия Compose 48

docker compose version

Показывает версию Compose V2 (синтаксис с пробелом). Дефисный docker-compose устарел — используй только эту форму.

Проверка конфига 49

docker compose config

Проверяет и печатает итоговый compose-файл после подстановок. Запускай после любых правок docker-compose.yml.

Контейнеры 50

docker compose ps

Показывает контейнеры текущего проекта, порты и состояние. Здесь должно быть coldcommand Up после деплоя.

Логи прокси 51

docker compose logs --tail=100 nginx-proxy

Показывает последние 100 строк лога прокси. Смотри сюда при 502/404 после правок server-блоков.

Запуск всего 52

docker compose up -d

Создаёт и запускает всё по compose-файлу в фоне, трогая только изменённое. Безопасно повторять — лишнее не пересоздаст.

Шелл в контейнере 53

docker compose exec whois-api sh

Открывает шелл внутри запущенного контейнера сервиса. Выходи через exit; для одноразовой команды добавляй её после sh -c.

Тома и диск 54

docker volume ls && docker system df

Показывает именованные тома и сколько диска ест Docker. Смотри перед чисткой, чтобы не удалить живое.

Чистка образов 55

docker image prune -f

Удаляет только висячие образы без тегов. Безопасная чистка; полную system prune -a --volumes без нужды не запускай — снесёт данные томов.

Все контейнеры хоста 187

docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"

Показывает все контейнеры хоста — имена, статусы и порты без лишних колонок, в отличие от cmd-50, который знает только текущий compose-проект. Полезно, когда на сервере живёт что-то ещё.

+8 · Прочее — cron, journal, ufw, ssh — команды 56–63, 138–139, 141–143, 165–168, 170–174, 179–181, 18326

Задачи cron 56

crontab -l

Показывает задачи cron текущего пользователя. Проверяй, нет ли дублей ручного certbot renew, если продление уже делает контейнер.

Таймер certbot 57

systemctl list-timers | grep certbot

Проверяет системный таймер автопродления сертов. На нашем проде продлевает контейнер certbot-renew, а не хост-таймер — пусто здесь нормально.

Лог nginx 58

journalctl -u nginx -n 50 --no-pager

Показывает последние 50 строк лога юнита nginx. Так находишь, почему сервис не стартовал после правок.

Ошибки за час 59

journalctl --since "1 hour ago" -p err --no-pager

Показывает все ошибки системы за последний час. Узкий фильтр вместо чтения всего журнала целиком.

Статус фаервола 60

sudo ufw status verbose

Показывает статус фаервола и открытые порты. Для веба должны быть разрешены 80/443 и твой SSH-порт.

Разрешить веб и SSH 61

sudo ufw allow OpenSSH && sudo ufw allow 'Nginx Full'

Разрешает SSH и весь веб-трафик (80+443) в фаерволе. Выполняй до ufw enable, иначе отрежешь себе SSH.

SSH по ключу 62

ssh -i ~/.ssh/id_ed25519 user@147.45.238.82 -p 1488

Подключается к серверу по ключу на боевой порт 1488 (SSH не на 22). Пользователя и порт подставь свои; пароли не используй и в команды их не вставляй.

Автозапуск nginx 63

sudo systemctl status nginx --no-pager && sudo systemctl is-enabled nginx

Проверяет, что nginx запущен сейчас и включён на автозапуск. Оба должны быть active/enabled, иначе после ребута сайт ляжет.

Разрешить несвой IP 138

sudo sysctl -w net.ipv4.ip_nonlocal_bind=1 && sudo sysctl -w net.ipv6.ip_nonlocal_bind=1

Разрешает бинд на ещё не поднявшийся IP после смены адреса. Лечит ошибку Cannot assign requested address при рестарте nginx и Bitrix.

Применить sysctl навсегда 139

sudo sysctl -p

Перечитывает /etc/sysctl.conf, чтобы правило пережило ребут. Без неё после перезагрузки снова вылезет Cannot assign requested address.

Ключ репозитория NO_PUBKEY 141

curl -fsSL <URL-КЛЮЧА> | sudo gpg --dearmor -o /etc/apt/keyrings/<name>.gpg && echo "deb [signed-by=/etc/apt/keyrings/<name>.gpg] <URL-РЕПОЗИТОРИЯ> <suite> main" | sudo tee /etc/apt/sources.list.d/<name>.list

Скачивает ключ в /etc/apt/keyrings/<name>.gpg и подключает источник строкой с signed-by=. На Ubuntu 24.04 старый инструмент для ключей APT удалён — теперь работает только такой способ. Замени <name>, URL и suite на свои.

Починить оборванный apt 142

sudo dpkg --configure -a

Дожимает прерванную установку пакетов после ошибки ключа. Запускай перед повторным apt update, иначе репозиторий останется битым.

Ключи apt в trusted.gpg.d 143

ls -l /etc/apt/trusted.gpg.d/

Показывает сложенные ключи репозиториев. Нет нужного — вернись к прошлой команде с NO_PUBKEY.

Упавшие службы 165

systemctl --failed

Список юнитов в состоянии failed после загрузки. Пусто — всё поднялось; иначе смотри причину через journalctl из cmd-166.

Логи службы с загрузки 166

journalctl -u <юнит> -b --no-pager

Показывает весь журнал выбранного юнита с момента последней загрузки. Замени <юнит> на имя, например nginx или php8.3-fpm; короткий хвост — cmd-58.

Перечитать юниты systemd 167

systemctl daemon-reload

Применяет правки .service и .timer без перезагрузки сервера (нужен root). Выполняй после любого изменения юнитов, иначе systemd продолжит работать по старой версии.

Все таймеры systemd 168

systemctl list-timers --all

Показывает активные и неактивные таймеры и время следующего запуска. Так видно, кто на самом деле будит систему; certbot-таймер — cmd-57.

Что можно обновить 170

apt list --upgradable

Список пакетов с доступными обновлениями. Сначала обнови индекс: sudo apt update, иначе список будет пустым или устаревшим.

Нужна ли перезагрузка 171

cat /var/run/reboot-required

Файл появляется после обновления ядра или libc — значит нужен ребут. Нет файла — команда вернёт ошибку, это нормально.

Неудачные входы 172

lastb | head -n 20

Показывает последние неудачные попытки входа в систему. Обычно нужен root: список читается из /var/log/btmp. Всплеск — подбор пароля, ставь защиту из cmd-174.

Подбор пароля по SSH 173

grep "Failed password" /var/log/auth.log | tail -n 20

Ищет в журнале авторизации неудачные попытки SSH. На RHEL/Alma путь другой — /var/log/secure. Успешные входы — раздел 8 и last.

Кого забанил fail2ban 174

fail2ban-client status sshd

Показывает счётчики jail sshd и список забаненных IP (часто нужен sudo). Служба не отвечает — проверь systemctl status fail2ban.

Время и часовой пояс 179

timedatectl

Показывает время, зону и статус синхронизации. Неверная зона ломает cron и метки времени в логах; точность часов — cmd-180.

Синхронизация времени 180

chronyc tracking

Показывает смещение часов и сервер синхронизации. Большое смещение объясняет странные метки времени в логах и сбои проверки сертификатов.

Бэкап каталога 181

rsync -avz /var/www/ /backup/www/

Копирует каталог перед правками с сохранением прав и структуры. Слэш на конце источника обязателен: без него копия вложится папкой. Приёмник создай заранее.

Проверка ротации логов 183

logrotate -d /etc/logrotate.conf

Прогон logrotate в режиме отладки: показывает, что и куда ротируется, без изменений на диске. Флаг -f заставит выполнить ротацию принудительно.

+9 · Сайт лежит 4xx/5xx — коды, access/error, PHP-FPM — команды 74–829

Код главной 74

curl -I https://example.com/

Показывает только заголовки и код ответа главной. С неё начинай разбор: 200 — жив, 301 — редирект, 4xx/5xx — копай дальше по ветке.

Код, время и IP 75

curl -s -o /dev/null -w "%{http_code} %{time_total}s %{remote_ip}\n" https://example.com/

Показывает код, время ответа и IP сервера одной строкой. Долгое время при 5xx — признак висящего PHP-FPM или базы.

Все 4xx из лога 76

sudo awk '$9 ~ /^4[0-9][0-9]$/' /var/log/nginx/access.log | tail -n 50

Выбирает последние 50 запросов с кодом 4xx. Так видно, какие страницы отдают 403 и 404.

Все 5xx из лога 77

sudo awk '$9 ~ /^5[0-9][0-9]$/' /var/log/nginx/access.log | tail -n 50

Выбирает последние 50 запросов с кодом 5xx. Если пусто — ошибки не в access, смотри error-лог ниже.

Топ URL с 5xx 78

sudo awk '$9 ~ /^5/ {print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -n 20

Показывает, какие адреса чаще всего отдают 500/502/503/504. Чинишь самый частый — снимаешь большую часть ошибок.

Причины 502/504 в error 79

sudo grep -Ei "upstream|connect\(\) failed|timed out" /var/log/nginx/error.log | tail -n 50

Выбирает строки про апстрим: сокет PHP-FPM, таймауты, refused. В них точная причина 502 и 504.

Журнал PHP-FPM 80

sudo journalctl -u php8.3-fpm -n 50 --no-pager

Показывает последние 50 строк службы PHP-FPM 8.3. Ищи max_children, fatal и OOM — они дают 502.

Связка nginx → PHP 81

sudo grep -R "fastcgi_pass" /etc/nginx/ && ls -l /run/php/

Сверяет, куда смотрит nginx, и есть ли такой сокет. Разные пути после обновления PHP — частая причина 502.

Последние запросы 82

sudo tail -n 50 /var/log/nginx/access.log

Показывает последние 50 запросов целиком. Сверяй время с error-логом — связка даёт ветку.

+10 · Место и память — df, du, OOM, журнал, MySQL — команды 83–91, 163, 175, 182, 18613

Сколько места 83

df -h

Показывает занятость дисков в гигабайтах. Строка 95–100% на / — чистить срочно.

Сколько на корне 163

df -h /

Показывает занятость только корня / в гигабайтах, без лишних строк. 95–100% на / — чистить, кто съел — du из cmd-85.

Иноды — важно! 84

df -i

Показывает свободные иноды. Место может быть, а иноды кончились — файлы не создаются.

Кто съел диск 85

sudo du -xhd1 / 2>/dev/null | sort -h

Раскладывает корень по папкам без перехода на другие диски. Копай самую большую дальше.

Интерактивно по диску 86

sudo ncdu -x /

Открывает удобный просмотр диска прямо в терминале. Если нет — поставь: sudo apt install ncdu.

Память и swap 87

swapon --show && free -h

Показывает swap и память в гигабайтах. Swap в работе при свободной RAM — признак утечки.

Кто убит OOM 88

sudo dmesg -T | grep -Ei "out of memory|oom|killed process"

Ищет убийства по памяти в ядре. Найденный php-fpm или mysqld — объяснение внезапных 502.

Журнал: размер и чистка 89

journalctl --disk-usage && sudo journalctl --vacuum-size=100M

Сначала показывает размер журнала, потом оставляет последние 100 МБ. Безопасно — старые логи только ротируются.

Кэш apt: размер и чистка 90

sudo du -sh /var/cache/apt/archives/ && sudo apt-get clean

Показывает кэш пакетов и чистит его. Безопасно — пакеты докачаются при нужде.

Размер MySQL 91

sudo du -sh /var/lib/mysql/* 2>/dev/null | sort -rh | head -n 20

Показывает самые тяжёлые базы и бинлоги. Дальше — PURGE BINARY LOGS внутри MySQL, не удалением файлов.

Здоровье диска SMART 175

smartctl -a /dev/vda

Читает SMART: здоровье, ошибки, износ (обычно нужен sudo). На VPS часть параметров может быть недоступна из-за виртуализации — это нормально. Пакет smartmontools; имя диска — lsblk из cmd-164.

Крупные файлы 182

find / -xdev -size +500M -type f 2>/dev/null

Ищет файлы больше 500 МБ в пределах корневой файловой системы (нужен root, чтобы видеть все каталоги). -xdev не уходит на другие диски, поэтому поиск быстрее; кто съел диск — cmd-85.

Иноды корня 186

df -i /

Показывает свободные иноды только на корневом разделе, без прочих дисков. Если место есть, а файлы не создаются — смотри IUse% на /: полный счёт по всем дискам даёт cmd-84, виновника ищет cmd-85.

+11 · Почта — очередь, порты, SPF/DKIM/DMARC — команды 92–1009

Очередь почты 92

mailq

Показывает застрявшие письма. Растущая очередь — симптом: DNS, порт 25 или репутация.

Статус Postfix 93

systemctl status postfix --no-pager

Проверяет, жив ли почтовик. Мёртвый postfix — сначала старт, потом очередь.

Свежий mail.log 94

sudo tail -n 50 /var/log/mail.log

Показывает последние 50 строк почты. Ищи bounced, deferred и refused — в них причина.

Слушают ли 25/587/465 95

sudo ss -ltnp | grep -E ':25|:587|:465'

Проверяет SMTP-порты и кто их держит. Пусто — postfix не слушает или закрыт файрволом.

Отвечает ли SMTP 96

nc localhost 25

Вручную жмёт на SMTP: жди 220. Выход — Ctrl+C или quit. Если nc нет, годится openssl s_client -starttls smtp -connect localhost:25. Нет ответа — копай службу и файрвол.

SPF-запись 97

dig +short TXT example.com

Показывает, кому можно слать от домена. Должно начинаться с v=spf1, иначе — в спам.

DKIM и DMARC 98

dig +short TXT mail._domainkey.example.com && dig +short TXT _dmarc.example.com

Сверяет подпись DKIM и политику DMARC. Пустой ответ — запись не создана.

IP в спам-базах 99

dig +short 82.238.45.147.zen.spamhaus.org

Проверяет IP в базе Spamhaus. Пусто — чисто; ответ 127.0.0.x — реальный листинг. Код 127.255.255.x означает «запрос отклонён публичному резолверу», а не листинг: сверяйся с нашим чекером https://solusrex.ru (раздел спам-баз) или проверяй с самого сервера. IP подставь наоборот.

Тестовое письмо 100

echo "Timeweb test" | sendmail -v admin@example.com

Шлёт тест через локальный postfix. Смотри verbose-вывод и потом mailq с mail.log.

+12 · Нагрузка — load, top, IO, медленные запросы — команды 101–109, 169, 17611

Нагрузка и аптайм 101

uptime && w

Показывает load average за 1/5/15 минут и кто в системе. Сравни нагрузку с числом ядер.

Топ процессов разово 102

top -b -n1 | head -n 20

Снимает верхушку CPU и RAM без интерактива. Подходит для копипаста в поддержку.

Память/CPU/IO по секундам 103

vmstat 1 5

Делает пять замеров: r — очередь к CPU, wa — ожидание диска, si/so — своп. Своп и wa — чинить память и диск.

Диски: занятость 104

iostat -xz 1 3

Показывает util и await по дискам. 100% и большой await — диск не тянет. Нет команды — поставь sysstat.

Кто жмёт диск 105

sudo iotop -b -n1 | head -n 20

Показывает процессы-писатели разово. Нет команды — поставь iotop.

Соединения и очереди 106

sudo ss -tanp | head -n 30

Показывает TCP-соединения и очереди. Много TIME-WAIT и SYN-SENT — перегруз или атака.

Самые медленные URL 107

sudo awk '{print $NF, $7, $9}' /var/log/nginx/access.log | sort -nr | head -n 20

Сортирует запросы по времени из лога. Требует request_time и upstream_time в формате — иначе добавь в nginx.

Тормоза PHP 108

sudo tail -n 50 /var/log/php8.3-fpm/www-slow.log

Показывает скрипты дольше slowlog-таймаута. Пусто — включи request_slowlog_timeout=3s на окно.

Что висит в MySQL 109

sudo mysqladmin processlist --verbose | head -n 30

Показывает текущие запросы базы без пароля в команде. Долгие в Time — кандидаты на индекс.

Число ядер CPU 169

nproc

Показывает число доступных ядер. Сравни с load average из cmd-101: нагрузка выше числа ядер — CPU перегружен.

Топ по памяти 176

ps aux --sort=-%mem | head -n 15

Показывает 15 самых прожорливых по памяти процессов. Дополняет топ по CPU из cmd-102; утечки и OOM — раздел 10.

+13 · Timeweb — панель, PTR, VNC, rescue, бэкапы — команды 110–118, 162, 164, 185, 190–192, 213–23336

PTR — обратная зона 110

dig +short -x 147.45.238.82

Проверяет PTR для IP. Задаётся в панели Сети → Публичные IP → PTR, кроме Новосибирска.

Имя сервера 111

hostnamectl

Показывает hostname и ОС. Для почты должен совпадать с mail.example.com и PTR.

Сменить имя сервера 162

sudo hostnamectl set-hostname mail.example.com

Меняет имя сервера навсегда, проверка — hostnamectl из cmd-111. Если имя сбрасывается после ребута — смотри /etc/hosts и cloud-init.

Агент панели 112

systemctl status qemu-guest-agent --no-pager

Проверяет агента Timeweb. Без него глючат кнопки панели: перезагрузка, IP и снапшоты.

Серийная консоль 113

systemctl status serial-getty@ttyS0 --no-pager

Проверяет серийную консоль. Панель Консоль, серийная или VNC, работает без SSH и сети.

Что слушает внутри 114

sudo ss -ltnp | grep -E ':22|:80|:443'

Показывает SSH и веб внутри. Запреты снаружи — панель Сети → Firewall: whitelist или blacklist.

Диски перед rescue 115

lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINTS

Показывает диски и точки. В rescue диск виден как /dev/sda1 — монтируй вручную через VNC.

Диски: типы и точки 164

lsblk -o NAME,SIZE,TYPE,MOUNTPOINT,FSTYPE

Показывает диски с типом раздела и одной точкой монтирования. В отличие от rescue-варианта из cmd-115 — колонка TYPE и единственное MOUNTPOINT вместо списка.

ОС перед переустановкой 116

cat /etc/os-release && uname -r

Показывает дистрибутив и ядро. Переустановка: Конфигурация → Переустановить, данные удалятся, бэкапы останутся.

Готовность к снапшоту 117

sudo sync && systemctl is-system-running

Сбрасывает кэш и проверяет систему. Снапшот: Бэкапы → Создать, один на сервер, живёт 7 дней.

CLI панели twc 118

twc --help

Показывает справку CLI Timeweb. Токен в команду не вшивай — храни отдельно, операции те же, что в панели.

Список серверов Timeweb 185

twc server list

Показывает серверы через CLI Timeweb без токена в команде: токен храни отдельно, в переменной окружения или конфиге CLI. Справка — cmd-118.

Аптайм и FQDN 190

uptime -p && hostname -f

Две короткие проверки одной строкой: uptime -p — аптайм словами, hostname -f — полное имя для почты и PTR. Подробнее по времени — cmd-101 и cmd-111.

Своё имя вместо провайдерского 191

sudo hostnamectl set-hostname <новое-имя>

Меняет провайдерское имя сервера на своё. После смены обнови запись 127.0.1.1 в /etc/hosts, иначе часть служб резолвит старое имя, и проверь hostname -f. Если провайдер возвращает имя при перезагрузке (cloud-init), задай preserve_hostname: true в /etc/cloud/cloud.cfg или в конфиге провайдера. Рядом — cmd-111 и cmd-162.

Полное имя хоста (FQDN) 192

hostname -f

Полное имя хоста (FQDN) — то, что уходит в почту и PTR, в отличие от коротких hostname и hostname -s: они дают только часть до первой точки. Удобно для проверки после смены имени из cmd-191 — видно, что провайдерское имя по умолчанию заменилось на своё.

Ребут через CLI 213

twc server reboot <SERVER_ID>

Перезагружает сервер; --hard — жёсткий ребут. ID — из cmd-185, токен CLI храни отдельно (cmd-118).

Выключение через CLI 214

twc server shutdown <SERVER_ID>

Гасит сервер; включить обратно — twc server boot. Для аварийных работ и смены тарифа.

Сброс root-пароля 215

twc server reset-root-password <SERVER_ID> -y

Выдаёт новый root-пароль в консоль. Старый перестанет работать; -y подтверждает операцию. Доступ к серверу после — cmd-114.

Recovery-режим 216

twc server set-boot-mode <SERVER_ID> recovery

Спасательный режим (аналог rescue): доступ через VNC (cmd-217), диски монтируются вручную (cmd-115). Вернуть — set-boot-mode default.

VNC из CLI 217

twc server vnc <SERVER_ID> --print

Печатает доступ к VNC или открывает окно. Работает без SSH и сети — выручает, когда доступа нет.

Бэкап диска вручную 218

twc server backup create <DISK_ID>

Внеплановый бэкап; список — twc server backup list <DISK_ID>, восстановление — backup restore.

Автобэкапы диска 219

twc server backup schedule <DISK_ID> --enable --keep 3 --interval week

Расписание: day|week|month, --keep — сколько копий хранить. Проверка — --status, выключить — --disable.

Расширить диск 220

twc server disk resize <DISK_ID> --size 100G

Увеличивает размер диска; затем расширь ФС в гостевой ОС (growpart + resize2fs/xfs_growfs).

Апгрейд ресурсов 221

twc server resize <SERVER_ID> --cpu 2 --ram 4G --disk 80G

Меняет CPU/RAM/диск (размеры — с единицами: 4G, 80G; или --preset-id) и --bandwidth; сервер перезагрузится.

Образ из диска 222

twc image create <DISK_ID>

Снимок диска для клонов и переноса; список — twc image list, свой образ — twc image upload <URL>.

Доп. IP из CLI 223

twc server ip add <SERVER_ID>

Выдаёт серверу публичный IP; список — twc server ip list <ID>, отвязать — ip remove <IP>.

PTR из CLI 224

twc server ip set <IP_ADDRESS> --ptr mail.example.com

Задаёт обратную зону для IP сервера — то же, что панель Сети → PTR. Проверка — cmd-110.

Плавающий IP 225

twc ip attach <IP> --server <SERVER_ID>

Floating IP переносится между сервисами: twc ip detach <IP>, затем attach к server|balancer|database. Адрес не теряется.

Правила фаервола 226

twc firewall rule create "22/TCP" "80/TCP" "443/TCP" -G --group-name main

Создаёт группу (-G) с правилами порт/протокол; диапазон "2000-3000/UDP", протокол ICMP; направления --ingress/--egress и --cidr.

Привязать фаервол 227

twc firewall link server <SERVER_ID> <GROUP_ID>

Вешает группу правил на сервер (также database|balancer). Отвязать — unlink, проверить — cmd-228.

Что применено 228

twc firewall show server <SERVER_ID>

Показывает активные на сервере группы и правила. Сверяй после каждой правки.

Приватная сеть 229

twc vpc create 10.0.0.0/24 --name internal

Создаёт VPC; приватный IP — при создании сервера: twc server create --network-id <ID>. Ресурсы сети — twc vpc show <ID>.

DNS-запись из CLI 230

twc domain record add example.com --type A --value 1.2.3.4

A/TXT/MX/CNAME/AAAA/SRV; список — record list, правка — record update <ID>.

Приложения (App Platform) 231

twc apps list

Список приложений платформы; подробности — twc apps get <APP_ID>.

Деплой приложения 232

twc apps create app.yml

Создаёт приложение по YML-конфигу. Автодеплой из GitHub/GitLab/Bitbucket; статус смотри через twc apps get <APP_ID> (и в панели); откат — передеплой прошлого коммита.

Статус приложения 233

twc apps get <APP_ID>

Состояние приложения (и в панели); в текущих сборках twc опция --status объявлена, но на вывод и код не влияет — для скриптов не полагайся на неё.

+14 · Саппорт-процессы — n8n, домены, compose — команды 157–1593

Каталог и домены n8n 157

sudo ls -la /home/n8n/ && sudo grep -E "DOMAIN|SUBDOMAIN|SSL_EMAIL" /home/n8n/.env

Проверяет каталог процесса и сверяет домены с почтой для LE. Ловушка — SSL_EMAIL с example.com из примера: с ней серт не выпустится, подставь живую.

Логи n8n 158

sudo docker compose -f /home/n8n/docker-compose.yml logs --tail=100

Показывает свежие 100 строк n8n без рестарта. Ищи ошибки verification и client/open подключения.

Пересоздание n8n 159

sudo docker compose -f /home/n8n/docker-compose.yml down && sudo docker compose -f /home/n8n/docker-compose.yml up -d

Мягко пересоздаёт n8n после правок .env. Именно down/up, а не restart — иначе новые DOMAIN не подхватятся.

+15 · Добавление IP — временная настройка — команды 194–2007

Проверить адреса 194

ip addr

Первый шаг гайда: посмотреть, какие адреса уже назначены интерфейсам — нового IP здесь ещё быть не должно. Краткая версия той же проверки — cmd-09.

Доп. IPv4 временно 195

sudo ip addr add <IP>/24 dev <IFACE>

Временно добавляет дополнительный IPv4-адрес до перезагрузки (пример гайда: 192.0.2.70/24 на eth0; имя интерфейса — из ip addr: eth0, ens3…). Сначала закажи адрес в панели провайдера. Для сохранения после ребута — раздел «Добавление IP — постоянная настройка».

Доп. IPv6 временно 196

sudo ip addr add <IPv6>/128 dev <IFACE>

То же для IPv6 (пример гайда: 2001:db8:a:a::a/128). Маска — /128, реже /64. До перезагрузки.

Шлюз IPv4 197

ip route show default

Проверяет шлюз по умолчанию для IPv4 (строка default via …). Нет строки — добавь командой cmd-199, иначе интернета не будет.

Шлюз IPv6 198

ip -6 route show default

Шлюз по умолчанию для IPv6. Нет строки — cmd-200.

Шлюз IPv4 вручную 199

sudo ip route add default via <GW> dev <IFACE>

Добавляет IPv4-шлюз вручную. Шлюз — первый адрес сети: для 192.0.2.70/24 это 192.0.2.1. Делай осторожно: ошибка в шлюзе рвёт связь — держи консоль панели под рукой.

Шлюз IPv6 вручную 200

sudo ip route add default via <GW6> dev <IFACE> onlink

IPv6-шлюз вручную: первые четыре хекстета адреса и ::1 (2001:db8:a:a::a → 2001:db8:a:a::1), флаг onlink обязателен.

+16 · Добавление IP — постоянная настройка — команды 201–21212

Права на netplan-файлы 201

sudo chmod 600 /etc/netplan/99-ipv4.yaml /etc/netplan/99-ipv6.yaml

Гайд требует закрыть файлы адресов от всех, кроме root. Выполняй после создания 99-ipv4.yaml и 99-ipv6.yaml со своими адресами (шаблоны — в гайде Timeweb Cloud). В конфиге должны остаться все адреса: основной и дополнительные.

Выключить DHCPv6 202

sudo systemctl disable --now dhclient6.service

Отключает DHCPv6-клиент, чтобы он не конфликтовал с ручными адресами. В Ubuntu 22.04 и ниже — dhclient6.service, в 24.04/26.04 — dhcpcd6.service: проверь оба и отключи существующий.

Перечитать systemd 203

sudo systemctl daemon-reload

Перечитывает юниты systemd после правок конфигов — шаг гайда перед netplan apply.

Старый конфиг netplan в бэкап 204

sudo mv /etc/netplan/50-cloud-init.yaml /etc/netplan/50-cloud-init.yaml-backup-$(date +%Y%m%d)

Отключает старый конфиг переименованием (главное — чтобы файл больше не заканчивался на .yaml). Повтори для всех файлов кроме своих 99-*.yaml; на старых Ubuntu также 01-netcfg.yaml и 00-installer-config.yaml.

Cloud-init не трогает сеть 205

printf 'network: {config: disabled}\n' | sudo tee /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg

Чтобы cloud-init больше не создавал свой сетевой конфиг после перезагрузки. Общая логика и статус — cmd-184.

Nonlocal bind навсегда 206

printf 'net.ipv4.ip_nonlocal_bind = 1\nnet.ipv6.ip_nonlocal_bind = 1\n' | sudo tee /etc/sysctl.d/99-nonlocal-bind.conf && sudo sysctl --system

Постоянно разрешает службам слушать адрес до его появления на интерфейсе (лечит Cannot assign requested address после ребута). Разовый вариант — cmd-138. После — применить: cmd-22, проверить адреса: cmd-194.

Применить (Debian/Astra) 207

sudo systemctl restart networking.service

Применяет правки /etc/network/interfaces (Debian, Astra). В файле держи основной адрес и post-up ip addr add для дополнительных. По SSH делай аккуратно: ошибка рвёт доступ — держи консоль панели.

NM: добавить адрес 208

sudo nmcli connection modify <NAME> +ipv4.addresses <IP>/24

CentOS/AlmaLinux: добавляет адрес к соединению NetworkManager. Первый адрес — без «+», каждый следующий — с «+ipv4.addresses». IPv6-вариант: +ipv6.addresses. Проверка: nmcli connection show <NAME> | grep addresses; имя соединения — cmd-24.

NM: шлюз 209

sudo nmcli connection modify <NAME> ipv4.gateway <GW>

Шлюз для соединения NM. IPv6-вариант: ipv6.gateway <GW6>.

NM: ручной режим 210

sudo nmcli connection modify <NAME> ipv4.method manual && sudo nmcli connection modify <NAME> ipv6.method manual

Ручной режим обязателен, иначе адреса не применятся. DNS настраивается там же: nmcli connection modify <NAME> ipv4.dns 1.1.1.1 (второй — с «+ipv4.dns»).

Применить (NetworkManager) 211

sudo systemctl restart NetworkManager.service

Перезапуск NetworkManager после правок nmcli — применяет адреса.

Применить (Arch) 212

sudo systemctl restart systemd-networkd

Arch: сеть на systemd-networkd — файлы /etc/systemd/network/*.network по гайду; проверь, что старые cloud-init-конфиги отключены. Nonlocal bind — cmd-206.

+17 · Смена IP ISPmanager — аварийный цикл — команды 234–2407

Старый IP панели в ihttpd.conf 234

sudo grep ip /usr/local/mgr5/etc/ihttpd.conf | grep "^[^#*]"

Показывает строки с IP в конфиге панели, отсекая комментарии и шаблоны. Найденный старый адрес — то, что меняет следующая команда. Если панель уже лежит целиком — сначала связка cmd-151 (проверка всех конфигов панели и рестарт).

Замена IP в конфиге панели ihttpd 235

sudo sed -i 's/<OLD-IP>/<NEW-IP>/g' /usr/local/mgr5/etc/ihttpd.conf

Меняет старый IP на новый в конфиге встроенного веб-сервера панели. Перед правкой сохрани /etc целиком — cmd-193. Применить — рестартом cmd-161, статус — cmd-149.

Замена IP в vhost nginx 236

sudo sed -i 's/<OLD-IP>/<NEW-IP>/g' /etc/nginx/vhosts/*/*

Меняет IP во всех vhost-конфигах сайтов nginx разом. После — проверь остатки (cmd-237) и перечитай конфиг: плавно cmd-137, статус cmd-26.

Остатки старого IP в nginx 237

sudo grep -r <OLD-IP> /etc/nginx | grep "^[^#*]"

Ищет старый IP в конфигах nginx, чтобы не осталось незамеченных файлов. Строки-комментарии и шаблоны отсекаются. Найденное правь тем же sed по каждому файлу из вывода.

Замена IP в vhost Apache 238

sudo sed -i 's/<OLD-IP>/<NEW-IP>/g' /etc/apache2/vhosts/*/*

Меняет IP в vhost-конфигах сайтов Apache (Debian/Ubuntu). В RHEL-based дистрибутивах Apache называется httpd, а конфиги лежат в /etc/httpd/conf/vhosts. Применить — cmd-137 (там же вариант reload для httpd/apache2).

Exim Debian: замена IP 239

sudo sed -i 's/<OLD-IP>/<NEW-IP>/g' /etc/exim4/exim4.conf.template

Заменяет IP в основном конфиге Exim на Debian/Ubuntu. В RHEL-based путь другой — /etc/exim/exim.conf. Массовая замена по Exim — cmd-145, применить — рестарт cmd-146.

Остатки IP в конфигах MySQL 240

sudo grep -r <OLD-IP> /etc/mysql | grep "^[^#*]"

Ищет остатки старого IP в конфигах MySQL/MariaDB (если база слушала не localhost). На RedHat-based конфиги — /etc/my.cnf и /etc/my.cnf.d. Перед правками баз — бэкап cmd-152; альтернативные СУБД панели после смены IP пересоздаются средствами панели (данные в /var/lib и /var/ispmysql не теряются).

+18 · Новый IP в ISPmanager — настройка панели — команды 241–2444

Адреса панели (listen) 241

sudo grep -n -A3 listen /usr/local/mgr5/etc/ihttpd.conf

Показывает listen-секции конфига панели: какие адреса и порты слушает ihttpd и куда встанет новый IP (раздел „Адреса панели“ в интерфейсе). Дальше — адрес по умолчанию cmd-242.

IP панели по умолчанию 242

sudo grep -n "DefaultIPAddr" /usr/local/mgr5/etc/ispmgr.conf

IP панели по умолчанию в основном конфиге ispmanager. Адреса прослушивания — cmd-241.

Relay-хосты Exim 243

sudo grep -rn "hostlist relay_from_hosts" /etc/exim4/ /etc/exim/ 2>/dev/null

Показывает, какие хосты Exim считает доверенными (hostlist relay_from_hosts) — после смены IP список правят руками. Пути: /etc/exim4/ (Debian/Ubuntu) и /etc/exim/ (RHEL); отсутствующий каталог не мешает. Замену по Exim смотри в cmd-145.

С какого IP уходит почта 244

sudo cat /etc/exim4/domainips

Смотрит сопоставление почтовых доменов и IP, с которых уходит почта. На RHEL — /etc/exim/domainips. Это просмотр: замену делает cmd-145.

+19 · ISPmanager — конфиги и логи — команды 245–2495

Конфиги и логи панели 245

sudo ls /usr/local/mgr5/etc/ && sudo ls /usr/local/mgr5/var/

Показывает содержимое каталогов панели: /usr/local/mgr5/etc (конфиги: core.conf, ihttpd.conf, ispmgr.conf…) и /usr/local/mgr5/var (логи). Дальше — хвосты логов 246–248.

Лог панели ispmgr 246

sudo tail -n 50 /usr/local/mgr5/var/ispmgr.log

Хвост основного лога панели: ошибки после смены IP и правок конфигов — здесь. Логи ядра и веб-сервера панели — cmd-247 и cmd-248.

Лог ihttpd 247

sudo tail -n 50 /usr/local/mgr5/var/ihttpd.log

Хвост лога встроенного веб-сервера панели. Если панель недоступна — сверься с cmd-161 (рестарт) и cmd-149 (статус).

Лог core 248

sudo tail -n 50 /usr/local/mgr5/var/core.log

Хвост лога COREmanager — низкоуровневые ошибки ядра панели. После правок core.conf ядро перезапускают командой cmd-249.

Перезапуск core после core.conf 249

sudo /usr/local/mgr5/sbin/mgrctl -m core exit

Применяет правки core.conf: мягко перезапускает ядро панели (модуль ispmgr перезапускается отдельно — cmd-67). Панель поднимется при следующем заходе.