297
remna_node.md
Normal file
297
remna_node.md
Normal file
@@ -0,0 +1,297 @@
|
|||||||
|
# 🚀 RemnaNode Setup Guide
|
||||||
|
|
||||||
|
> Полное руководство по установке и настройке ноды RemnaNode с использованием Docker
|
||||||
|
> Минимум боли — максимум эстетики ✨
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📦 Установка Docker
|
||||||
|
|
||||||
|
Если Docker ещё не установлен — выполни:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo curl -fsSL https://get.docker.com | sh
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📁 Шаг 1 — Создание директории проекта
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mkdir /opt/remnanode && cd /opt/remnanode
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ➕ Шаг 2 — Добавление Node
|
||||||
|
|
||||||
|
1. Перейди в:
|
||||||
|
```
|
||||||
|
Nodes → Management
|
||||||
|
```
|
||||||
|
2. Нажми кнопку **➕ Add Node**
|
||||||
|
3. Заполни форму
|
||||||
|
|
||||||
|
### ⚠️ Важно
|
||||||
|
|
||||||
|
- Поле **Node Port** используется **только** для внутренних API-запросов между Panel и Node
|
||||||
|
- Этот порт **не используется** нигде больше
|
||||||
|
|
||||||
|
После заполнения:
|
||||||
|
- Нажми **Copy docker-compose.yml**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🧾 Шаг 3 — Создание `docker-compose.yml`
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd /opt/remnanode && nano docker-compose.yml
|
||||||
|
```
|
||||||
|
|
||||||
|
Вставь скопированную конфигурацию и сохрани файл.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ▶️ Шаг 4 — Запуск контейнеров
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker compose up -d && docker compose logs -f -t
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ✅ Шаг 5 — Завершение настройки
|
||||||
|
|
||||||
|
1. Вернись в панель
|
||||||
|
2. Нажми **Next**
|
||||||
|
3. Выбери нужный **Config Profile**
|
||||||
|
4. Нажми **Create**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔒 Важно
|
||||||
|
|
||||||
|
> Обязательно закрой `NODE_PORT` в firewall
|
||||||
|
> Разреши доступ **только для IP панели**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# ⚙️ Advanced Usage
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🌐 Кастомные GeoSite и GeoIP
|
||||||
|
|
||||||
|
### ⚠️ Важно
|
||||||
|
|
||||||
|
- Названия `*-zapret.dat` — **пример**
|
||||||
|
- Категория `:zapret` — **пример**
|
||||||
|
- Реальные значения могут отличаться
|
||||||
|
|
||||||
|
### Серверный routing
|
||||||
|
|
||||||
|
- Влияет **только на сервер**
|
||||||
|
- **Не влияет** на DIRECT подключения клиентов
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📂 Подключение файлов
|
||||||
|
|
||||||
|
Монтируй файлы в контейнер:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
services:
|
||||||
|
remnanode:
|
||||||
|
container_name: remnanode
|
||||||
|
hostname: remnanode
|
||||||
|
image: remnawave/node:latest
|
||||||
|
restart: always
|
||||||
|
network_mode: host
|
||||||
|
environment:
|
||||||
|
- NODE_PORT=2222
|
||||||
|
- SECRET_KEY="supersecretkey"
|
||||||
|
volumes:
|
||||||
|
- './geo-zapret.dat:/usr/local/share/xray/geo-zapret.dat'
|
||||||
|
- './ip-zapret.dat:/usr/local/share/xray/ip-zapret.dat'
|
||||||
|
```
|
||||||
|
|
||||||
|
### ⚠️ Осторожно
|
||||||
|
|
||||||
|
- **Не** монтируй всю директорию
|
||||||
|
- Монтируй **только отдельные файлы**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🧠 Использование в Xray config
|
||||||
|
|
||||||
|
```json
|
||||||
|
"routing": {
|
||||||
|
"rules": [
|
||||||
|
{
|
||||||
|
"type": "field",
|
||||||
|
"domain": [
|
||||||
|
"ext:geo-zapret.dat:zapret"
|
||||||
|
],
|
||||||
|
"inboundTag": [
|
||||||
|
"VLESS_TCP_REALITY"
|
||||||
|
],
|
||||||
|
"outboundTag": "NOT_RU_OUTBOUND"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "field",
|
||||||
|
"ip": [
|
||||||
|
"ext:ip-zapret.dat:zapret"
|
||||||
|
],
|
||||||
|
"inboundTag": [
|
||||||
|
"VLESS_TCP_REALITY"
|
||||||
|
],
|
||||||
|
"outboundTag": "NOT_RU_OUTBOUND"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 📜 Логи Node
|
||||||
|
|
||||||
|
## 📁 Подключение логов
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
services:
|
||||||
|
remnanode:
|
||||||
|
container_name: remnanode
|
||||||
|
hostname: remnanode
|
||||||
|
image: remnawave/node:latest
|
||||||
|
restart: always
|
||||||
|
network_mode: host
|
||||||
|
environment:
|
||||||
|
- NODE_PORT=2222
|
||||||
|
- SECRET_KEY="supersecretkey"
|
||||||
|
volumes:
|
||||||
|
- '/var/log/remnanode:/var/log/remnanode'
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🧠 Конфиг Xray
|
||||||
|
|
||||||
|
```json
|
||||||
|
"log": {
|
||||||
|
"error": "/var/log/remnanode/error.log",
|
||||||
|
"access": "/var/log/remnanode/access.log",
|
||||||
|
"loglevel": "warning"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📂 Создание директории
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mkdir -p /var/log/remnanode
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔄 Logrotate
|
||||||
|
|
||||||
|
### Установка
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo apt update && sudo apt install logrotate
|
||||||
|
```
|
||||||
|
|
||||||
|
### Конфиг
|
||||||
|
|
||||||
|
```bash
|
||||||
|
nano /etc/logrotate.d/remnanode
|
||||||
|
```
|
||||||
|
|
||||||
|
Вставь:
|
||||||
|
|
||||||
|
```conf
|
||||||
|
/var/log/remnanode/*.log {
|
||||||
|
size 50M
|
||||||
|
rotate 5
|
||||||
|
compress
|
||||||
|
missingok
|
||||||
|
notifempty
|
||||||
|
copytruncate
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Проверка
|
||||||
|
|
||||||
|
```bash
|
||||||
|
logrotate -vf /etc/logrotate.d/remnanode
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 🔐 SSL сертификаты для Xray
|
||||||
|
|
||||||
|
## ⚠️ Внимание
|
||||||
|
|
||||||
|
> Это нужно **только если используешь TLS**
|
||||||
|
> Например: `VLESS-Vision-TLS`
|
||||||
|
> Для Reality — **не требуется**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📂 Монтирование сертификатов
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
remnawave:
|
||||||
|
image: remnawave/backend:latest
|
||||||
|
container_name: 'remnawave'
|
||||||
|
hostname: remnawave
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- '127.0.0.1:3000:3000'
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
networks:
|
||||||
|
- remnawave-network
|
||||||
|
volumes:
|
||||||
|
- '/opt/remnawave/nginx:/var/lib/remnawave/configs/xray/ssl'
|
||||||
|
depends_on:
|
||||||
|
remnawave-db:
|
||||||
|
condition: service_healthy
|
||||||
|
remnawave-redis:
|
||||||
|
condition: service_healthy
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ℹ️ Как это работает
|
||||||
|
|
||||||
|
- Panel автоматически читает файлы
|
||||||
|
- Отправляет сертификаты на Node
|
||||||
|
- Используется директория:
|
||||||
|
|
||||||
|
```
|
||||||
|
/var/lib/remnawave/configs/xray/ssl/
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🧠 Использование в Xray
|
||||||
|
|
||||||
|
```json
|
||||||
|
"certificates": [
|
||||||
|
{
|
||||||
|
"keyFile": "/var/lib/remnawave/configs/xray/ssl/privkey.key",
|
||||||
|
"certificateFile": "/var/lib/remnawave/configs/xray/ssl/fullchain.pem"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ⚠️ Важно
|
||||||
|
|
||||||
|
- `.key` — приватный ключ
|
||||||
|
- `.pem` — сертификат
|
||||||
|
|
||||||
|
👉 Не перепутай расширения 🚀
|
||||||
Reference in New Issue
Block a user