coldcommand
команды VPS/Linux · solusrex
63 CMD

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

Шпаргалка: 63 команды в 8 разделах — SSL, сеть, netplan, nginx, диагностика, ТСПУ, Docker, прочее. Каждая команда копируется в один клик. Ниже — редактор: свой текст хранится только в браузере.

+1 · SSL — certbot, выпуск и проверка8

Все сертификаты 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 и данные сертификата одной командой. Видно код ответа и что шифрование реально работает.

+2 · Сеть — ip, ss, resolvectl8

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

ip -brief addr show

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

Маршруты 10

ip route show

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

Состояние eth0 11

ip -s link show eth0

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

Слушающие порты 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 eth0 1.1.1.1 8.8.8.8

Временно задаёт DNS-серверы для интерфейса до перезагрузки. Удобно для теста «дело в нашем DNS или нет».

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

resolvectl query coldcommand.solusrex.ru

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

+3 · Интерфейсы — netplan и NetworkManager8

Файлы 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. Актуально для десктопа; на сервере команда может вернуть пусто — это не ошибка.

+4 · Панели — nginx, PHP-FPM, права8

Синтаксис 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 или синтаксис.

+5 · Диагностика — ping, mtr, curl, dig8

Интернет по 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.

+6 · ТСПУ — доступность и SNI7

Базовый замер 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, логи, тома8

Версия 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 без нужды не запускай — снесёт данные томов.

+8 · Прочее — cron, journal, ufw, ssh8

Задачи 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 22

Подключается к серверу по ключу на 22-й порт. Пароли не используй и в команды их не вставляй.

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

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

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

Редактор

Свой текст: вставь, правь, он сам сохраняется в браузере. Никуда не отправляется. Кнопки: скопировать всё, скачать .sh, очистить.

пусто