Все сертификаты 01
sudo certbot certificatesПоказывает все сертификаты на сервере, их домены и даты истечения. Начни с неё, чтобы понять, что уже выпущено.
249 готовых команд VPS/Linux: SSL, nginx, сеть, диски, почта, Docker — с поиском и копированием
набор сверен: 2026-09
Жми симптом — открою нужный раздел и подсвечу команду.
Ничего не найдено
Попробуй другой запрос или сбрось фильтр.
Черновик команд: хранится только в этом браузере.
sudo certbot certificatesПоказывает все сертификаты на сервере, их домены и даты истечения. Начни с неё, чтобы понять, что уже выпущено.
sudo certbot --nginx -d coldcommand.solusrex.ruВыпускает сертификат и сам прописывает SSL в конфиг nginx. Удобно, когда nginx уже обслуживает домен.
sudo certbot certonly --webroot -w /var/www/certbot -d coldcommand.solusrex.ruВыпускает сертификат без изменения конфига nginx, проверяя домен через папку webroot. Именно так выпускаются серты test/inter/coldcommand в нашем docker-сетапе.
sudo certbot renew --dry-runПроверяет продление без реального выпуска (тестовый прогон). Запускай после любых изменений, чтобы убедиться, что автопродление не сломано.
sudo certbot renew --deploy-hook "systemctl reload nginx"Продлевает истёкшие серты и перезагружает nginx только если продление было. Перезагрузка нужна, иначе nginx продолжит отдавать старый сертификат из памяти.
sudo nginx -t && sudo systemctl reload nginxПроверяет синтаксис конфига nginx и мягко перезагружает его без обрыва соединений. Выполняй всегда после правок конфигов и после продления серта.
echo | openssl s_client -connect coldcommand.solusrex.ru:443 -servername coldcommand.solusrex.ru 2>/dev/null | openssl x509 -noout -dates -issuer -subjectПоказывает срок действия, издателя и домен сертификата удалённого сайта. Так проверяешь, что отдаётся именно твой LE-сертификат, а не чужой или просроченный.
curl -vI https://coldcommand.solusrex.ru/ 2>&1 | grep -E "subject|issuer|SSL connection|HTTP/"Проверяет HTTPS-ответ, версию TLS и данные сертификата одной командой. Видно код ответа и что шифрование реально работает.
sudo nano /etc/ssl/example.com.crtОткрывает файл сертификата для вставки серта с цепочкой. Если файл уже есть — проверь содержимое через декодер или создай рядом example.com1.crt.
sudo nano /etc/ssl/example.com.keyОткрывает файл ключа для вставки приватного ключа. Выход — Ctrl+X, подтвердить Y, ключ никому не показывай.
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.
dnf list installed | grep 'certbot-nginx'Проверяет через dnf, установлен ли nginx-плагин certbot. Пустой вывод — доустанови пакет из cmd-128. На CentOS 7 (EOL) переезжай на AlmaLinux или Rocky.
30 6 * * * certbot renew --deploy-hook "systemctl reload nginx"Строка для crontab -e: каждое утро пробует продлить серты и мягко перезагружает nginx только при удачном продлении. deploy-hook, как в cmd-05, не трогает работающий сервис, если продления не было. Перед добавлением проверь PATH с /usr/bin и /usr/sbin.
sudo cp /etc/nginx/bx/conf/ssl.conf /etc/nginx/bx/conf/twssl.confДелает копию конфига для своих правок, только если twssl.conf ещё нет. После — удали из копии обе строки ssl_certificate с cert.pem.
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.
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.
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;Прописывает пути Let's Encrypt в том же twssl-блоке. Домены в путях должны совпадать с -d из выпуска.
return 301 https://$host:443$request_uri;Отправляет весь HTTP-трафик на HTTPS с тем же адресом. Вставляй в s1.conf или bx_ext_*.conf сразу после server_name.
server_name example.com www.example.com new-alias.ru www.new-alias.ru;Добавляет www и дополнительный домен в nginx-vhost. Тот же набор в Apache — ServerAlias в /etc/httpd/bx/conf/*.conf.
sudo systemctl reload nginxПлавно перезагружает nginx без обрыва соединений после правок vhost и алиасов. Apache — так же: sudo systemctl reload apache2 на Debian/Ubuntu или sudo systemctl reload httpd на RHEL/Alma. Конфиг проверяй заранее связкой cmd-06.
sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096Генерирует DH-параметры для nginx. Опционально: TLS 1.3 их не использует, современные клиенты договариваются через ECDHE — параметры нужны только старым клиентам на TLS 1.2 с DHE. Работает долго (минуты), не прерывай; флаг -dsaparam ускоряет выпуск.
openssl x509 -noout -dates -in /etc/letsencrypt/live/solusrex.ru/fullchain.pemЧитает notBefore и notAfter прямо из fullchain.pem на диске — без сети и без SNI. Дополняет сетевые проверки cmd-07 и cmd-43: здесь видно, что реально лежит на сервере. Путь подставь под свой домен — как в cmd-134.
ip -brief addr showКратко показывает все интерфейсы и их IP-адреса в одну строку на интерфейс. Самая быстрая проверка «какой IP где».
ip route showПоказывает таблицу маршрутов и шлюз по умолчанию. Если нет default via ... — интернета не будет.
ip -s link show "$(ip route get 1.1.1.1 | awk '{print $5; exit}')"Показывает состояние основного интерфейса, MTU, MAC и счётчики ошибок/потерь. Имя определяется динамически: в облаках привычное имя почти не встречается — бывает ens3, enp1s0 или ens18.
ss -tulpnПоказывает, какие порты слушают TCP/UDP и какие процессы их держат. Проверяй после запуска nginx/docker, что 80/443 реально заняты.
ss -sПоказывает сводку по сокетам (сколько TCP/UDP открыто). Быстрый способ понять, не течёт ли что-то по соединениям.
resolvectl statusПоказывает DNS-серверы для каждого интерфейса через systemd-resolved. На Ubuntu 24.04 это главный способ проверить, откуда берётся DNS.
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 или нет».
resolvectl query coldcommand.solusrex.ruПроверяет резолвинг имени через системный резолвер. Видно, какой сервер ответил и какой IP вернулся.
sudo lsof -i :443 -sTCP:LISTEN -P -nПоказывает процесс и PID, который слушает порт 443. Дополняет ss: видно именно кто держит порт.
sudo lsof -p 1Показывает все файлы и сокеты, открытые процессом с ID 1. Замени 1 на PID из прошлой команды.
sudo lsof -i -a -p 1Показывает только сетевые соединения процесса с ID 1. Так видно, куда именно ходит процесс.
sudo lsof -Pni | grep LISTENПоказывает все слушающие порты разом через фильтр LISTEN. Удобно для быстрого обзора без флагов состояния.
sudo lsof -nP -iTCP -sTCP:LISTENПоказывает все TCP-порты в состоянии LISTEN без grep. Чистый вариант вместо пайпа выше.
sudo lsof +D /var/logПоказывает открытые файлы в каталоге /var/log. Так видно, что держит логи или мешает размонтировать.
ethtool <iface>Показывает скорость, duplex и ошибки сетевого интерфейса. Имя подставь из cmd-09 — бывает ens3, enp1s0 или ens18.
ls /etc/netplan/ && cat /etc/netplan/*.yamlПоказывает файлы постоянной конфигурации сети и их содержимое. На Ubuntu Server вся статика живёт именно здесь.
sudo netplan generateПроверяет YAML-синтаксис без применения изменений. Запускай перед apply, чтобы не потерять SSH из-за опечатки в отступах.
sudo netplan tryПрименяет конфиг тестово с автооткатом через 120 секунд без подтверждения. Самый безопасный способ менять сеть по SSH.
sudo netplan applyПрименяет конфиг сети навсегда. Делай только после generate/try и имея запасной доступ к консоли.
sudo netplan status -aПоказывает сводку интерфейсов, маршрутов и DNS из netplan. Удобнее сырого ip addr, когда хочешь сверить «что задумано vs что активно».
sudo netplan --debug applyПрименяет конфиг с подробным логом для диагностики. Используй, когда обычный apply молча не работает.
nmcli device statusПоказывает устройства и их состояние через NetworkManager. На Server 24.04 сервис может отсутствовать — тогда это нормально, сеть ведёт netplan+networkd.
nmcli connection showПоказывает сохранённые подключения NetworkManager. Актуально для десктопа; на сервере команда может вернуть пусто — это не ошибка.
cloud-init status --longПоказывает статус cloud-init и этапы настройки. Если hostname или сеть сбрасываются после ребута — правь /etc/cloud/cloud.cfg или отключай управление облаком.
sudo nginx -tПроверяет синтаксис всех конфигов nginx без перезапуска. Ответ должен быть syntax is ok и test is successful.
sudo systemctl status nginx --no-pagerПоказывает, запущен ли nginx и нет ли ошибок старта. Смотри сюда первым делом при 502/белой странице.
ls -l /etc/nginx/sites-enabled/ && cat /etc/nginx/sites-available/example.comПоказывает включённые виртуальные хосты и содержимое конфига сайта. Так находишь, какой server_name реально обслуживает домен.
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/Включает сайт симлинком из available в enabled. После неё обязательно nginx -t и reload.
systemctl status php8.3-fpm --no-pagerПроверяет PHP-FPM 8.3 — версию по умолчанию на Ubuntu 24.04. Если он не running, nginx вернёт 502 на любом PHP.
ls -l /run/php/*.sockПоказывает сокеты PHP-FPM, к которым обращается nginx. Путь из fastcgi_pass должен совпадать с реальным файлом сокета.
sudo chown -R www-data:www-data /var/www/example.com/htmlОтдаёт файлы сайта пользователю веб-сервера. Неверный владелец — самая частая причина 403 после заливки по root.
sudo tail -n 50 /var/log/nginx/error.logПоказывает последние 50 строк ошибок nginx. Здесь видно, ругается ли он на права, сокет PHP или синтаксис.
sudo /usr/local/mgr5/sbin/mgrctl -m ispmgr webdomainПоказывает все сайты панели одной строкой на сайт. С неё начинай разбор чужого сервера с ISPmanager.
php -nv && ls -d /opt/php* 2>/dev/nullПоказывает нативный PHP и альтернативные версии из /opt. Так сверяешь, что реально доступно сайтам.
sudo /usr/local/mgr5/sbin/mgrctl -m ispmgr letsencrypt.periodicДожимает выпуск и продление Let's Encrypt вручную. Подробности смотри в /usr/local/mgr5/var/letsencrypt.log.
sudo /usr/local/mgr5/sbin/mgrctl -m ispmgr exitМягко перезапускает панель, сайты при этом не трогает. Модуль сам поднимется при следующем заходе на :1500.
ls /etc/nginx/vhosts/ && sudo tail -n 50 /var/www/httpd-logs/example.com.error.logПоказывает конфиги сайтов панели и свежие ошибки сайта. Путь лога поменяй под свой домен.
sudo mogwai sites listПоказывает все сайты: ID, домен, владелец и версия PHP. ID из этой таблицы нужен для остальных команд.
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.
sudo mogwai sites update --id=1 -h php_fpm --handler_version=8.3Меняет режим и версию PHP у сайта по ID. ID смотри в sites list выше.
sudo mogwai certificates create-le --server-name=example.com --email=admin@example.comВыпускает и ставит бесплатный Let's Encrypt для сайта. Редирект на HTTPS включай в Настройки → HTTPS.
sudo tail -n 50 /var/www/fastuser/data/logs/example.com-frontend.error.logПоказывает свежие ошибки сайта. Конфиг nginx рядом: /etc/nginx/fastpanel2-sites/fastuser/example.com.includes.
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 — пусто значит переезд чистый.
sudo mogwai certificates create-le --server-name=example.com --email=admin@example.com --debugПовторяет выпуск из cmd-72 с подробным логом. Если verification не проходит — смотри, какой challenge отвалился, и чини DNS.
sudo perl -pi -e 's/<OLD-IP>/<NEW-IP>/g' /etc/exim/*Меняет старый IP на новый во всех файлах Exim разом. Перед ним скопируй каталог, после — рестарт ниже.
sudo systemctl restart eximПрименяет правки Exim из прошлой команды. Проверь статус и очередь, письма должны пойти с нового IP.
sudo mv /usr/local/mgr5/var/.ispmgr.progress.xml /root/ispmgr.progress.bakУбирает зависший флаг операции, когда панель висит на прогрессе. Не удаляй в никуда — сложи бэкап в /root.
sudo /usr/local/mgr5/sbin/mgrctl -m ispmgr --unlockСнимает блокировку панели после зависшей операции. Голый exit сюда не нужен — он уже есть в cmd-67.
sudo systemctl status ihttpd ispmysql --no-pagerШтатная проверка панели и её MySQL перед сменой IP. Обе должны быть active — иначе чини службы, а не IP.
sudo sed -i 's/<OLD-IP>/<NEW-IP>/g' /usr/local/mgr5/etc/ispmgr.confАварийно меняет IP в конфиге панели, когда штатная смена недоступна. После — обязательно grep-проверка ниже.
sudo grep -rn <OLD-IP> /usr/local/mgr5/etc/ 2>/dev/null && sudo systemctl restart ihttpd ispmysqlИщет остатки старого IP и рестартит панель с базой, если чисто. Нечисто — добей sed выше, а не рестарт по кругу.
sudo du -sh /var/lib/mysql /var/ispmysql && sudo tar -czf /root/isp-backup.tar.gz /var/lib/mysql /var/ispmysqlСмотрит размер баз и складывает бэкап в /root перед сменой IP. Без бэкапа sed выше не запускай.
sudo sh /home/bitrix/configure.sh 2>/tmp/bitrix-config.logГонит настройку BitrixVM с логом ошибок в /tmp. Если в логе Cannot assign requested address — вернись к sysctl из cmd-138, это не дубль.
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.
sudo ls -l /var/www/USERNAME/data/logs/ | head -n 30Обобщает cmd-68 и cmd-73: показывает все логи юзера вместо одного домена. USERNAME поменяй на владельца из sites list.
sudo ls /var/log/fastpanel2/ && sudo tail -n 50 /var/log/fastpanel2/*.logСмотрит системные логи самой панели, а не сайтов. Пусто — панель молчит, копай сайты из прошлой команды.
sudo systemctl restart fastpanel2Перезапускает саму панель через systemd, сайты при этом не трогает. Если :8888 молчит после — смотри логи панели из cmd-156.
sudo systemctl restart ihttpdПерезапускает встроенный веб-сервер панели, сайты не затрагивает. Мягкий exit уже есть в cmd-67, разблокировка в cmd-148, связка со сменой IP в cmd-151, статус в cmd-149.
sudo systemctl status fastpanel2 --no-pager -lСначала смотрим состояние панели с полным выводом, и только потом рестартим её, как в cmd-160. Флаг -l не обрезает длинные строки — видно настоящую причину падения. Логи панели — cmd-156.
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, почта, панель.
ping -c 4 8.8.8.8Проверяет базовый интернет по IP без DNS. Если не идёт — проблема в маршрутах или фаерволе, а не в домене.
ping -c 4 coldcommand.solusrex.ruПроверяет доступность твоего домена с учётом DNS. Сравни с предыдущим: IP идёт, а домен нет — чини DNS.
mtr --report --report-cycles 10 coldcommand.solusrex.ruПоказывает потери и задержки на каждом хопе до сервера. Видно, где именно рвётся путь (у тебя, у провайдера или у хостинга).
traceroute coldcommand.solusrex.ruПоказывает маршрут пакетами до цели без статистики mtr. Если traceroute нет — поставь mtr-tiny или используй tracepath.
curl -I https://coldcommand.solusrex.ru/Показывает только HTTP-заголовки ответа. Быстрая проверка «сайт жив, редиректы и серт в порядке».
curl -w "%{http_code} %{time_total}s %{remote_ip}\n" -o /dev/null -s https://coldcommand.solusrex.ru/Замеряет код, время ответа и реальный IP сервера одной строкой. Удобно для сравнения «было/стало» после правок.
dig A coldcommand.solusrex.ru +shortПоказывает A-запись домена без лишнего мусора. Должен вернуть 147.45.238.82 после настройки DNS.
curl -I http://coldcommand.solusrex.ru/Проверяет HTTP-версию сайта до редиректа. Должен вернуть 301 на https:// — так задумано конфигом nginx.
nc -zv <IP> <порт>Пробует соединение с портом: succeeded — открыт, refused — закрыт или не слушают, timeout — фильтрует фаервол. Изнутри проверяй 127.0.0.1, снаружи — публичный IP.
curl -s -o /dev/null -w "%{http_code} %{time_total}s %{remote_ip}\n" https://coldcommand.solusrex.ru/Базовый замер доступности сайта из твоей сети одной строкой. Повторяй несколько раз: плавающий таймаут намекает на фильтрацию по пути.
curl -v https://coldcommand.solusrex.ru/ 2>&1 | grep -E "subject|issuer|SSL connection|Server certificate"Показывает TLS-хендшейк и данные сертификата при соединении. Обрыв до Server certificate — признак SNI-фильтрации.
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 недоступен вообще».
curl -4 -s -o /dev/null -w "IPv4: %{http_code} %{time_total}s\n" https://coldcommand.solusrex.ru/Замеряет доступность строго через IPv4. Сравни с IPv6-замером ниже — ТСПУ часто режет протоколы по-разному.
curl -6 -s -o /dev/null -w "IPv6: %{http_code} %{time_total}s\n" https://coldcommand.solusrex.ru/Замеряет доступность строго через IPv6. Ошибка при живом IPv4 — чини AAAA или фаервол под IPv6, а не сайт.
curl --resolve coldcommand.solusrex.ru:443:147.45.238.82 -I https://coldcommand.solusrex.ru/Принудительно идёт на твой IP, минуя DNS. Если так работает, а без --resolve нет — проблема в подмене DNS, а не в блокировке IP.
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/таймаут — классический симптом ТСПУ.
docker compose versionПоказывает версию Compose V2 (синтаксис с пробелом). Дефисный docker-compose устарел — используй только эту форму.
docker compose configПроверяет и печатает итоговый compose-файл после подстановок. Запускай после любых правок docker-compose.yml.
docker compose psПоказывает контейнеры текущего проекта, порты и состояние. Здесь должно быть coldcommand Up после деплоя.
docker compose logs --tail=100 nginx-proxyПоказывает последние 100 строк лога прокси. Смотри сюда при 502/404 после правок server-блоков.
docker compose up -dСоздаёт и запускает всё по compose-файлу в фоне, трогая только изменённое. Безопасно повторять — лишнее не пересоздаст.
docker compose exec whois-api shОткрывает шелл внутри запущенного контейнера сервиса. Выходи через exit; для одноразовой команды добавляй её после sh -c.
docker volume ls && docker system dfПоказывает именованные тома и сколько диска ест Docker. Смотри перед чисткой, чтобы не удалить живое.
docker image prune -fУдаляет только висячие образы без тегов. Безопасная чистка; полную system prune -a --volumes без нужды не запускай — снесёт данные томов.
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"Показывает все контейнеры хоста — имена, статусы и порты без лишних колонок, в отличие от cmd-50, который знает только текущий compose-проект. Полезно, когда на сервере живёт что-то ещё.
crontab -lПоказывает задачи cron текущего пользователя. Проверяй, нет ли дублей ручного certbot renew, если продление уже делает контейнер.
systemctl list-timers | grep certbotПроверяет системный таймер автопродления сертов. На нашем проде продлевает контейнер certbot-renew, а не хост-таймер — пусто здесь нормально.
journalctl -u nginx -n 50 --no-pagerПоказывает последние 50 строк лога юнита nginx. Так находишь, почему сервис не стартовал после правок.
journalctl --since "1 hour ago" -p err --no-pagerПоказывает все ошибки системы за последний час. Узкий фильтр вместо чтения всего журнала целиком.
sudo ufw status verboseПоказывает статус фаервола и открытые порты. Для веба должны быть разрешены 80/443 и твой SSH-порт.
sudo ufw allow OpenSSH && sudo ufw allow 'Nginx Full'Разрешает SSH и весь веб-трафик (80+443) в фаерволе. Выполняй до ufw enable, иначе отрежешь себе SSH.
ssh -i ~/.ssh/id_ed25519 user@147.45.238.82 -p 1488Подключается к серверу по ключу на боевой порт 1488 (SSH не на 22). Пользователя и порт подставь свои; пароли не используй и в команды их не вставляй.
sudo systemctl status nginx --no-pager && sudo systemctl is-enabled nginxПроверяет, что nginx запущен сейчас и включён на автозапуск. Оба должны быть active/enabled, иначе после ребута сайт ляжет.
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.
sudo sysctl -pПеречитывает /etc/sysctl.conf, чтобы правило пережило ребут. Без неё после перезагрузки снова вылезет Cannot assign requested address.
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 на свои.
sudo dpkg --configure -aДожимает прерванную установку пакетов после ошибки ключа. Запускай перед повторным apt update, иначе репозиторий останется битым.
ls -l /etc/apt/trusted.gpg.d/Показывает сложенные ключи репозиториев. Нет нужного — вернись к прошлой команде с NO_PUBKEY.
systemctl --failedСписок юнитов в состоянии failed после загрузки. Пусто — всё поднялось; иначе смотри причину через journalctl из cmd-166.
journalctl -u <юнит> -b --no-pagerПоказывает весь журнал выбранного юнита с момента последней загрузки. Замени <юнит> на имя, например nginx или php8.3-fpm; короткий хвост — cmd-58.
systemctl daemon-reloadПрименяет правки .service и .timer без перезагрузки сервера (нужен root). Выполняй после любого изменения юнитов, иначе systemd продолжит работать по старой версии.
systemctl list-timers --allПоказывает активные и неактивные таймеры и время следующего запуска. Так видно, кто на самом деле будит систему; certbot-таймер — cmd-57.
apt list --upgradableСписок пакетов с доступными обновлениями. Сначала обнови индекс: sudo apt update, иначе список будет пустым или устаревшим.
cat /var/run/reboot-requiredФайл появляется после обновления ядра или libc — значит нужен ребут. Нет файла — команда вернёт ошибку, это нормально.
lastb | head -n 20Показывает последние неудачные попытки входа в систему. Обычно нужен root: список читается из /var/log/btmp. Всплеск — подбор пароля, ставь защиту из cmd-174.
grep "Failed password" /var/log/auth.log | tail -n 20Ищет в журнале авторизации неудачные попытки SSH. На RHEL/Alma путь другой — /var/log/secure. Успешные входы — раздел 8 и last.
fail2ban-client status sshdПоказывает счётчики jail sshd и список забаненных IP (часто нужен sudo). Служба не отвечает — проверь systemctl status fail2ban.
timedatectlПоказывает время, зону и статус синхронизации. Неверная зона ломает cron и метки времени в логах; точность часов — cmd-180.
chronyc trackingПоказывает смещение часов и сервер синхронизации. Большое смещение объясняет странные метки времени в логах и сбои проверки сертификатов.
rsync -avz /var/www/ /backup/www/Копирует каталог перед правками с сохранением прав и структуры. Слэш на конце источника обязателен: без него копия вложится папкой. Приёмник создай заранее.
logrotate -d /etc/logrotate.confПрогон logrotate в режиме отладки: показывает, что и куда ротируется, без изменений на диске. Флаг -f заставит выполнить ротацию принудительно.
curl -I https://example.com/Показывает только заголовки и код ответа главной. С неё начинай разбор: 200 — жив, 301 — редирект, 4xx/5xx — копай дальше по ветке.
curl -s -o /dev/null -w "%{http_code} %{time_total}s %{remote_ip}\n" https://example.com/Показывает код, время ответа и IP сервера одной строкой. Долгое время при 5xx — признак висящего PHP-FPM или базы.
sudo awk '$9 ~ /^4[0-9][0-9]$/' /var/log/nginx/access.log | tail -n 50Выбирает последние 50 запросов с кодом 4xx. Так видно, какие страницы отдают 403 и 404.
sudo awk '$9 ~ /^5[0-9][0-9]$/' /var/log/nginx/access.log | tail -n 50Выбирает последние 50 запросов с кодом 5xx. Если пусто — ошибки не в access, смотри error-лог ниже.
sudo awk '$9 ~ /^5/ {print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -n 20Показывает, какие адреса чаще всего отдают 500/502/503/504. Чинишь самый частый — снимаешь большую часть ошибок.
sudo grep -Ei "upstream|connect\(\) failed|timed out" /var/log/nginx/error.log | tail -n 50Выбирает строки про апстрим: сокет PHP-FPM, таймауты, refused. В них точная причина 502 и 504.
sudo journalctl -u php8.3-fpm -n 50 --no-pagerПоказывает последние 50 строк службы PHP-FPM 8.3. Ищи max_children, fatal и OOM — они дают 502.
sudo grep -R "fastcgi_pass" /etc/nginx/ && ls -l /run/php/Сверяет, куда смотрит nginx, и есть ли такой сокет. Разные пути после обновления PHP — частая причина 502.
sudo tail -n 50 /var/log/nginx/access.logПоказывает последние 50 запросов целиком. Сверяй время с error-логом — связка даёт ветку.
df -hПоказывает занятость дисков в гигабайтах. Строка 95–100% на / — чистить срочно.
df -h /Показывает занятость только корня / в гигабайтах, без лишних строк. 95–100% на / — чистить, кто съел — du из cmd-85.
df -iПоказывает свободные иноды. Место может быть, а иноды кончились — файлы не создаются.
sudo du -xhd1 / 2>/dev/null | sort -hРаскладывает корень по папкам без перехода на другие диски. Копай самую большую дальше.
sudo ncdu -x /Открывает удобный просмотр диска прямо в терминале. Если нет — поставь: sudo apt install ncdu.
swapon --show && free -hПоказывает swap и память в гигабайтах. Swap в работе при свободной RAM — признак утечки.
sudo dmesg -T | grep -Ei "out of memory|oom|killed process"Ищет убийства по памяти в ядре. Найденный php-fpm или mysqld — объяснение внезапных 502.
journalctl --disk-usage && sudo journalctl --vacuum-size=100MСначала показывает размер журнала, потом оставляет последние 100 МБ. Безопасно — старые логи только ротируются.
sudo du -sh /var/cache/apt/archives/ && sudo apt-get cleanПоказывает кэш пакетов и чистит его. Безопасно — пакеты докачаются при нужде.
sudo du -sh /var/lib/mysql/* 2>/dev/null | sort -rh | head -n 20Показывает самые тяжёлые базы и бинлоги. Дальше — PURGE BINARY LOGS внутри MySQL, не удалением файлов.
smartctl -a /dev/vdaЧитает SMART: здоровье, ошибки, износ (обычно нужен sudo). На VPS часть параметров может быть недоступна из-за виртуализации — это нормально. Пакет smartmontools; имя диска — lsblk из cmd-164.
find / -xdev -size +500M -type f 2>/dev/nullИщет файлы больше 500 МБ в пределах корневой файловой системы (нужен root, чтобы видеть все каталоги). -xdev не уходит на другие диски, поэтому поиск быстрее; кто съел диск — cmd-85.
df -i /Показывает свободные иноды только на корневом разделе, без прочих дисков. Если место есть, а файлы не создаются — смотри IUse% на /: полный счёт по всем дискам даёт cmd-84, виновника ищет cmd-85.
mailqПоказывает застрявшие письма. Растущая очередь — симптом: DNS, порт 25 или репутация.
systemctl status postfix --no-pagerПроверяет, жив ли почтовик. Мёртвый postfix — сначала старт, потом очередь.
sudo tail -n 50 /var/log/mail.logПоказывает последние 50 строк почты. Ищи bounced, deferred и refused — в них причина.
sudo ss -ltnp | grep -E ':25|:587|:465'Проверяет SMTP-порты и кто их держит. Пусто — postfix не слушает или закрыт файрволом.
nc localhost 25Вручную жмёт на SMTP: жди 220. Выход — Ctrl+C или quit. Если nc нет, годится openssl s_client -starttls smtp -connect localhost:25. Нет ответа — копай службу и файрвол.
dig +short TXT example.comПоказывает, кому можно слать от домена. Должно начинаться с v=spf1, иначе — в спам.
dig +short TXT mail._domainkey.example.com && dig +short TXT _dmarc.example.comСверяет подпись DKIM и политику DMARC. Пустой ответ — запись не создана.
dig +short 82.238.45.147.zen.spamhaus.orgПроверяет IP в базе Spamhaus. Пусто — чисто; ответ 127.0.0.x — реальный листинг. Код 127.255.255.x означает «запрос отклонён публичному резолверу», а не листинг: сверяйся с нашим чекером https://solusrex.ru (раздел спам-баз) или проверяй с самого сервера. IP подставь наоборот.
echo "Timeweb test" | sendmail -v admin@example.comШлёт тест через локальный postfix. Смотри verbose-вывод и потом mailq с mail.log.
uptime && wПоказывает load average за 1/5/15 минут и кто в системе. Сравни нагрузку с числом ядер.
top -b -n1 | head -n 20Снимает верхушку CPU и RAM без интерактива. Подходит для копипаста в поддержку.
vmstat 1 5Делает пять замеров: r — очередь к CPU, wa — ожидание диска, si/so — своп. Своп и wa — чинить память и диск.
iostat -xz 1 3Показывает util и await по дискам. 100% и большой await — диск не тянет. Нет команды — поставь sysstat.
sudo iotop -b -n1 | head -n 20Показывает процессы-писатели разово. Нет команды — поставь iotop.
sudo ss -tanp | head -n 30Показывает TCP-соединения и очереди. Много TIME-WAIT и SYN-SENT — перегруз или атака.
sudo awk '{print $NF, $7, $9}' /var/log/nginx/access.log | sort -nr | head -n 20Сортирует запросы по времени из лога. Требует request_time и upstream_time в формате — иначе добавь в nginx.
sudo tail -n 50 /var/log/php8.3-fpm/www-slow.logПоказывает скрипты дольше slowlog-таймаута. Пусто — включи request_slowlog_timeout=3s на окно.
sudo mysqladmin processlist --verbose | head -n 30Показывает текущие запросы базы без пароля в команде. Долгие в Time — кандидаты на индекс.
nprocПоказывает число доступных ядер. Сравни с load average из cmd-101: нагрузка выше числа ядер — CPU перегружен.
ps aux --sort=-%mem | head -n 15Показывает 15 самых прожорливых по памяти процессов. Дополняет топ по CPU из cmd-102; утечки и OOM — раздел 10.
dig +short -x 147.45.238.82Проверяет PTR для IP. Задаётся в панели Сети → Публичные IP → PTR, кроме Новосибирска.
hostnamectlПоказывает hostname и ОС. Для почты должен совпадать с mail.example.com и PTR.
sudo hostnamectl set-hostname mail.example.comМеняет имя сервера навсегда, проверка — hostnamectl из cmd-111. Если имя сбрасывается после ребута — смотри /etc/hosts и cloud-init.
systemctl status qemu-guest-agent --no-pagerПроверяет агента Timeweb. Без него глючат кнопки панели: перезагрузка, IP и снапшоты.
systemctl status serial-getty@ttyS0 --no-pagerПроверяет серийную консоль. Панель Консоль, серийная или VNC, работает без SSH и сети.
sudo ss -ltnp | grep -E ':22|:80|:443'Показывает SSH и веб внутри. Запреты снаружи — панель Сети → Firewall: whitelist или blacklist.
lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINTSПоказывает диски и точки. В rescue диск виден как /dev/sda1 — монтируй вручную через VNC.
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT,FSTYPEПоказывает диски с типом раздела и одной точкой монтирования. В отличие от rescue-варианта из cmd-115 — колонка TYPE и единственное MOUNTPOINT вместо списка.
cat /etc/os-release && uname -rПоказывает дистрибутив и ядро. Переустановка: Конфигурация → Переустановить, данные удалятся, бэкапы останутся.
sudo sync && systemctl is-system-runningСбрасывает кэш и проверяет систему. Снапшот: Бэкапы → Создать, один на сервер, живёт 7 дней.
twc --helpПоказывает справку CLI Timeweb. Токен в команду не вшивай — храни отдельно, операции те же, что в панели.
twc server listПоказывает серверы через CLI Timeweb без токена в команде: токен храни отдельно, в переменной окружения или конфиге CLI. Справка — cmd-118.
uptime -p && hostname -fДве короткие проверки одной строкой: uptime -p — аптайм словами, hostname -f — полное имя для почты и PTR. Подробнее по времени — cmd-101 и cmd-111.
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.
hostname -fПолное имя хоста (FQDN) — то, что уходит в почту и PTR, в отличие от коротких hostname и hostname -s: они дают только часть до первой точки. Удобно для проверки после смены имени из cmd-191 — видно, что провайдерское имя по умолчанию заменилось на своё.
twc server reboot <SERVER_ID>Перезагружает сервер; --hard — жёсткий ребут. ID — из cmd-185, токен CLI храни отдельно (cmd-118).
twc server shutdown <SERVER_ID>Гасит сервер; включить обратно — twc server boot. Для аварийных работ и смены тарифа.
twc server reset-root-password <SERVER_ID> -yВыдаёт новый root-пароль в консоль. Старый перестанет работать; -y подтверждает операцию. Доступ к серверу после — cmd-114.
twc server set-boot-mode <SERVER_ID> recoveryСпасательный режим (аналог rescue): доступ через VNC (cmd-217), диски монтируются вручную (cmd-115). Вернуть — set-boot-mode default.
twc server vnc <SERVER_ID> --printПечатает доступ к VNC или открывает окно. Работает без SSH и сети — выручает, когда доступа нет.
twc server backup create <DISK_ID>Внеплановый бэкап; список — twc server backup list <DISK_ID>, восстановление — backup restore.
twc server backup schedule <DISK_ID> --enable --keep 3 --interval weekРасписание: day|week|month, --keep — сколько копий хранить. Проверка — --status, выключить — --disable.
twc server disk resize <DISK_ID> --size 100GУвеличивает размер диска; затем расширь ФС в гостевой ОС (growpart + resize2fs/xfs_growfs).
twc server resize <SERVER_ID> --cpu 2 --ram 4G --disk 80GМеняет CPU/RAM/диск (размеры — с единицами: 4G, 80G; или --preset-id) и --bandwidth; сервер перезагрузится.
twc image create <DISK_ID>Снимок диска для клонов и переноса; список — twc image list, свой образ — twc image upload <URL>.
twc server ip add <SERVER_ID>Выдаёт серверу публичный IP; список — twc server ip list <ID>, отвязать — ip remove <IP>.
twc server ip set <IP_ADDRESS> --ptr mail.example.comЗадаёт обратную зону для IP сервера — то же, что панель Сети → PTR. Проверка — cmd-110.
twc ip attach <IP> --server <SERVER_ID>Floating IP переносится между сервисами: twc ip detach <IP>, затем attach к server|balancer|database. Адрес не теряется.
twc firewall rule create "22/TCP" "80/TCP" "443/TCP" -G --group-name mainСоздаёт группу (-G) с правилами порт/протокол; диапазон "2000-3000/UDP", протокол ICMP; направления --ingress/--egress и --cidr.
twc firewall link server <SERVER_ID> <GROUP_ID>Вешает группу правил на сервер (также database|balancer). Отвязать — unlink, проверить — cmd-228.
twc firewall show server <SERVER_ID>Показывает активные на сервере группы и правила. Сверяй после каждой правки.
twc vpc create 10.0.0.0/24 --name internalСоздаёт VPC; приватный IP — при создании сервера: twc server create --network-id <ID>. Ресурсы сети — twc vpc show <ID>.
twc domain record add example.com --type A --value 1.2.3.4A/TXT/MX/CNAME/AAAA/SRV; список — record list, правка — record update <ID>.
twc apps listСписок приложений платформы; подробности — twc apps get <APP_ID>.
twc apps create app.ymlСоздаёт приложение по YML-конфигу. Автодеплой из GitHub/GitLab/Bitbucket; статус смотри через twc apps get <APP_ID> (и в панели); откат — передеплой прошлого коммита.
twc apps get <APP_ID>Состояние приложения (и в панели); в текущих сборках twc опция --status объявлена, но на вывод и код не влияет — для скриптов не полагайся на неё.
sudo ls -la /home/n8n/ && sudo grep -E "DOMAIN|SUBDOMAIN|SSL_EMAIL" /home/n8n/.envПроверяет каталог процесса и сверяет домены с почтой для LE. Ловушка — SSL_EMAIL с example.com из примера: с ней серт не выпустится, подставь живую.
sudo docker compose -f /home/n8n/docker-compose.yml logs --tail=100Показывает свежие 100 строк n8n без рестарта. Ищи ошибки verification и client/open подключения.
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 не подхватятся.
ip addrПервый шаг гайда: посмотреть, какие адреса уже назначены интерфейсам — нового IP здесь ещё быть не должно. Краткая версия той же проверки — cmd-09.
sudo ip addr add <IP>/24 dev <IFACE>Временно добавляет дополнительный IPv4-адрес до перезагрузки (пример гайда: 192.0.2.70/24 на eth0; имя интерфейса — из ip addr: eth0, ens3…). Сначала закажи адрес в панели провайдера. Для сохранения после ребута — раздел «Добавление IP — постоянная настройка».
sudo ip addr add <IPv6>/128 dev <IFACE>То же для IPv6 (пример гайда: 2001:db8:a:a::a/128). Маска — /128, реже /64. До перезагрузки.
ip route show defaultПроверяет шлюз по умолчанию для IPv4 (строка default via …). Нет строки — добавь командой cmd-199, иначе интернета не будет.
ip -6 route show defaultШлюз по умолчанию для IPv6. Нет строки — cmd-200.
sudo ip route add default via <GW> dev <IFACE>Добавляет IPv4-шлюз вручную. Шлюз — первый адрес сети: для 192.0.2.70/24 это 192.0.2.1. Делай осторожно: ошибка в шлюзе рвёт связь — держи консоль панели под рукой.
sudo ip route add default via <GW6> dev <IFACE> onlinkIPv6-шлюз вручную: первые четыре хекстета адреса и ::1 (2001:db8:a:a::a → 2001:db8:a:a::1), флаг onlink обязателен.
sudo chmod 600 /etc/netplan/99-ipv4.yaml /etc/netplan/99-ipv6.yamlГайд требует закрыть файлы адресов от всех, кроме root. Выполняй после создания 99-ipv4.yaml и 99-ipv6.yaml со своими адресами (шаблоны — в гайде Timeweb Cloud). В конфиге должны остаться все адреса: основной и дополнительные.
sudo systemctl disable --now dhclient6.serviceОтключает DHCPv6-клиент, чтобы он не конфликтовал с ручными адресами. В Ubuntu 22.04 и ниже — dhclient6.service, в 24.04/26.04 — dhcpcd6.service: проверь оба и отключи существующий.
sudo systemctl daemon-reloadПеречитывает юниты systemd после правок конфигов — шаг гайда перед netplan apply.
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.
printf 'network: {config: disabled}\n' | sudo tee /etc/cloud/cloud.cfg.d/99-disable-network-config.cfgЧтобы cloud-init больше не создавал свой сетевой конфиг после перезагрузки. Общая логика и статус — cmd-184.
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.
sudo systemctl restart networking.serviceПрименяет правки /etc/network/interfaces (Debian, Astra). В файле держи основной адрес и post-up ip addr add для дополнительных. По SSH делай аккуратно: ошибка рвёт доступ — держи консоль панели.
sudo nmcli connection modify <NAME> +ipv4.addresses <IP>/24CentOS/AlmaLinux: добавляет адрес к соединению NetworkManager. Первый адрес — без «+», каждый следующий — с «+ipv4.addresses». IPv6-вариант: +ipv6.addresses. Проверка: nmcli connection show <NAME> | grep addresses; имя соединения — cmd-24.
sudo nmcli connection modify <NAME> ipv4.gateway <GW>Шлюз для соединения NM. IPv6-вариант: ipv6.gateway <GW6>.
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»).
sudo systemctl restart NetworkManager.serviceПерезапуск NetworkManager после правок nmcli — применяет адреса.
sudo systemctl restart systemd-networkdArch: сеть на systemd-networkd — файлы /etc/systemd/network/*.network по гайду; проверь, что старые cloud-init-конфиги отключены. Nonlocal bind — cmd-206.
sudo grep ip /usr/local/mgr5/etc/ihttpd.conf | grep "^[^#*]"Показывает строки с IP в конфиге панели, отсекая комментарии и шаблоны. Найденный старый адрес — то, что меняет следующая команда. Если панель уже лежит целиком — сначала связка cmd-151 (проверка всех конфигов панели и рестарт).
sudo sed -i 's/<OLD-IP>/<NEW-IP>/g' /usr/local/mgr5/etc/ihttpd.confМеняет старый IP на новый в конфиге встроенного веб-сервера панели. Перед правкой сохрани /etc целиком — cmd-193. Применить — рестартом cmd-161, статус — cmd-149.
sudo sed -i 's/<OLD-IP>/<NEW-IP>/g' /etc/nginx/vhosts/*/*Меняет IP во всех vhost-конфигах сайтов nginx разом. После — проверь остатки (cmd-237) и перечитай конфиг: плавно cmd-137, статус cmd-26.
sudo grep -r <OLD-IP> /etc/nginx | grep "^[^#*]"Ищет старый IP в конфигах nginx, чтобы не осталось незамеченных файлов. Строки-комментарии и шаблоны отсекаются. Найденное правь тем же sed по каждому файлу из вывода.
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).
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.
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 не теряются).
sudo grep -n -A3 listen /usr/local/mgr5/etc/ihttpd.confПоказывает listen-секции конфига панели: какие адреса и порты слушает ihttpd и куда встанет новый IP (раздел „Адреса панели“ в интерфейсе). Дальше — адрес по умолчанию cmd-242.
sudo grep -n "DefaultIPAddr" /usr/local/mgr5/etc/ispmgr.confIP панели по умолчанию в основном конфиге ispmanager. Адреса прослушивания — cmd-241.
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.
sudo cat /etc/exim4/domainipsСмотрит сопоставление почтовых доменов и IP, с которых уходит почта. На RHEL — /etc/exim/domainips. Это просмотр: замену делает cmd-145.
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.
sudo tail -n 50 /usr/local/mgr5/var/ispmgr.logХвост основного лога панели: ошибки после смены IP и правок конфигов — здесь. Логи ядра и веб-сервера панели — cmd-247 и cmd-248.
sudo tail -n 50 /usr/local/mgr5/var/ihttpd.logХвост лога встроенного веб-сервера панели. Если панель недоступна — сверься с cmd-161 (рестарт) и cmd-149 (статус).
sudo tail -n 50 /usr/local/mgr5/var/core.logХвост лога COREmanager — низкоуровневые ошибки ядра панели. После правок core.conf ядро перезапускают командой cmd-249.
sudo /usr/local/mgr5/sbin/mgrctl -m core exitПрименяет правки core.conf: мягко перезапускает ядро панели (модуль ispmgr перезапускается отдельно — cmd-67). Панель поднимется при следующем заходе.