Для продолжения требуется зарегистрированное доменное имя.
Настройка домена для вашего сервера
Проверьте IP-адрес вашего сервера. Рекомендуется использовать статический IPv4-адрес.
Теперь необходимо направить доменное имя на этот IP-адрес.
Пример: my-super-panel.com → 193.122.122.122.
Есть два способа это сделать:
- Использовать DNS-провайдера (например, Cloudflare, Google Cloud и т.д.).
- Использовать регистратора домена (например, Namecheap и т.д.).
DNS-провайдер
Если вы используете Cloudflare, добавьте запись A/AAAA (для IPv4 и IPv6 соответственно) в DNS-записи.
Войдите в ваш аккаунт Cloudflare здесь и выберите нужный домен.
В меню слева выберите DNS, затем Records. Нажмите Create record.
Установите Type в A, а Name в @.
Для использования поддоменов укажите имя поддомена (например, panel) в поле Name.
Введите IP-адрес сервера в поле IPv4 address и нажмите Save.
Дождитесь обновления DNS-записей.
В панели Cloudflare жёлтое облако означает, что домен проксируется через Cloudflare, а серое — что проксирование отключено. Если Cloudflare работает стабильно в вашем регионе, рекомендуется включить проксирование (жёлтое облако).
У других DNS-провайдеров интерфейс может отличаться, но процесс аналогичен.
Обзор
В этом руководстве мы будем использовать Traefik как обратный прокси для доступа к панели Remnawave. Мы настроим доменное имя для сервера и конфигурацию Traefik. Traefik автоматически выпустит SSL-сертификаты.
Убедитесь, что ваш домен направлен на IP-адрес сервера.
Настройка Traefik
Создание docker-compose.yml
Создайте файл docker-compose.yml в директории /opt/remnawave/traefik.
mkdir -p /opt/remnawave/traefik && cd /opt/remnawave/traefik && nano docker-compose.yml
Вставьте следующую конфигурацию:
services:
traefik:
image: traefik:latest
container_name: traefik
restart: unless-stopped
security_opt:
- no-new-privileges:true
networks:
- remnawave-network
ports:
- '0.0.0.0:80:80'
- '0.0.0.0:443:443'
environment:
- TZ=UTC
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./traefik.yml:/traefik.yml:ro
- ./letsencrypt:/letsencrypt
- ./config:/config:ro
- ./logs:/var/log/traefik
networks:
remnawave-network:
name: remnawave-network
driver: bridge
external: false
Создание статического файла конфигурации
Создайте файл traefik.yml в директории /opt/remnawave/traefik.
cd /opt/remnawave/traefik && nano traefik.yml
Вставьте следующую конфигурацию:
Замените REPLACE_WITH_YOUR_EMAIL на ваш email.
api:
dashboard: true
debug: true
entryPoints:
http:
address: ":80"
http:
redirections:
entryPoint:
to: https
scheme: https
https:
address: ":443"
serversTransport:
insecureSkipVerify: true
providers:
file:
directory: /config
watch: true
certificatesResolvers:
letsencrypt:
acme:
email: REPLACE_WITH_YOUR_EMAIL
storage: /letsencrypt/acme.json
httpChallenge:
entryPoint: http
log:
level: "INFO"
filePath: "/var/log/traefik/traefik.log"
accessLog:
filePath: "/var/log/traefik/access.log"
Создание динамического файла конфигурации
Создайте файл remnawave.yml в директории /opt/remnawave/traefik/config.
mkdir -p /opt/remnawave/traefik/config && cd /opt/remnawave/traefik/config && nano remnawave.yml
Вставьте следующую конфигурацию:
Замените REPLACE_WITH_YOUR_DOMAIN на ваше доменное имя.
http:
routers:
remnawave:
rule: "Host(`REPLACE_WITH_YOUR_DOMAIN`)"
entrypoints:
- http
middlewares:
- remnawave-https-redirect
service: remnawave
remnawave-secure:
rule: "Host(`REPLACE_WITH_YOUR_DOMAIN`)"
entrypoints:
- https
middlewares:
tls:
certResolver: letsencrypt
service: remnawave
middlewares:
remnawave-https-redirect:
redirectScheme:
scheme: https
services:
remnawave:
loadBalancer:
servers:
- url: "http://remnawave:3000"
Запуск контейнера
docker compose up -d && docker compose logs -f -t
Ограничение доступа к панели по IP
Чтобы ограничить доступ к панели по IP, создайте файл middleware ip_allow_list.yml.
cd /opt/remnawave/traefik/config && nano ip_allow_list.yml
Вставьте следующую конфигурацию:
Замените REPLACE_WITH_YOUR_IP на разрешенный IP-адрес (или диапазон IP в нотации CIDR).
Если ваш домен проксируется через Cloudflare, укажите диапазоны IP Cloudflare в списке excludedIPs. Регулярно проверяйте актуальные диапазоны на официальной странице Cloudflare.
http:
middlewares:
ip-allow-list:
ipAllowList:
sourceRange:
- "REPLACE_WITH_YOUR_IP"
ipStrategy:
excludedIPs:
- 73.245.48.0/20
- 103.21.244.0/22
- 103.22.200.0/22
- 103.31.4.0/22
- 141.101.64.0/18
- 108.162.192.0/18
- 190.93.240.0/20
- 188.114.96.0/20
- 197.234.240.0/22
- 198.41.128.0/17
- 162.158.0.0/15
- 104.16.0.0/13
- 104.24.0.0/14
- 172.64.0.0/13
- 131.0.72.0/22
Затем добавьте middleware ip-allow-list в файл remnawave.yml.
nano remnawave.yml
Добавьте следующую строку в конфигурацию:
http:
routers:
remnawave:
rule: 'Host(`REPLACE_WITH_YOUR_DOMAIN`)'
entrypoints:
- http
middlewares:
- remnawave-https-redirect
service: remnawave
remnawave-secure:
rule: 'Host(`REPLACE_WITH_YOUR_DOMAIN`)'
entrypoints:
- https
middlewares:
- ip-allow-list
tls:
certResolver: letsencrypt
service: remnawave
middlewares:
remnawave-https-redirect:
redirectScheme:
scheme: https
services:
remnawave:
loadBalancer:
servers:
- url: 'http://remnawave:3000'
Обеспечение публичного доступа к пути подписки
Для корректной работы системы подписок путь /api/sub/ должен быть публично доступен, но остальная часть панели должна оставаться защищенной ограничениями по IP.
Для этого создайте два отдельных маршрутизатора для одного домена: один для /api/sub/ (открытый доступ) и один для остальной части (с ограничением по IP).
Откройте файл remnawave.yml снова:
nano /opt/remnawave/traefik/config/remnawave.yml
Обновите конфигурацию маршрутизатора следующим образом:
http:
routers:
remnawave-sub:
rule: "Host(`REPLACE_WITH_YOUR_DOMAIN`) && PathPrefix(`/api/sub/`)"
entrypoints:
- https
service: remnawave
tls:
certResolver: letsencrypt
remnawave-secure:
rule: "Host(`REPLACE_WITH_YOUR_DOMAIN`)"
entrypoints:
- https
middlewares:
- ip-allow-list
service: remnawave
tls:
certResolver: letsencrypt
middlewares:
remnawave-https-redirect:
redirectScheme:
scheme: https
services:
remnawave:
loadBalancer:
servers:
- url: "http://remnawave:3000"
Эта конфигурация делает путь /api/sub/ публично доступным, а остальную часть панели защищает ограничением по IP.
Теперь вы можете открыть страницу входа в панель Remnawave через ваш домен.

