Все сертификаты 01
sudo certbot certificatesПоказывает все сертификаты на сервере, их домены и даты истечения. Начни с неё, чтобы понять, что уже выпущено.
Шпаргалка: 63 команды в 8 разделах — SSL, сеть, netplan, nginx, диагностика, ТСПУ, Docker, прочее. Каждая команда копируется в один клик. Ниже — редактор: свой текст хранится только в браузере.
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 и данные сертификата одной командой. Видно код ответа и что шифрование реально работает.
ip -brief addr showКратко показывает все интерфейсы и их IP-адреса в одну строку на интерфейс. Самая быстрая проверка «какой IP где».
ip route showПоказывает таблицу маршрутов и шлюз по умолчанию. Если нет default via ... — интернета не будет.
ip -s link show eth0Показывает состояние интерфейса, MTU, MAC и счётчики ошибок/потерь. Полезно при подозрении на проблемы драйвера или кабеля виртуалки.
ss -tulpnПоказывает, какие порты слушают TCP/UDP и какие процессы их держат. Проверяй после запуска nginx/docker, что 80/443 реально заняты.
ss -sПоказывает сводку по сокетам (сколько TCP/UDP открыто). Быстрый способ понять, не течёт ли что-то по соединениям.
resolvectl statusПоказывает DNS-серверы для каждого интерфейса через systemd-resolved. На Ubuntu 24.04 это главный способ проверить, откуда берётся DNS.
sudo resolvectl dns eth0 1.1.1.1 8.8.8.8Временно задаёт DNS-серверы для интерфейса до перезагрузки. Удобно для теста «дело в нашем DNS или нет».
resolvectl query coldcommand.solusrex.ruПроверяет резолвинг имени через системный резолвер. Видно, какой сервер ответил и какой IP вернулся.
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. Актуально для десктопа; на сервере команда может вернуть пусто — это не ошибка.
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 или синтаксис.
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.
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 без нужды не запускай — снесёт данные томов.
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 22Подключается к серверу по ключу на 22-й порт. Пароли не используй и в команды их не вставляй.
sudo systemctl status nginx --no-pager && sudo systemctl is-enabled nginxПроверяет, что nginx запущен сейчас и включён на автозапуск. Оба должны быть active/enabled, иначе после ребута сайт ляжет.
Свой текст: вставь, правь, он сам сохраняется в браузере. Никуда не отправляется. Кнопки: скопировать всё, скачать .sh, очистить.