Обратите внимание на недорогие виртуальные серверы в Амстердаме (Нидерланды) от «Хостера года» 2021, 2022 и 2024 годов. Оплата в рублях картами банков РФ, СБП, электронными деньгами. Подробнее.

Установка бинарного файла Caddy с поддержкой Layer 4 в операционной системе Debian

Опубликовано: 18 сентября 2025
Раздел(ы): GNU Linux - CentOS / Debian
Просмотры: 1
Комментарии: 0

У веб сервера Caddy много положительного, в том числе он умеет проксировать HTTP трафик, выступать в роли реверс-прокси для web серверов. Но проксировать TCP «из коробки» он не умеет, например если вам нужно перенаправить SSH трафик с помощью Caddy на другой порт или другой сервер.

К счастью все решается с помощью плагинов. Дополнение, которое позволяет перенаправлять TCP пакеты в зависимости от доменного имени на которое они направлены называется Layer 4.

Чтобы им воспользоваться нужно скомпилировать Caddy с учетом нового дополнения, либо скачать уже готовый бинарный файл Caddy в который включен плагин Layer 4, например здесь — https://caddyserver.com/download?package=github.com%2Fmholt%2Fcaddy-l4

Именно этим вариантом мы воспользуемся для уставновки веб сервера Caddy с поддержкой Layer 4.

Как всегда перед установкой программного обеспечения и внесения изменений на сервере вспоминаем когда вы последний раз делали резервные копии и где они у вас хранятся.

Как скачать бинарный файл Caddy на Debian

Считаем, что Caddy у вас не установлен.

Все дальнейшие действия описаны от лица ROOT.

Обновим ПО на сервере:

# apt update && apt upgrade -y

Скачивание Caddy скомпилированный с модулем layer4

# wget "https://caddyserver.com/api/download?os=linux&arch=amd64&p=github.com%2Fmholt%2Fcaddy-l4" -O caddy

Делаем файл исполняемым

# chmod +x caddy

Проверяем версию Caddy

# ./caddy version

Убеждаемся, что есть поддержка Layer 4

# ./caddy list-modules | grep -i layer4

Вывод на экран не должен быть пустой и должен содержать в строках символы «layer4».

Как установить скаченный Caddy в систему Debian

Копируем бинарный файл и назначаем ему права на исполнение

# cp caddy /usr/local/bin/
# chmod +x /usr/local/bin/caddy

Создадим жесткую ссылку

# ln -sf /usr/local/bin/caddy /usr/bin/caddy

Проверим всё ли правильно установилось

# caddy version
# which caddy
# caddy list-modules | grep -i layer4

Создадим для Caddy пользователя и группу

Для этого запускаем в консоли

# groupadd --system caddy
# useradd --system \
    --gid caddy \
    --create-home \
    --home-dir /var/lib/caddy \
    --shell /usr/sbin/nologin \
    --comment "Caddy web server" \
    caddy

Создадим systemd сервис

Будем использовать редактор nano который в Debian присутствует по умолчанию, но вы в праве использовать что-то более привычное

# nano /etc/systemd/system/caddy.service

Вставьте в документ следующий текст

[Unit]
Description=Caddy - Modern HTTP/2 web server with automatic HTTPS
Documentation=https://caddyserver.com/docs/
After=network.target network-online.target
Requires=network-online.target

[Service]
Type=notify
User=caddy
Group=caddy
ExecStart=/usr/local/bin/caddy run --environ --config /etc/caddy/Caddyfile
ExecReload=/usr/local/bin/caddy reload --config /etc/caddy/Caddyfile
TimeoutStopSec=5s
LimitNOFILE=1048576
LimitNPROC=512
PrivateTmp=true
ProtectSystem=full
AmbientCapabilities=CAP_NET_BIND_SERVICE

[Install]
WantedBy=multi-user.target

Для сохранения в nano используем комбинацию клавиш Ctrl + O, для выхода из редактора — Ctrl + X

Создадим необходимые рабочие директории

Создадим директории

# mkdir -p /etc/caddy
# mkdir -p /var/log/caddy
# mkdir -p /var/lib/caddy
# mkdir -p /var/www/html

И присваиваем их владельцам и назначаем необходимые права

# chown -R caddy:caddy /etc/caddy
# chown -R caddy:caddy /var/log/caddy
# chown -R caddy:caddy /var/lib/caddy
# chown -R caddy:caddy /var/www/html
# chmod 755 /etc/caddy
# chmod 755 /var/log/caddy

Конфигурационный файл Caddyfile

Создадим конфигурационный файл, обратите внимание на имя файла

# nano /etc/caddy/Caddyfile

И вставим в него примерно следующий код

mysite.ru {
        root * /var/www/mysite.ru
        file_server
}

В этом примере мы создали статический сайт mysite.ru файлы которого расположены по следующему адресу на сервере /var/www/mysite.ru — это корневая папка сайта.

Запуск и настройка сервиса

Перезагрузка systemd

# systemctl daemon-reload

Настроим автозагрузку Caddy при включении сервера (при старте операционной системы)

# systemctl enable caddy

Запуск Caddy

# systemctl start caddy

Проверка статуса работы Caddy

# systemctl status caddy

Постсриптум

Инструкция проверена на Debian 11 и Debian 13.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Нажимая кнопку "Отправить" Вы даёте свое согласие на обработку введенной персональной информации в соответствии с Федеральным Законом №152-ФЗ от 27.07.2006 "О персональных данных", на условиях и для целей определенных политикой конфиденциальности сайта.
© Юрий Рассадников, 2011 - 2025
uptime узнать
Домен : reg.ru
Хостинг : adman.com
SQL - 6 | 0,248 сек. | 6.32 МБ