0 Голосов

Исходный код вики 1.ultimate_RemnaNode_install

Версия 108.1 от Anton Krivchenkov на 18.05.2026 23:05

Последние авторы
1 {{velocity}}
2 {{html clean="false"}}
3 <style>
4 /* Стили для кнопки внутри стандартного блока .code */
5 .code {
6 position: relative !important; /* Позволяет кнопке «прилипнуть» к углу */
7 }
8
9 .copy-btn-standard {
10 position: absolute;
11 top: 5px;
12 right: 5px;
13 z-index: 100;
14 padding: 3px 8px;
15 font-size: 11px;
16 background: rgba(255, 255, 255, 0.1);
17 color: #fff;
18 border: 1px solid rgba(255, 255, 255, 0.2);
19 border-radius: 3px;
20 cursor: pointer;
21 transition: all 0.2s;
22 }
23
24 .copy-btn-standard:hover {
25 background: rgba(255, 255, 255, 0.2);
26 border-color: #fff;
27 }
28 </style>
29
30 <script>
31 (function() {
32 function addCopyButtons() {
33 // Находим все стандартные блоки макроса {{code}}
34 const blocks = document.querySelectorAll('.code');
35
36 blocks.forEach(block => {
37 // Проверяем, не добавили ли мы кнопку уже
38 if (block.querySelector('.copy-btn-standard')) return;
39
40 const btn = document.createElement('button');
41 btn.className = 'copy-btn-standard';
42 btn.innerText = 'Копировать';
43
44 btn.onclick = function(e) {
45 e.preventDefault();
46 // Берем текст блока, исключая текст самой кнопки
47 const textToCopy = block.innerText.replace('Копировать', '').trim();
48
49 navigator.clipboard.writeText(textToCopy).then(() => {
50 const originalText = btn.innerText;
51 btn.innerText = '✅';
52 setTimeout(() => { btn.innerText = originalText; }, 1500);
53 });
54 };
55
56 block.appendChild(btn);
57 });
58 }
59
60 // Запуск после загрузки страницы
61 document.addEventListener('DOMContentLoaded', addCopyButtons);
62 // На случай, если страница загружается асинхронно
63 setTimeout(addCopyButtons, 1000);
64 })();
65 </script>
66 {{/html}}
67 {{/velocity}}
68
69 *
70
71 Продвинутый скрипт автоматического развертывания **Remnawave Node (Xray-core)**, спроектированный с упором на максимальную скрытность, защиту от активного зондирования (DPI) и гибкую маршрутизацию.
72
73 Это не просто VPN-установка. Это комплексная Defense-in-Depth инфраструктура, которая прячет ваш прокси за реальным облачным хранилищем, анализирует атаки в реальном времени и позволяет строить каскадные цепи прокси-серверов.
74
75 ## ✨ Ключевые архитектурные особенности
76
77 * 🧠 **Active DPI Defense (Динамический Graylist):** Встроенный микросервис dpi-detector в реальном времени анализирует логи Nginx. При обнаружении сканеров уязвимостей или попыток активного зондирования (Active Probing), IP-адрес атакующего заносится в серый список. После этого Nginx на уровне L4 (TCP Stream) отрезает этот IP от ядра Xray, принудительно отдавая ему "белый" сайт-камуфляж.
78 * 🎭 **Идеальная L4/L7 Маскировка:** Единая точка входа на порт 443. Nginx Stream распределяет трафик по SNI: валидные запросы идут в Xray (Reality), весь остальной интернет-мусор и сканеры проваливаются в HTTP-блок, где их встречает легитимное и полностью рабочее файловое облако **Nextcloud**.
79 * 🕸️ **Proxy Chaining (Каскадирование):** Встроенная интеграция с **NaïveProxy**. Скрипт позволяет в пару кликов развернуть как серверную часть (вход для клиентов), так и клиентскую (выходной туннель на следующую ноду), маскируя транзитный трафик под обычные сессии браузера Chrome.
80 * 🔀 **Умный локальный роутинг (SOCKS5):** В ядро интегрированы локальные интерфейсы для точечного обхода ограничений прямо на ноде:
81 * **Cloudflare WARP (порт 40000):** Для прозрачного доступа к ChatGPT, Netflix и сервисам геолокации без риска бана IP дата-центра.
82 * **B4 DPI Bypass (порт 1080):** Для обхода региональных замедлений и блокировок (например, YouTube) на стороне самой ноды.
83 * 🔒 **Hardened Security:** Защита SSH через Fail2ban (с поддержкой рецидивов), блокировка ICMP-пингов, преконфигурированный UFW и защита от массового сканирования портов через TrafficGuard.
84 * 🚀 **Оптимизация ядра:** Автоматический тюнинг TCP BBR + fq_codel, расширение системных лимитов файловых дескрипторов (nofile до 1 млн) и тюнинг TCP keepalive для предотвращения обрывов "спящих" соединений за NAT.curl -fsSL
85
86 --
87
88 curl -fsSL 'https://xwiki.dev0ps.online/xwiki/bin/download/DevOps/Proxy/1.Remnawave/1.ultimate_remnanode_install/WebHome/install-node-nc.sh?rev=1.33' | sudo bash
89
90 Настройки B4
91
92 * geoip:<https://github.com/DanielLavrushin/b4geoip/releases/latest/download/geoip.dat>
93 * geosite:<https://raw.githubusercontent.com/runetfreedom/russia-v2ray-rules-dat/release/geosite.dat>
94
95 Сэты
96
97 YOUTUBE:
98
99 {"b4_version":"1.48.1","name":"youtube tls 1.3","tcp":{"incoming":{"mode":"fake","fake_count":10},"rst_protection":{"enabled":true}},"udp":{"mode":"drop","filter_quic":"parse"},"faking":{"sni_type":4,"payload_file":"captures/tls_stun.bin"},"targets":{"sni_domains":["googleapis.com","googleusercontent.com","googlevideo.com","youtu.be","youtube-nocookie.com","youtube.com","www.youtube.com","youtubei.googleapis.com","yt3.ggpht.com","youtubekids.com","dl.google.com"],"geosite_categories":["youtube"],"tls":"1.3"},"enabled":true}
100
101 YouTube - заработал на Selectel
102
103 {"b4_version":"1.47.2","name":"youtube (RT with missing bin) (copy)","udp":{"mode":"drop","filter_quic":"all"},"fragmentation":{"combo":{"shuffle_mode":"reverse","decoy_enabled":true,"fake_per_segment":true,"fake_per_seg_count":0},"disorder":{"fake_per_seg_count":0}},"faking":{"sni":false,"sni_type":4,"payload_file":"captures/tls_vk_com.bin","sni_mutation":{"mode":"fakesni"}},"targets":{"sni_domains":["ggpht.com","googleapis.com","googleusercontent.com","googlevideo.com","gstatic.com","gvt1.com","l.google.com","youtu.be","youtube-nocookie.com","youtube.com","yt.be","ytimg.com","play.google.com"],"geosite_categories":["youtube"]},"enabled":true}
104
105 Youtube + Telegram + Meta (mobile) + Загрузить пэйлоад в закрепе
106
107 {"id":"86746296-4e39-4b9f-9cc8-18669d492e9c","name":"Youtube + Telegram + Meta (mobile)","tcp":{"conn_bytes_limit":19,"seg2delay":0,"seg2delay_max":0,"syn_fake":true,"syn_fake_len":128,"syn_ttl":7,"drop_sack":false,"incoming":{"mode":"off","min":14,"max":14,"fake_ttl":7,"fake_count":3,"strategy":"badsum"},"desync":{"mode":"off","ttl":7,"count":3,"post_desync":false},"win":{"mode":"off","values":[0,1460,8192,65535]},"duplicate":{"enabled":false,"count":3}},"udp":{"mode":"fake","fake_seq_length":6,"fake_len":64,"faking_strategy":"none","dport_filter":"","filter_quic":"disabled","filter_stun":true,"conn_bytes_limit":8,"seg2delay":0,"seg2delay_max":0},"fragmentation":{"strategy":"tcp","reverse_order":true,"tlsrec_pos":0,"middle_sni":false,"sni_position":1,"oob_position":0,"oob_char":120,"seq_overlap_pattern":[],"combo":{"first_byte_split":false,"extension_split":false,"shuffle_mode":"full","first_delay_ms":30,"jitter_max_us":1000,"decoy_enabled":false,"decoy_snis":["ya.ru","vk.com","mail.ru","dzen.ru"]},"disorder":{"shuffle_mode":"full","min_jitter_us":1000,"max_jitter_us":3000}},"faking":{"sni":true,"ttl":7,"strategy":"pastseq","seq_offset":10000,"sni_seq_length":1,"sni_type":3,"custom_payload":"","payload_file":"","tls_mod":[],"timestamp_decrease":600000,"sni_mutation":{"mode":"off","grease_count":3,"padding_size":2048,"fake_ext_count":5,"fake_snis":["ya.ru","vk.com","max.ru"]},"tcp_md5":false},"targets":{"sni_domains":["youtube.com"],"ip":[],"geosite_categories":["youtube","telegram","instagram","meta"],"geoip_categories":["google","telegram","facebook"]},"enabled":true,"dns":{"enabled":true,"target_dns":"9.9.9.9","fragment_query":true},"stats":{"manual_domains":1,"manual_ips":0,"geosite_domains":825,"geoip_ips":5403,"total_domains":826,"total_ips":5403,"geosite_category_breakdown":{"instagram":74,"meta":553,"telegram":20,"youtube":178},"geoip_category_breakdown":{"facebook":108,"google":5283,"telegram":12}}}
108
109 googlevideo.com-pos-search-4
110
111 {"b4_version":"1.48.1","name":"googlevideo.com-pos-search-4","udp":{"filter_stun":false},"fragmentation":{"reverse_order":false,"middle_sni":false,"sni_position":4,"combo":{"first_byte_split":false,"extension_split":false}},"faking":{"sni":false,"ttl":1,"sni_type":3},"targets":{"sni_domains":["googlevideo.com","youtube.com","google.ru","youtubei.googleapis.com","yt3.ggpht.com"],"geosite_categories":["youtube","google","google-gemini"],"geoip_categories":["google"]},"enabled":true,"dns":{"target_dns":"192.168.1.1","fragment_query":true}}
112
113 youtube (с группы)
114
115 {"b4_version":"1.60.1","name":"YouTube","tcp":{"desync":{"mode":"rst","ttl":5,"count":10},"ip_block_detect":{"cache_blocked_ips":false}},"udp":{"mode":"reject","filter_quic":"all","filter_stun":false,"conn_bytes_limit":2},"fragmentation":{"strategy":"tcp","middle_sni":false,"combo":{"first_byte_split":false,"extension_split":false}},"faking":{"sni_type":3},"targets":{"sni_domains":["rr1---sn-n8v7kne6.googlevideo.com","rr2---sn-4pa5ojvg0-n8ve.googlevideo.com","rr3---sn-4pa5ojvg0-n8ve.googlevideo.com","rr7---sn-n8v7znsy.googlevideo.com","*.googlevideo.com"],"geosite_categories":["youtube"],"geoip_categories":["google"]},"enabled":true}
116
117 hyperion + payload: tls_gosuslugi_ru.bin
118
119 {"id":"1731ef6f-ec56-43b6-bc72-daec1e484daf","name":"hyperion","tcp":{"conn_bytes_limit":19,"seg2delay":20,"seg2delay_max":90,"syn_fake":false,"syn_fake_len":0,"syn_ttl":7,"drop_sack":false,"incoming":{"mode":"off","min":14,"max":14,"fake_ttl":7,"fake_count":3,"strategy":"badsum"},"desync":{"mode":"off","ttl":7,"count":3,"post_desync":false},"win":{"mode":"off","values":[0,1460,8192,65535]},"duplicate":{"enabled":false,"count":3}},"udp":{"mode":"fake","fake_seq_length":6,"fake_len":64,"faking_strategy":"none","dport_filter":"","filter_quic":"disabled","filter_stun":true,"conn_bytes_limit":8,"seg2delay":0,"seg2delay_max":0},"fragmentation":{"strategy":"combo","reverse_order":true,"tlsrec_pos":0,"middle_sni":true,"sni_position":1,"oob_position":0,"oob_char":120,"seq_overlap_pattern":[],"combo":{"first_byte_split":true,"extension_split":true,"shuffle_mode":"full","first_delay_ms":30,"jitter_max_us":1500,"decoy_enabled":false,"decoy_snis":["ya.ru","vk.com","mail.ru","dzen.ru"]},"disorder":{"shuffle_mode":"full","min_jitter_us":1000,"max_jitter_us":3000}},"faking":{"sni":true,"ttl":8,"strategy":"pastseq","seq_offset":10000,"sni_seq_length":1,"sni_type":4,"custom_payload":"","payload_file":"captures/tls_gosuslugi_ru.bin","tls_mod":[],"timestamp_decrease":600000,"sni_mutation":{"mode":"off","grease_count":3,"padding_size":2048,"fake_ext_count":5,"fake_snis":[]},"tcp_md5":true},"targets":{"sni_domains":["kinopub.online","linuxserver.io","euronews.com","shikimori.one","proton.me"],"ip":[],"geosite_categories":["cloudflare","ru-blocked","meta","discord","kinopub","youtube","intel","twitter","protonmail","canva","dw","category-media-ru","linkedin","instagram","hdrezka","fastly","hetzner","oracle","cdn77","digitalocean","akamai"],"geoip_categories":["cloudflare","digitalocean","contabo","akamai","amazon","hetzner","ovh","telegram","twitter","cdn77","scaleway","oracle","fastly"]},"enabled":true,"dns":{"enabled":false,"target_dns":"","fragment_query":false},"stats":{"manual_domains":5,"manual_ips":0,"geosite_domains":76395,"geoip_ips":7137,"total_domains":76400,"total_ips":7137,"geosite_category_breakdown":{"akamai":81,"canva":6,"category-media-ru":131,"cdn77":2,"cloudflare":74,"digitalocean":4,"discord":28,"dw":2,"fastly":8,"hdrezka":11,"hetzner":15,"instagram":74,"intel":288,"kinopub":11,"linkedin":12,"meta":553,"oracle":18,"protonmail":9,"ru-blocked":74866,"twitter":24,"youtube":178},"geoip_category_breakdown":{"akamai":596,"amazon":3447,"cdn77":213,"cloudflare":900,"contabo":284,"digitalocean":173,"fastly":62,"hetzner":117,"oracle":737,"ovh":554,"scaleway":21,"telegram":12,"twitter":21}}}
120
121 telegram
122
123 {"b4_version":"1.47.0","name":"telegram","tcp":{"syn_ttl":7,"incoming":{"fake_ttl":7},"desync":{"ttl":7}},"udp":{"filter_stun":false},"fragmentation":{"reverse_order":false,"strategy_pool":[],"tlsrec_pos_max":0,"middle_sni":false,"sni_position":2,"sni_position_max":0,"oob_position_max":0,"combo":{"first_byte_split":false,"extension_split":false,"shuffle_mode":"full","first_delay_ms":30,"first_delay_ms_max":0,"jitter_max_us":1000,"jitter_max_us_max":0,"fake_per_seg_count":0,"fake_per_seg_count_max":0},"disorder":{"fake_per_seg_count":0,"fake_per_seg_count_max":0}},"faking":{"sni":false,"ttl":1,"sni_type":3,"timestamp_decrease":600000},"targets":{"sni_domains":["t.me"],"geosite_categories":["telegram"],"geoip_categories":["telegram"]},"enabled":true}
124
125 meta
126
127 {"b4_version":"1.47.0","name":"meta","tcp":{"seg2delay":20,"drop_sack":true,"desync":{"mode":"ack","count":15}},"udp":{"fake_seq_length":15,"faking_strategy":"checksum","dport_filter":"443,3478,3482,5222,59234,45395,50300-50400","filter_quic":"parse","filter_stun":false},"fragmentation":{"strategy":"disorder","reverse_order":false,"strategy_pool":[],"tlsrec_pos_max":0,"middle_sni":false,"sni_position_max":0,"oob_position_max":0,"seq_overlap_pattern":["16","03","03","00","00"],"combo":{"first_byte_split":false,"extension_split":false,"first_delay_ms_max":0,"jitter_max_us_max":0,"fake_per_seg_count":0,"fake_per_seg_count_max":0},"disorder":{"min_jitter_us":500,"max_jitter_us":2100,"fake_per_seg_count":0,"fake_per_seg_count_max":0}},"faking":{"sni":false,"seq_offset":1000000,"sni_seq_length":12,"tls_mod":["rnd","dupsid"],"timestamp_decrease":600000},"targets":{"sni_domains":["facebook.com"],"geosite_categories":["meta"],"geoip_categories":["facebook"]},"enabled":true,"dns":{"target_dns":"9.9.9.9","fragment_query":true}}
128
129 | Сервис | Назначение |
130 | ------------------- | ------------------------------------------- |
131 | **remnanode** | VPN-нода Remnawave (xray-core) |
132 | **remnawave-nginx** | Nginx — SNI-роутинг, прокси xHTTP/gRPC/WS |
133 | **nextcloud** | Файловое облако (камуфляж) |
134 | **b4** | B4 DPI Bypass — обход блокировок |
135 | **goaccess** | Визуализация логов nginx в реальном времени |
136 | **watchtower** | Автообновление контейнеров (каждые 24 часа) |
137
138 *
139
140 | Утилита | Назначение |
141 | ------------------- | ----------------------------------------- |
142 | **ctop** | Мониторинг Docker-контейнеров в терминале |
143 | **lazydocker** | TUI для управления Docker |
144 | **fail2ban** | Защита от брутфорса SSH |
145 | **TrafficGuard** | Блокировка сканеров по базам IP |
146 | **Certbot** | Let's Encrypt сертификаты |
147 | **Zapret** | Списки заблокированных в РФ сайтов |
148 | **zsh + Oh My Zsh** | Современный shell с плагинами |
149
150 *
151
152 | Настройка | Описание |
153 | ------------------------- | -------------------------------------- |
154 | **BBR + fq_codel** | Ускорение TCP |
155 | **TCP Fast Open** | Быстрый handshake |
156 | **Socket buffers 128 MB** | Высокая пропускная способность |
157 | **Keepalive 60/10/5** | Быстрое обнаружение мёртвых соединений |
158 | **IP Forwarding** | Для VPN-маршрутизации |
159
160 *
161
162 | Настройка | Описание |
163 | --------------- | -------------------------------------- |
164 | **nofile** | 1048576 — макс. открытых файлов |
165 | **nproc** | 65536 — макс. процессов |
166 | **fs.file-max** | 1000000 — системный лимит дескрипторов |
167
168 *
169
170 | Настройка | Описание |
171 | ------------ | -------------------------------------------------- |
172 | **UFW** | deny incoming, whitelist SSH, 443 + 7443 открыты |
173 | **fail2ban** | sshd (3 попытки → бан 48ч), recidive (до 4 недель) |
174 | **ICMP** | echo-request заблокирован (сервер не пингуется) |
175 | **Nginx** | Блокировка ботов/сканеров по User-Agent |
176
177 *
178
179 | URL | Назначение | Авторизация |
180 | -------------------------------------- | ------------- | ---------------------------- |
181 | <https://DOMAIN/> | Nextcloud | Настроить при первом входе |
182 | <https://DOMAIN:7443/> | B4 DPI Bypass | adminremnanode / B4_PASSWORD |
183 | <https://DOMAIN/nginx-go-access-dash/> | GoAccess логи | adminremnanode / B4_PASSWORD |
184
185 Структура файлов
186
187 /opt/remnawave/
188 ├── .env # Конфигурация (SECRET_KEY, домен, пути)
189 ├── docker-compose.yml # Docker Compose
190 ├── nginx-stream.conf # Nginx (stream + http)
191 ├── .htpasswd_b4 # Пароли для B4/GoAccess
192 ├── nextcloud/ # Конфиг Nextcloud
193 ├── nextcloud_data/ # Данные Nextcloud
194 ├── b4_config/ # Конфиг B4 DPI
195 ├── nginx_logs/ # Логи nginx
196 ├── goaccess_html/ # HTML-отчёты GoAccess
197 └── xray/share/
198 ├── zapret.dat # Список запрещённых сайтов
199 ├── geoip.dat # GeoIP база
200 └── geosite.dat # GeoSite база
201
202 Команды управления
203
204 | Команда | Описание |
205 | ----------------------- | ------------------------------------------------------------------------------------ |
206 | d | Статус контейнеров (алиас) |
207 | lzd | lazydocker (TUI) |
208 | dcu | docker compose up -d |
209 | dcd | docker compose down |
210 | dl remnanode | docker logs remnanode |
211 | Обновить ноду | cd /opt/remnawave && docker compose pull remnanode && docker compose up -d remnanode |
212 | Обновить Zapret вручную | bash /opt/remnawave/update-zapret.sh |
213 | Проверить fail2ban | fail2ban-client status sshd |
214 | Управление TrafficGuard | rknpidor — Интерактивное меню |
215 | Сертификаты | certbot certificates certbot renew --dry-run |
216
217 *
218
219 Автоматические задачи (Cron)
220
221 | Время | Задача |
222 | ----- | ----------------------------------- |
223 | 03:00 | Certbot — продление сертификатов |
224 | 03:00 | Zapret — обновление списков |
225 | 04:00 | TrafficGuard — обновление баз IP |
226 | 24ч | Watchtower — обновление контейнеров |
227
228 ### Повторный запуск (обновление SNI)
229
230 Если скрипт обнаружит существующую установку, предложит обновить только Reality SNI:
231
232 [ВНИМАНИЕ] Обнаружена существующая конфигурация в /opt/remnawave/.env
233 Домен: example.com
234 Reality SNI: google.com
235
236 Обновить только Reality SNI? [y/N]: y
237
238 конфиг
239
240 # 🛠 Обновленная инструкция по заполнению полей
241
242 ## 1. VLESS (Reality / Vision)
243
244 Для этого протокола мы объединяем твой системный тюнинг (BBR, WindowClamp) и фрагментацию.
245
246 **Mux JSON:** ❌ НЕ ИСПОЛЬЗОВАТЬ. Mux ломает логику XTLS-Vision и может сделать соединение более заметным для DPI.
247
248 **SockOpt JSON:** ✅ КОПИРОВАТЬ ЭТО:
249
250 ```json
251 {
252 "dialerProxy": "fragment",
253 "tcpcongestion": "bbr",
254 "tcpWindowClamp": 600,
255 "interface": "wg0",
256 "tcpKeepAliveInterval": 5,
257 "fragment": {
258 "packets": "tlshello",
259 "length": "50-100",
260 "interval": "10-20"
261 }
262 }
263 ```
264
265 **Что мы взяли из твоего примера:**
266
267 * `tcpcongestion: "bbr"` — значительно ускоряет передачу данных при потерях пакетов.
268 * `tcpWindowClamp: 600` — ограничивает размер окна TCP, что мешает DPI анализировать большие объемы данных сразу.
269 * `interface: "wg0"` — если у тебя трафик должен идти через конкретный интерфейс (например, Wireguard), это поле критично.
270
271 ---
272
273 ## 2. xHTTP (TCP)
274
275 Используем твои параметры xmux и extra, объединяя их в одном разделе xHTTP, и добавляем тюнинг в SockOpt.
276
277 **xHTTP JSON:** ✅ КОПИРОВАТЬ ЭТО:
278
279 ```json
280 {
281 "xmux": {
282 "cMaxReuseTimes": 0,
283 "maxConcurrency": "16-32",
284 "maxConnections": 0,
285 "hKeepAlivePeriod": 0,
286 "hMaxRequestTimes": "600-900",
287 "hMaxReusableSecs": "1800-3000"
288 },
289 "noGRPCHeader": false,
290 "xPaddingBytes": "100-1000",
291 "scMaxEachPostBytes": 1000000,
292 "scMinPostsIntervalMs": 30,
293 "scStreamUpServerSecs": "20-80"
294 }
295 ```
296
297 **SockOpt JSON:** ✅ КОПИРОВАТЬ ЭТО:
298
299 ```json
300 {
301 "dialerProxy": "fragment",
302 "tcpcongestion": "bbr",
303 "tcpWindowClamp": 600,
304 "fragment": {
305 "packets": "tlshello",
306 "length": "50-100",
307 "interval": "10-20"
308 }
309 }
310 ```
311
312 ---
313
314 ## 3. WebSocket (WS) — Прямое подключение
315
316 Здесь Mux будет полезен вместе с твоими системными настройками.
317
318 **Mux JSON:** ✅ КОПИРОВАТЬ ЭТО:
319
320 ```json
321 {
322 "enabled": true,
323 "concurrency": 16,
324 "version": 2
325 }
326 ```
327
328 **SockOpt JSON:** ✅ КОПИРОВАТЬ ЭТО:
329
330 ```json
331 {
332 "dialerProxy": "fragment",
333 "tcpcongestion": "bbr",
334 "tcpKeepAliveInterval": 5,
335 "fragment": {
336 "packets": "tlshello",
337 "length": "50-100",
338 "interval": "10-20"
339 }
340 }
341 ```
342
343 ---
344
345 ## 4. gRPC
346
347 Для gRPC важен низкий пинг, поэтому оставляем BBR, но Mux отключаем.
348
349 **Mux JSON:** ❌ НЕ ИСПОЛЬЗОВАТЬ. (gRPC сам управляет потоками).
350
351 **SockOpt JSON:** ✅ КОПИРОВАТЬ ЭТО:
352
353 ```json
354 {
355 "dialerProxy": "fragment",
356 "tcpcongestion": "bbr",
357 "fragment": {
358 "packets": "tlshello",
359 "length": "50-100",
360 "interval": "10-20"
361 }
362 }
363 ```
364
365 ---
366
367 ## ℹ️ Почему это важно (по твоим файлам):
368
369 * **Фрагментация (tlshello):** Режет первый пакет ClientHello (где виден SNI), не давая ТСПУ заблокировать соединение на старте.
370 * **BBR (tcpcongestion):** Твой сервер увидит, что клиент работает на BBR, и будет отдавать данные максимально быстро, минуя стандартные алгоритмы замедления TCP.
371 * **Interface (wg0):** Если ты используешь это в связке с локальным VPN или WARP (как в твоем конфиге OUT_WARP), этот параметр гарантирует, что трафик пойдет по нужному маршруту.
372
373 ---
374
375 # Репозитории GitHub, используемые в проекте Remnawave Node
376
377 ## Основные компоненты
378
379 | Репозиторий | Описание | Использование |
380 | ------------------------------------------------------------------------------- | -------------------------- | ------------------------------------------- |
381 | [remnawave/node](https://github.com/remnawave/node) | Remnawave Node (Xray-core) | Основной VPN-контейнер |
382 | [nginx/nginx](https://github.com/nginx/nginx) | Nginx | Веб-сервер для SNI-роутинга и прокси |
383 | [linuxserver/docker-nextcloud](https://github.com/linuxserver/docker-nextcloud) | Nextcloud | Файловое облако для камуфляжа |
384 | [bolucat/naive](https://github.com/bolucat/naive) | NaiveProxy | Forward Proxy с маскировкой под Chrome |
385 | [lavrushin/b4](https://github.com/lavrushin/b4) | B4 DPI Bypass | Обход Deep Packet Inspection |
386 | [allinurl/goaccess](https://github.com/allinurl/goaccess) | GoAccess | Визуализация логов nginx в реальном времени |
387 | [containrrr/watchtower](https://github.com/containrrr/watchtower) | Watchtower | Автообновление Docker-контейнеров |
388
389 ## Гео-данные и списки блокировок
390
391 | Репозиторий | Описание | Использование |
392 | ----------------------------------------------------------------------------------------------------- | ------------------------------------ | ---------------------------------- |
393 | [runetfreedom/russia-v2ray-rules-dat](https://github.com/runetfreedom/russia-v2ray-rules-dat) | Гео-файлы для обхода блокировок в РФ | geoip.dat, geosite.dat, zapret.dat |
394 | [Loyalsoldier/v2ray-rules-dat](https://github.com/Loyalsoldier/v2ray-rules-dat) | V2Ray правила (резервный источник) | geoip.dat, geosite.dat |
395 | [kutovoys/ru_gov_zapret](https://github.com/kutovoys/ru_gov_zapret) | Список запрещённых сайтов РФ | zapret.dat |
396 | [hxehex/russia-mobile-internet-whitelist](https://github.com/hxehex/russia-mobile-internet-whitelist) | Whitelist российских доменов | Фильтрация для автоподбора SNI |
397
398 ## Безопасность и защита
399
400 | Репозиторий | Описание | Использование |
401 | ----------------------------------------------------------------------------------- | -------------- | ----------------------------- |
402 | [DonMatteoVPN/TrafficGuard-auto](https://github.com/DonMatteoVPN/TrafficGuard-auto) | TrafficGuard | Защита от сканирования портов |
403 | [XTLS/RealiTLScanner](https://github.com/XTLS/RealiTLScanner) | RealiTLScanner | Автоподбор Reality SNI |
404
405 ## Инструменты и утилиты
406
407 | Репозиторий | Описание | Использование |
408 | ----------------------------------------------------------------------------------------- | ----------------------- | ----------------------------------------- |
409 | [ohmyzsh/ohmyzsh](https://github.com/ohmyzsh/ohmyzsh) | Oh My Zsh | Современный shell с плагинами |
410 | [zsh-users/zsh-autosuggestions](https://github.com/zsh-users/zsh-autosuggestions) | Zsh Autosuggestions | Автодополнение команд в Zsh |
411 | [zsh-users/zsh-syntax-highlighting](https://github.com/zsh-users/zsh-syntax-highlighting) | Zsh Syntax Highlighting | Подсветка синтаксиса в Zsh |
412 | [bcicen/ctop](https://github.com/bcicen/ctop) | ctop | Мониторинг Docker-контейнеров в терминале |
413 | [jesseduffield/lazydocker](https://github.com/jesseduffield/lazydocker) | lazydocker | TUI для управления Docker |
414
415 ## Инструменты сборки
416
417 | Репозиторий | Описание | Использование |
418 | --------------------------------------------------------------- | ------------ | ----------------------------------- |
419 | [caddyserver/xcaddy](https://github.com/caddyserver/xcaddy) | xcaddy | Сборка Caddy с кастомными плагинами |
420 | [klzgrad/forwardproxy](https://github.com/klzgrad/forwardproxy) | forwardproxy | Плагин для Caddy (NaiveProxy) |
421
422 ## Клиентские приложения
423
424 | Репозиторий | Описание | Платформа |
425 | --------------------------------------------------------------------------------- | -------- | --------- |
426 | [MatsuriDayo/NekoBoxForAndroid](https://github.com/MatsuriDayo/NekoBoxForAndroid) | NekoBox | Android |
427 | [hiddify/hiddify-app](https://github.com/hiddify/hiddify-app) | Hiddify | Windows |
428 | [MatsuriDayo/nekoray](https://github.com/MatsuriDayo/nekoray) | NekoRay | Windows |
429
430 ## Docker образы
431
432 | Образ | Репозиторий | Описание |
433 | ------------------------------ | ------------------------------------------------------------------------------- | -------------------------- |
434 | `remnawave/node:latest` | [remnawave/node](https://github.com/remnawave/node) | Remnawave Node (Xray-core) |
435 | `nginx:1.28` | [nginx/nginx](https://github.com/nginx/nginx) | Nginx |
436 | `linuxserver/nextcloud:latest` | [linuxserver/docker-nextcloud](https://github.com/linuxserver/docker-nextcloud) | Nextcloud |
437 | `pocat/naiveproxy:latest` | [bolucat/naive](https://github.com/bolucat/naive) | NaiveProxy Server |
438 | `pocat/naiveproxy:client` | [bolucat/naive](https://github.com/bolucat/naive) | NaiveProxy Client |
439 | `lavrushin/b4:latest` | [lavrushin/b4](https://github.com/lavrushin/b4) | B4 DPI Bypass |
440 | `allinurl/goaccess:latest` | [allinurl/goaccess](https://github.com/allinurl/goaccess) | GoAccess |
441 | `containrrr/watchtower:latest` | [containrrr/watchtower](https://github.com/containrrr/watchtower) | Watchtower |
442 | `alpine:latest` | [alpine](https://github.com/alpinelinux/docker-alpine) | DPI Detector |
443
444 ## Примечания
445
446 1. **Гео-файлы**: Основным источником является `runetfreedom/russia-v2ray-rules-dat`, оптимизированный для обхода блокировок в РФ. Резервные источники используются при недоступности основного.
447 1. **NaiveProxy**: Использует готовые Docker образы `pocat/naiveproxy` для серверной и клиентской частей.
448 1. **Автообновление**: Watchtower автоматически обновляет контейнеры с меткой `com.centurylinklabs.watchtower.enable=true` каждые 24 часа.
449 1. **Гео-файлы обновляются**: Ежедневно в 03:00 через cron-задачу.
450 1. **TrafficGuard**: Обновляет базы IP ежедневно в 04:00 со случайной задержкой до 30 минут.