Шпаргалка: команды и паттерны
Вещи, которые повторяются буквально в каждой статье сайта — вместо того чтобы искать их заново в конкретном гайде. Обновляется по мере появления новых статей.
VPS: SSH и файрвол
Самое частое из серии «VPS с нуля» — подробности в статьях про Termius и SSH-ключи и брандмауэр UFW.
ssh-keygen -t ed25519 -C "home-pc" # новый ключ type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh user@IP "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys" ssh -L 8080:127.0.0.1:8080 user@IP # туннель к локальной панели сервера ssh-keygen -R IP # забыть старый отпечаток сервера
sudo sshd -t && sudo systemctl reload ssh # проверить и применить конфиг sshd sudo sshd -T | grep -i passwordauth # итоговое значение после всех include sudo grep Accepted /var/log/auth.log | tail # кто и как входил sudo ufw default deny incoming && sudo ufw default allow outgoing sudo ufw limit 22/tcp # SSH с rate-limit — ДО enable sudo ufw allow 80,443/tcp sudo ufw enable sudo ufw status numbered # правила с номерами sudo ufw delete N # удалить правило sudo ss -tulnp # кто слушает порты
| Файл | Зачем |
|---|---|
| ~/.ssh/authorized_keys | публичные ключи, которым разрешён вход (права 600, каталог 700) |
| /etc/ssh/sshd_config.d/00-*.conf | свои настройки sshd — читаются первыми и побеждают cloud-init |
| /etc/default/ufw | IPV6=yes, политика форвардинга |
| /etc/ufw/before.rules | NAT/MASQUERADE для VPN-клиентов |
Структура каталогов на NAS
Паттерн, который используется во всех статьях сайта без исключений — один каталог на сервис в /volume1/docker/, с чётким разделением конфигурации, данных и (при необходимости) бэкапов внутри:
/volume1/docker/<имя-сервиса>/ ├── data/ # то, что действительно нужно бэкапить ├── config/ # конфигурация приложения └── backups/ # локальные архивы (опционально)
Подробнее — в разделах подготовки каталогов в статьях про Vaultwarden, Nextcloud и Immich.
Основные команды Docker Compose
docker compose up -d # запустить стек в фоне docker compose down # остановить и удалить контейнеры (тома остаются) docker compose logs -f <service> # логи конкретного сервиса в реальном времени docker compose pull <service> # подтянуть новый образ docker compose exec <service> sh # зайти внутрь контейнера docker exec -it <container> bash # то же самое, но по имени контейнера напрямую
Снимок состояния стека без веб-интерфейса
docker stats --no-stream --format \
"table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}"
Подробный разбор мониторинга и Dozzle — в статье про сетевой high-load.
Сетевые режимы: когда какой
| Режим | Когда использовать | Пример из статей |
|---|---|---|
| bridge (по умолчанию) | простой сервис, один порт наружу | большинство контейнеров сайта |
| macvlan | нужен собственный IP в локальной сети | high-load, AdGuard Home |
| host | нужно автообнаружение устройств (mDNS/SSDP) или доступ к сетевому стеку хоста | Home Assistant, fail2ban |
Частые переменные окружения
| Переменная | Смысл |
|---|---|
| TZ | часовой пояс контейнера, влияет на метки времени в логах и расписаниях |
| PUID / PGID | под каким системным пользователем/группой контейнер пишет файлы на том |
| LOG_LEVEL | уровень детализации логов — полезно временно повышать при отладке |
Скелет бэкап-скрипта
Один и тот же каркас — снять дамп/архив, положить с меткой времени, вычистить старое — повторяется в статьях про Vaultwarden, Nextcloud, Home Assistant и Immich:
#!/bin/bash STAMP=$(date +%Y%m%d-%H%M) DEST=/volume1/docker/<сервис>/backups mkdir -p "$DEST" # 1. снять дамп базы (если есть) или архив конфигурации # 2. сохранить с меткой времени в $DEST # 3. вычистить архивы старше 14 дней: find "$DEST" -name "*-2*.gz" -mtime +14 -delete
Полную стратегию вокруг этих скриптов — уровни копий, шифрование, тестирование восстановления — смотрите в статье про правило 3-2-1.
Базовый чек-лист безопасности
- 2FA включена и для DSM, и для критичных сервисов (Vaultwarden, Nextcloud) отдельно.
- Порты admin-панелей (NPM :81, и подобные) не смотрят в интернет напрямую.
- fail2ban или Auto Block настроены хотя бы для SSH.
- Реверс-прокси — единственная точка входа снаружи, не десяток открытых портов.
Полные версии — в статьях про харденинг DSM и fail2ban.
Эта страница не заменяет сами статьи — она для того, чтобы не листать заново развёрнутый гайд ради одной команды, которую вы уже видели раньше.