<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.mywolfram.ru/index.php?action=history&amp;feed=atom&amp;title=Na%C3%AFveProxy%3A_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D0%B9_%D0%BA%D0%B0%D1%81%D0%BA%D0%B0%D0%B4%D0%BD%D0%BE%D0%B9_%D1%86%D0%B5%D0%BF%D0%BE%D1%87%D0%BA%D0%B8</id>
	<title>NaïveProxy: установка полной каскадной цепочки - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.mywolfram.ru/index.php?action=history&amp;feed=atom&amp;title=Na%C3%AFveProxy%3A_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D0%B9_%D0%BA%D0%B0%D1%81%D0%BA%D0%B0%D0%B4%D0%BD%D0%BE%D0%B9_%D1%86%D0%B5%D0%BF%D0%BE%D1%87%D0%BA%D0%B8"/>
	<link rel="alternate" type="text/html" href="https://wiki.mywolfram.ru/index.php?title=Na%C3%AFveProxy:_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D0%B9_%D0%BA%D0%B0%D1%81%D0%BA%D0%B0%D0%B4%D0%BD%D0%BE%D0%B9_%D1%86%D0%B5%D0%BF%D0%BE%D1%87%D0%BA%D0%B8&amp;action=history"/>
	<updated>2026-05-28T20:58:08Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://wiki.mywolfram.ru/index.php?title=Na%C3%AFveProxy:_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D0%B9_%D0%BA%D0%B0%D1%81%D0%BA%D0%B0%D0%B4%D0%BD%D0%BE%D0%B9_%D1%86%D0%B5%D0%BF%D0%BE%D1%87%D0%BA%D0%B8&amp;diff=954&amp;oldid=prev</id>
		<title>Владимир в 08:05, 26 апреля 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.mywolfram.ru/index.php?title=Na%C3%AFveProxy:_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D0%B9_%D0%BA%D0%B0%D1%81%D0%BA%D0%B0%D0%B4%D0%BD%D0%BE%D0%B9_%D1%86%D0%B5%D0%BF%D0%BE%D1%87%D0%BA%D0%B8&amp;diff=954&amp;oldid=prev"/>
		<updated>2026-04-26T08:05:08Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://wiki.mywolfram.ru/index.php?title=Na%C3%AFveProxy:_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D0%B9_%D0%BA%D0%B0%D1%81%D0%BA%D0%B0%D0%B4%D0%BD%D0%BE%D0%B9_%D1%86%D0%B5%D0%BF%D0%BE%D1%87%D0%BA%D0%B8&amp;amp;diff=954&amp;amp;oldid=953&quot;&gt;Внесённые изменения&lt;/a&gt;</summary>
		<author><name>Владимир</name></author>
	</entry>
	<entry>
		<id>https://wiki.mywolfram.ru/index.php?title=Na%C3%AFveProxy:_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D0%B9_%D0%BA%D0%B0%D1%81%D0%BA%D0%B0%D0%B4%D0%BD%D0%BE%D0%B9_%D1%86%D0%B5%D0%BF%D0%BE%D1%87%D0%BA%D0%B8&amp;diff=953&amp;oldid=prev</id>
		<title>Владимир: /* Полная схема прохождения трафика */</title>
		<link rel="alternate" type="text/html" href="https://wiki.mywolfram.ru/index.php?title=Na%C3%AFveProxy:_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D0%B9_%D0%BA%D0%B0%D1%81%D0%BA%D0%B0%D0%B4%D0%BD%D0%BE%D0%B9_%D1%86%D0%B5%D0%BF%D0%BE%D1%87%D0%BA%D0%B8&amp;diff=953&amp;oldid=prev"/>
		<updated>2026-04-26T06:47:24Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Полная схема прохождения трафика&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 06:47, 26 апреля 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l75&quot;&gt;Строка 75:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 75:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Полная схема прохождения трафика ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Полная схема прохождения трафика ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Файл:NaïveProxy Полная схема прохождения трафика.png|безрамки|&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;763x763пкс&lt;/del&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Файл:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Generated image &lt;/ins&gt;NaïveProxy Полная схема прохождения трафика.png|безрамки|&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;739x739пкс&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Протоколы на каждом участке цепочки ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Протоколы на каждом участке цепочки ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Владимир</name></author>
	</entry>
	<entry>
		<id>https://wiki.mywolfram.ru/index.php?title=Na%C3%AFveProxy:_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D0%B9_%D0%BA%D0%B0%D1%81%D0%BA%D0%B0%D0%B4%D0%BD%D0%BE%D0%B9_%D1%86%D0%B5%D0%BF%D0%BE%D1%87%D0%BA%D0%B8&amp;diff=951&amp;oldid=prev</id>
		<title>Владимир в 06:33, 26 апреля 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.mywolfram.ru/index.php?title=Na%C3%AFveProxy:_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D0%B9_%D0%BA%D0%B0%D1%81%D0%BA%D0%B0%D0%B4%D0%BD%D0%BE%D0%B9_%D1%86%D0%B5%D0%BF%D0%BE%D1%87%D0%BA%D0%B8&amp;diff=951&amp;oldid=prev"/>
		<updated>2026-04-26T06:33:26Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 06:33, 26 апреля 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l75&quot;&gt;Строка 75:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 75:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Полная схема прохождения трафика ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Полная схема прохождения трафика ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Файл&lt;/ins&gt;:NaïveProxy &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Полная схема прохождения трафика&lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;png&lt;/ins&gt;|&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;безрамки&lt;/ins&gt;|&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;763x763пкс]&lt;/ins&gt;]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;pre&amp;gt;┌─────────────────────────────────────────────────────────────────────────────┐&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│                        ДОМАШНЯЯ СЕТЬ                                        │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│                                                                             │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│   &lt;/del&gt;[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Телефон]  [Ноутбук]  [ТВ]  &lt;/del&gt;[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Любое устройство]                            │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│       │           │       │           │                                     │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│       └───────────┴───────┴───────────┘                                     │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│                           │                                                 │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│                           │  обычный трафик (без настройки на устройствах)  │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│                           ▼                                                 │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│          ┌────────────────────────────────┐                                 │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│          │   Роутер Xiaomi AX6000         │                                 │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│          │   OpenWrt + podkop (sing-box)  │                                 │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│          │   naive binary → &lt;/del&gt;:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1080 (SOCKS) │                                 │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│          └────────────────────────────────┘                                 │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;└──────────────────────────────┬──────────────────────────────────────────────┘&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;                               │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;                               │  HTTPS HTTP/2 (&lt;/del&gt;NaïveProxy&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;                               │  выглядит как Chrome → your-naive-ru-domain.example.com:443&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;                               │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;                               ▼&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;┌──────────────────────────────────────────────────────────────────────────────┐&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│                  RU СЕРВЕР  YOUR_RU_SERVER_IP                                │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│                  (Entry Node)                                                │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│                                                                              │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│   ┌─────────────────────────────────────────────────────────────────────┐    │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│   │  Docker: Caddy + forwardproxy (порт :443)                           │    │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│   │  Домен: your-naive-ru-domain.example&lt;/del&gt;.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;com &lt;/del&gt;| &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;basic_auth: RU_PROXY_USER│    │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│   │  probe_resistance: включён (выглядит как обычный сайт)              │    │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│   │  upstream → socks5://127.0.0.1:10808                                │    │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│   └──────────────────────────────┬──────────────────────────────────────┘    │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│                                  │ SOCKS5 (localhost)                        │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│                                  ▼                                           │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│   ┌─────────────────────────────────────────────────────────────────────┐    │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│   │  naive daemon (systemd)  →  127.0.0.1:10808                         │    │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│   │  Туннелирует трафик дальше по NaïveProxy                            │    │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│   └──────────────────────────────┬──────────────────────────────────────┘    │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;└──────────────────────────────────┼───────────────────────────────────────────┘&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;                                   │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;                                   │  HTTPS HTTP/2 (NaïveProxy)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;                                   │  выглядит как Chrome → your-naive-eu-domain.example.com:443&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;                                   │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;                                   ▼&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;┌──────────────────────────────────────────────────────────────────────────────┐&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│                  EU СЕРВЕР  YOUR_EU_SERVER_IP                                │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│                  (Exit Node)                                                 │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│                                                                              │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│   ┌─────────────────────────────────────────────────────────────────────┐    │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│   │  Docker: Caddy + forwardproxy (порт :443)                           │    │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│   │  Домен: your-naive-eu-domain.example.com &lt;/del&gt;| &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;basic_auth: EU_PROXY_USER│    │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│   │  probe_resistance: включён                                          │    │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│   │  upstream → socks5://127.0.0.1:24363                                │    │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│   └──────────────────────────────┬──────────────────────────────────────┘    │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│                                  │ SOCKS5 (localhost)                        │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│                                  ▼                                           │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│   ┌─────────────────────────────────────────────────────────────────────┐    │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│   │  3x-ui inbound &quot;naive-Caddy&quot;  →  127.0.0.1:24363  (mixed/SOCKS5)    │    │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│   │  routing rule: inbound tag &quot;naive-Caddy&quot; → outbound WARP            │    │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│   └──────────────────────────────┬──────────────────────────────────────┘    │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│                                  │                                           │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│                                  ▼                                           │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│   ┌─────────────────────────────────────────────────────────────────────┐    │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│   │  Cloudflare WARP  (WireGuard/gVisor TUN)                            │    │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│   │  Финальный выход в интернет — сайты видят IP Cloudflare             │    │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;│   └──────────────────────────────┬──────────────────────────────────────┘    │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;└──────────────────────────────────┼───────────────────────────────────────────┘&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;                                   │&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;                                   ▼&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;                            [ ИНТЕРНЕТ &lt;/del&gt;]&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/pre&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Протоколы на каждом участке цепочки ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Протоколы на каждом участке цепочки ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Владимир</name></author>
	</entry>
	<entry>
		<id>https://wiki.mywolfram.ru/index.php?title=Na%C3%AFveProxy:_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D0%B9_%D0%BA%D0%B0%D1%81%D0%BA%D0%B0%D0%B4%D0%BD%D0%BE%D0%B9_%D1%86%D0%B5%D0%BF%D0%BE%D1%87%D0%BA%D0%B8&amp;diff=949&amp;oldid=prev</id>
		<title>Владимир в 09:28, 25 апреля 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.mywolfram.ru/index.php?title=Na%C3%AFveProxy:_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D0%B9_%D0%BA%D0%B0%D1%81%D0%BA%D0%B0%D0%B4%D0%BD%D0%BE%D0%B9_%D1%86%D0%B5%D0%BF%D0%BE%D1%87%D0%BA%D0%B8&amp;diff=949&amp;oldid=prev"/>
		<updated>2026-04-25T09:28:54Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://wiki.mywolfram.ru/index.php?title=Na%C3%AFveProxy:_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D0%B9_%D0%BA%D0%B0%D1%81%D0%BA%D0%B0%D0%B4%D0%BD%D0%BE%D0%B9_%D1%86%D0%B5%D0%BF%D0%BE%D1%87%D0%BA%D0%B8&amp;amp;diff=949&amp;amp;oldid=948&quot;&gt;Внесённые изменения&lt;/a&gt;</summary>
		<author><name>Владимир</name></author>
	</entry>
	<entry>
		<id>https://wiki.mywolfram.ru/index.php?title=Na%C3%AFveProxy:_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D0%B9_%D0%BA%D0%B0%D1%81%D0%BA%D0%B0%D0%B4%D0%BD%D0%BE%D0%B9_%D1%86%D0%B5%D0%BF%D0%BE%D1%87%D0%BA%D0%B8&amp;diff=948&amp;oldid=prev</id>
		<title>Владимир: /* Полная схема прохождения трафика */</title>
		<link rel="alternate" type="text/html" href="https://wiki.mywolfram.ru/index.php?title=Na%C3%AFveProxy:_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D0%B9_%D0%BA%D0%B0%D1%81%D0%BA%D0%B0%D0%B4%D0%BD%D0%BE%D0%B9_%D1%86%D0%B5%D0%BF%D0%BE%D1%87%D0%BA%D0%B8&amp;diff=948&amp;oldid=prev"/>
		<updated>2026-04-25T08:46:19Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Полная схема прохождения трафика&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 08:46, 25 апреля 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l76&quot;&gt;Строка 76:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 76:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Полная схема прохождения трафика ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Полная схема прохождения трафика ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;┌─────────────────────────────────────────────────────────────────────────────┐&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;┌─────────────────────────────────────────────────────────────────────────────┐&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│                        ДОМАШНЯЯ СЕТЬ                                        │&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│                        ДОМАШНЯЯ СЕТЬ                                        │&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│                                                                             │&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│                                                                             │&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   [Телефон]  [Ноутбук]  [ТВ]  [Любое устройство] &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;                         &lt;/del&gt;│&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   [Телефон]  [Ноутбук]  [ТВ]  [Любое устройство] &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;                           &lt;/ins&gt;│&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│       │           │       │           │                                     │&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│       │           │       │           │                                     │&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│       └───────────┴───────┴───────────┘                                     │&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│       └───────────┴───────┴───────────┘                                     │&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│                           │                                                 │&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│                           │                                                 │&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│                           │  обычный трафик (без настройки на устройствах) │&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│                           │  обычный трафик (без настройки на устройствах) &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/ins&gt;│&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│                           ▼                                                 │&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│                           ▼                                                 │&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│          ┌────────────────────────────────┐                                 │&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│          ┌────────────────────────────────┐                                 │&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l101&quot;&gt;Строка 101:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 100:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│                  (Entry Node)                                                │&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│                  (Entry Node)                                                │&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│                                                                              │&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│                                                                              │&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   ┌─────────────────────────────────────────────────────────────────────┐ &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &lt;/del&gt;│&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   ┌─────────────────────────────────────────────────────────────────────┐ &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;   &lt;/ins&gt;│&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   │  Docker: Caddy + forwardproxy (порт :443)                           │ &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &lt;/del&gt;│&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   │  Docker: Caddy + forwardproxy (порт :443)                           │ &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;   &lt;/ins&gt;│&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   │  Домен: your-naive-ru-domain.example.com &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/del&gt;| &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/del&gt;basic_auth: &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;RU_PROXY_USER   │   &lt;/del&gt;│&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   │  Домен: your-naive-ru-domain.example.com | basic_auth: &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;RU_PROXY_USER│    &lt;/ins&gt;│&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   │  probe_resistance: включён (выглядит как обычный сайт)              │ &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &lt;/del&gt;│&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   │  probe_resistance: включён (выглядит как обычный сайт)              │ &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;   &lt;/ins&gt;│&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   │  upstream → socks5://127.0.0.1:10808                                │ &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &lt;/del&gt;│&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   │  upstream → socks5://127.0.0.1:10808                                │ &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;   &lt;/ins&gt;│&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   └──────────────────────────────┬──────────────────────────────────────┘ &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &lt;/del&gt;│&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   └──────────────────────────────┬──────────────────────────────────────┘ &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;   &lt;/ins&gt;│&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│                                  │ SOCKS5 (localhost)                        │&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│                                  │ SOCKS5 (localhost)                        │&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│                                  ▼                                           │&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│                                  ▼                                           │&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   ┌─────────────────────────────────────────────────────────────────────┐ &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &lt;/del&gt;│&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   ┌─────────────────────────────────────────────────────────────────────┐ &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;   &lt;/ins&gt;│&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   │  naive daemon (systemd)  →  127.0.0.1:10808                         │ &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &lt;/del&gt;│&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   │  naive daemon (systemd)  →  127.0.0.1:10808                         │ &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;   &lt;/ins&gt;│&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   │  Туннелирует трафик дальше по NaïveProxy                            │ &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &lt;/del&gt;│&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   │  Туннелирует трафик дальше по NaïveProxy                            │ &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;   &lt;/ins&gt;│&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   └──────────────────────────────┬──────────────────────────────────────┘ &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &lt;/del&gt;│&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   └──────────────────────────────┬──────────────────────────────────────┘ &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;   &lt;/ins&gt;│&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;└──────────────────────────────────┼───────────────────────────────────────────┘&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;└──────────────────────────────────┼───────────────────────────────────────────┘&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                                    │&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                                    │&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l123&quot;&gt;Строка 123:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 122:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│                  (Exit Node)                                                 │&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│                  (Exit Node)                                                 │&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│                                                                              │&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│                                                                              │&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   ┌─────────────────────────────────────────────────────────────────────┐ &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &lt;/del&gt;│&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   ┌─────────────────────────────────────────────────────────────────────┐ &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;   &lt;/ins&gt;│&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   │  Docker: Caddy + forwardproxy (порт :443)                           │ &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &lt;/del&gt;│&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   │  Docker: Caddy + forwardproxy (порт :443)                           │ &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;   &lt;/ins&gt;│&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   │  Домен: your-naive-eu-domain.example.com &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/del&gt;| &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/del&gt;basic_auth: &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;EU_PROXY_USER   │   &lt;/del&gt;│&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   │  Домен: your-naive-eu-domain.example.com | basic_auth: &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;EU_PROXY_USER│    &lt;/ins&gt;│&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   │  probe_resistance: включён                                          │ &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &lt;/del&gt;│&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   │  probe_resistance: включён                                          │ &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;   &lt;/ins&gt;│&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   │  upstream → socks5://127.0.0.1:24363                                │ &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &lt;/del&gt;│&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   │  upstream → socks5://127.0.0.1:24363                                │ &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;   &lt;/ins&gt;│&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   └──────────────────────────────┬──────────────────────────────────────┘ &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &lt;/del&gt;│&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   └──────────────────────────────┬──────────────────────────────────────┘ &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;   &lt;/ins&gt;│&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│                                  │ SOCKS5 (localhost)                        │&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│                                  │ SOCKS5 (localhost)                        │&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│                                  ▼                                           │&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│                                  ▼                                           │&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   ┌─────────────────────────────────────────────────────────────────────┐ &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &lt;/del&gt;│&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   ┌─────────────────────────────────────────────────────────────────────┐ &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;   &lt;/ins&gt;│&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   │  3x-ui inbound &quot;naive-Caddy&quot;  →  127.0.0.1:24363  (mixed/SOCKS5) &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &lt;/del&gt;│ &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &lt;/del&gt;│&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   │  3x-ui inbound &quot;naive-Caddy&quot;  →  127.0.0.1:24363  (mixed/SOCKS5) &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;   &lt;/ins&gt;│ &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;   &lt;/ins&gt;│&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   │  routing rule: inbound tag &quot;naive-Caddy&quot; → outbound WARP            │ &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &lt;/del&gt;│&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   │  routing rule: inbound tag &quot;naive-Caddy&quot; → outbound WARP            │ &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;   &lt;/ins&gt;│&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   └──────────────────────────────┬──────────────────────────────────────┘ &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &lt;/del&gt;│&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   └──────────────────────────────┬──────────────────────────────────────┘ &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;   &lt;/ins&gt;│&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│                                  │                                           │&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│                                  │                                           │&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│                                  ▼                                           │&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│                                  ▼                                           │&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   ┌─────────────────────────────────────────────────────────────────────┐ &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &lt;/del&gt;│&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   ┌─────────────────────────────────────────────────────────────────────┐ &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;   &lt;/ins&gt;│&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   │  Cloudflare WARP  (WireGuard/gVisor TUN)                            │ &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &lt;/del&gt;│&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   │  Cloudflare WARP  (WireGuard/gVisor TUN)                            │ &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;   &lt;/ins&gt;│&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   │  Финальный выход в интернет — сайты видят IP Cloudflare             │ &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &lt;/del&gt;│&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   │  Финальный выход в интернет — сайты видят IP Cloudflare             │ &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;   &lt;/ins&gt;│&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   └──────────────────────────────┬──────────────────────────────────────┘ &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &lt;/del&gt;│&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;│   └──────────────────────────────┬──────────────────────────────────────┘ &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;   &lt;/ins&gt;│&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;└──────────────────────────────────┼───────────────────────────────────────────┘&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;└──────────────────────────────────┼───────────────────────────────────────────┘&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                                    │&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                                    │&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                                    ▼&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                                    ▼&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                             [ ИНТЕРНЕТ ]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                             [ ИНТЕРНЕТ ]&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Протоколы на каждом участке цепочки ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Протоколы на каждом участке цепочки ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Владимир</name></author>
	</entry>
	<entry>
		<id>https://wiki.mywolfram.ru/index.php?title=Na%C3%AFveProxy:_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D0%B9_%D0%BA%D0%B0%D1%81%D0%BA%D0%B0%D0%B4%D0%BD%D0%BE%D0%B9_%D1%86%D0%B5%D0%BF%D0%BE%D1%87%D0%BA%D0%B8&amp;diff=947&amp;oldid=prev</id>
		<title>Владимир в 08:43, 25 апреля 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.mywolfram.ru/index.php?title=Na%C3%AFveProxy:_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D0%B9_%D0%BA%D0%B0%D1%81%D0%BA%D0%B0%D0%B4%D0%BD%D0%BE%D0%B9_%D1%86%D0%B5%D0%BF%D0%BE%D1%87%D0%BA%D0%B8&amp;diff=947&amp;oldid=prev"/>
		<updated>2026-04-25T08:43:46Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://wiki.mywolfram.ru/index.php?title=Na%C3%AFveProxy:_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D0%B9_%D0%BA%D0%B0%D1%81%D0%BA%D0%B0%D0%B4%D0%BD%D0%BE%D0%B9_%D1%86%D0%B5%D0%BF%D0%BE%D1%87%D0%BA%D0%B8&amp;amp;diff=947&amp;amp;oldid=945&quot;&gt;Внесённые изменения&lt;/a&gt;</summary>
		<author><name>Владимир</name></author>
	</entry>
	<entry>
		<id>https://wiki.mywolfram.ru/index.php?title=Na%C3%AFveProxy:_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D0%B9_%D0%BA%D0%B0%D1%81%D0%BA%D0%B0%D0%B4%D0%BD%D0%BE%D0%B9_%D1%86%D0%B5%D0%BF%D0%BE%D1%87%D0%BA%D0%B8&amp;diff=945&amp;oldid=prev</id>
		<title>Владимир: Новая страница: « = NaïveProxy: установка полной каскадной цепочки = Данный гайд описывает пошаговое развёртывание каскадного прокси-сервера на базе протокола NaïveProxy. Трафик проходит полную цепочку:&lt;pre&gt;  Устройства → OpenWrt роутер (naive) → RU сервер (Caddy + naive) → EU сервер (Caddy) → WARP →...»</title>
		<link rel="alternate" type="text/html" href="https://wiki.mywolfram.ru/index.php?title=Na%C3%AFveProxy:_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D0%B9_%D0%BA%D0%B0%D1%81%D0%BA%D0%B0%D0%B4%D0%BD%D0%BE%D0%B9_%D1%86%D0%B5%D0%BF%D0%BE%D1%87%D0%BA%D0%B8&amp;diff=945&amp;oldid=prev"/>
		<updated>2026-04-24T19:53:45Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: « = NaïveProxy: установка полной каскадной цепочки = Данный гайд описывает пошаговое развёртывание каскадного прокси-сервера на базе протокола NaïveProxy. Трафик проходит полную цепочку:&amp;lt;pre&amp;gt;  Устройства → OpenWrt роутер (naive) → RU сервер (Caddy + naive) → EU сервер (Caddy) → WARP →...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
= NaïveProxy: установка полной каскадной цепочки =&lt;br /&gt;
Данный гайд описывает пошаговое развёртывание каскадного прокси-сервера на базе протокола NaïveProxy. Трафик проходит полную цепочку:&amp;lt;pre&amp;gt;&lt;br /&gt;
Устройства → OpenWrt роутер (naive) → RU сервер (Caddy + naive) → EU сервер (Caddy) → WARP → Интернет&lt;br /&gt;
&amp;lt;/pre&amp;gt;На серверах предполагается, что &amp;#039;&amp;#039;&amp;#039;3x-ui уже установлен и работает&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Предварительные требования ==&lt;br /&gt;
&lt;br /&gt;
=== Инфраструктура ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Компонент&lt;br /&gt;
!Требования&lt;br /&gt;
|-&lt;br /&gt;
|EU сервер&lt;br /&gt;
|Ubuntu 24.04, публичный IP, домен с A-записью → IP сервера&lt;br /&gt;
|-&lt;br /&gt;
|RU сервер&lt;br /&gt;
|Ubuntu 24.04, публичный IP, домен с A-записью → IP сервера&lt;br /&gt;
|-&lt;br /&gt;
|OpenWrt роутер&lt;br /&gt;
|OpenWrt 22.03+, архитектура aarch64_cortex-a53 или другая&lt;br /&gt;
|-&lt;br /&gt;
|Порт 80 и 443&lt;br /&gt;
|Должны быть свободны на обоих серверах (3x-ui не занимает эти порты)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== DNS-записи (создать до начала) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Запись&lt;br /&gt;
!Тип&lt;br /&gt;
!Значение&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;your-naive-ru-domain.example.com&amp;lt;/code&amp;gt;&lt;br /&gt;
|A&lt;br /&gt;
|IP RU сервера&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;your-naive-eu-domain.example.com&amp;lt;/code&amp;gt;&lt;br /&gt;
|A&lt;br /&gt;
|IP EU сервера&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Используемые заглушки ===&lt;br /&gt;
В данном руководстве применяются следующие заглушки. Замени их реальными значениями:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Заглушка&lt;br /&gt;
!Описание&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;YOUR_RU_SERVER_IP&amp;lt;/code&amp;gt;&lt;br /&gt;
|Публичный IP RU сервера&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;YOUR_EU_SERVER_IP&amp;lt;/code&amp;gt;&lt;br /&gt;
|Публичный IP EU сервера&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;your-naive-ru-domain.example.com&amp;lt;/code&amp;gt;&lt;br /&gt;
|Домен для RU сервера (Caddy)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;your-naive-eu-domain.example.com&amp;lt;/code&amp;gt;&lt;br /&gt;
|Домен для EU сервера (Caddy)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;YOUR_EMAIL@example.com&amp;lt;/code&amp;gt;&lt;br /&gt;
|Email для Let&amp;#039;s Encrypt (уведомления об истечении сертификата)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;RU_PROXY_USER&amp;lt;/code&amp;gt;&lt;br /&gt;
|Логин пользователя для RU Caddy&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;RU_PROXY_PASSWORD&amp;lt;/code&amp;gt;&lt;br /&gt;
|Пароль пользователя для RU Caddy&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;EU_PROXY_USER&amp;lt;/code&amp;gt;&lt;br /&gt;
|Логин пользователя для EU Caddy&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;EU_PROXY_PASSWORD&amp;lt;/code&amp;gt;&lt;br /&gt;
|Пароль пользователя для EU Caddy&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Часть 1: Настройка EU сервера (Exit Node) ==&lt;br /&gt;
Цель: развернуть Caddy с плагином forwardproxy (NaïveProxy) в Docker. Caddy будет принимать зашифрованные соединения от RU сервера и выпускать трафик через WARP.&lt;br /&gt;
&lt;br /&gt;
=== 1.1 Установка Docker ===&lt;br /&gt;
Выполни на EU сервере:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Обновить пакеты&lt;br /&gt;
apt-get update &amp;amp;&amp;amp; apt-get upgrade -y&lt;br /&gt;
&lt;br /&gt;
# Установить зависимости&lt;br /&gt;
apt-get install -y ca-certificates curl gnupg lsb-release&lt;br /&gt;
&lt;br /&gt;
# Добавить GPG-ключ Docker&lt;br /&gt;
install -m 0755 -d /etc/apt/keyrings&lt;br /&gt;
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \&lt;br /&gt;
  -o /etc/apt/keyrings/docker.asc&lt;br /&gt;
chmod a+r /etc/apt/keyrings/docker.asc&lt;br /&gt;
&lt;br /&gt;
# Добавить репозиторий&lt;br /&gt;
echo &amp;quot;deb [arch=$(dpkg --print-architecture) \&lt;br /&gt;
  signed-by=/etc/apt/keyrings/docker.asc] \&lt;br /&gt;
  https://download.docker.com/linux/ubuntu \&lt;br /&gt;
  $(. /etc/os-release &amp;amp;&amp;amp; echo &amp;quot;$VERSION_CODENAME&amp;quot;) stable&amp;quot; \&lt;br /&gt;
  &amp;gt; /etc/apt/sources.list.d/docker.list&lt;br /&gt;
&lt;br /&gt;
# Установить Docker&lt;br /&gt;
apt-get update&lt;br /&gt;
apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin&lt;br /&gt;
&lt;br /&gt;
# Проверить&lt;br /&gt;
docker --version&lt;br /&gt;
docker compose version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Ожидаемый вывод:&amp;lt;pre&amp;gt;&lt;br /&gt;
Docker version 27.x.x, build ...&lt;br /&gt;
Docker Compose version v2.x.x&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 1.2 Создание структуры каталогов ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -p /opt/caddy-naive/www&lt;br /&gt;
cd /opt/caddy-naive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 1.3 Создание Dockerfile ===&lt;br /&gt;
Caddy собирается с нестандартным плагином &amp;lt;code&amp;gt;forwardproxy&amp;lt;/code&amp;gt; (форк klzgrad/forwardproxy@naive). Используется Go 1.25+ — обязательное требование для текущей версии Caddy.&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat &amp;gt; /opt/caddy-naive/Dockerfile &amp;lt;&amp;lt; &amp;#039;EOF&amp;#039;&lt;br /&gt;
FROM golang:1.25-alpine AS builder&lt;br /&gt;
RUN apk add --no-cache git&lt;br /&gt;
RUN go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest&lt;br /&gt;
RUN xcaddy build \&lt;br /&gt;
    --with github.com/caddyserver/forwardproxy=github.com/klzgrad/forwardproxy@naive&lt;br /&gt;
&lt;br /&gt;
FROM debian:bookworm-slim&lt;br /&gt;
RUN apt-get update &amp;amp;&amp;amp; apt-get install -y ca-certificates &amp;amp;&amp;amp; rm -rf /var/lib/apt/lists/*&lt;br /&gt;
COPY --from=builder /go/caddy /usr/local/bin/caddy&lt;br /&gt;
EXPOSE 80 443&lt;br /&gt;
CMD [&amp;quot;caddy&amp;quot;, &amp;quot;run&amp;quot;, &amp;quot;--config&amp;quot;, &amp;quot;/etc/caddy/Caddyfile&amp;quot;, &amp;quot;--adapter&amp;quot;, &amp;quot;caddyfile&amp;quot;]&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Почему Go 1.25-alpine?&lt;br /&gt;
: Текущая версия Caddy требует Go &amp;gt;= 1.25. Системный Go в Ubuntu 24.04 — версия 1.22, которая не подходит. Поэтому сборка происходит внутри Docker-контейнера с нужной версией.&lt;br /&gt;
&lt;br /&gt;
=== 1.4 Создание docker-compose.yml ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat &amp;gt; /opt/caddy-naive/docker-compose.yml &amp;lt;&amp;lt; &amp;#039;EOF&amp;#039;&lt;br /&gt;
services:&lt;br /&gt;
  caddy-naive:&lt;br /&gt;
    build: .&lt;br /&gt;
    container_name: caddy-naive&lt;br /&gt;
    restart: unless-stopped&lt;br /&gt;
    network_mode: host&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ./Caddyfile:/etc/caddy/Caddyfile:ro&lt;br /&gt;
      - ./www:/var/www/html:ro&lt;br /&gt;
      - caddy_data:/data&lt;br /&gt;
      - caddy_logs:/var/log/caddy&lt;br /&gt;
&lt;br /&gt;
volumes:&lt;br /&gt;
  caddy_data:&lt;br /&gt;
  caddy_logs:&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Почему network_mode&lt;br /&gt;
: host?&lt;br /&gt;
: Контейнер использует сетевой стек хоста напрямую. Это необходимо чтобы:&lt;br /&gt;
:* Caddy получал реальные клиентские IP для корректной работы probe_resistance&lt;br /&gt;
:* Контейнер мог обращаться к &amp;lt;code&amp;gt;127.0.0.1:24363&amp;lt;/code&amp;gt; (Xray inbound WARP) — локальному сервису хоста&lt;br /&gt;
&lt;br /&gt;
=== 1.5 Создание заглушки для probe_resistance ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat &amp;gt; /opt/caddy-naive/www/index.html &amp;lt;&amp;lt; &amp;#039;EOF&amp;#039;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;title&amp;gt;Welcome&amp;lt;/title&amp;gt;&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&amp;lt;h1&amp;gt;Welcome&amp;lt;/h1&amp;gt;&amp;lt;p&amp;gt;Nothing to see here.&amp;lt;/p&amp;gt;&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Зачем это нужно?&lt;br /&gt;
: Функция &amp;lt;code&amp;gt;probe_resistance&amp;lt;/code&amp;gt; в Caddy скрывает факт наличия прокси.&lt;br /&gt;
: При обращении без авторизации сервер возвращает эту обычную HTML-страницу вместо ответа прокси.&lt;br /&gt;
: Это защищает от автоматических сканеров и активных проверок (ТСПУ, DPI).&lt;br /&gt;
&lt;br /&gt;
=== 1.6 Создание Caddyfile ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat &amp;gt; /opt/caddy-naive/Caddyfile &amp;lt;&amp;lt; &amp;#039;EOF&amp;#039;&lt;br /&gt;
{&lt;br /&gt;
  order forward_proxy before file_server&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
:443, your-naive-eu-domain.example.com {&lt;br /&gt;
  tls YOUR_EMAIL@example.com&lt;br /&gt;
  forward_proxy {&lt;br /&gt;
    basic_auth EU_PROXY_USER EU_PROXY_PASSWORD&lt;br /&gt;
    upstream socks5://127.0.0.1:24363&lt;br /&gt;
    hide_ip&lt;br /&gt;
    hide_via&lt;br /&gt;
    probe_resistance&lt;br /&gt;
  }&lt;br /&gt;
  file_server {&lt;br /&gt;
    root /var/www/html&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Важные нюансы синтаксиса&lt;br /&gt;
:&lt;br /&gt;
: * &amp;lt;code&amp;gt;:443, your-naive-eu-domain.example.com&amp;lt;/code&amp;gt; — запятая и пробел обязательны. Именно такой синтаксис активирует HTTP/2 для CONNECT-туннелей, без которого NaïveProxy не работает&lt;br /&gt;
: * &amp;lt;code&amp;gt;upstream socks5://127.0.0.1:24363&amp;lt;/code&amp;gt; — перенаправляет исходящий трафик в Xray inbound (WARP). Если WARP ещё не настроен, эту строку можно убрать — трафик пойдёт напрямую в интернет&lt;br /&gt;
: * &amp;lt;code&amp;gt;probe_resistance&amp;lt;/code&amp;gt; — без параметра означает ответ HTML-заглушкой на неавторизованные запросы&lt;br /&gt;
&lt;br /&gt;
=== 1.7 Настройка Xray inbound для WARP (в 3x-ui) ===&lt;br /&gt;
Данный шаг необходим чтобы выходящий трафик от Caddy уходил через Cloudflare WARP, а не напрямую в интернет.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;В панели 3x-ui на EU сервере:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
# Перейди в раздел &amp;quot;Подключения&amp;quot; → &amp;quot;Создать подключение&amp;quot;&lt;br /&gt;
# Заполни параметры:&lt;br /&gt;
#* Протокол: &amp;lt;code&amp;gt;mixed&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Мониторинг IP: &amp;lt;code&amp;gt;127.0.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
#* IP: &amp;lt;code&amp;gt;127.0.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Порт: &amp;lt;code&amp;gt;24363&amp;lt;/code&amp;gt; (или любой свободный)&lt;br /&gt;
#* Пароль: выключен&lt;br /&gt;
#* UDP: включён&lt;br /&gt;
#* Примечание: &amp;lt;code&amp;gt;naive-Caddy&amp;lt;/code&amp;gt;&lt;br /&gt;
# Сохрани подключение&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Создать routing rule (Xray настройки → Маршрутизация):&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
# Добавь правило: inbound tag &amp;lt;code&amp;gt;naive-Caddy&amp;lt;/code&amp;gt; → outbound WARP&lt;br /&gt;
# Это направит весь трафик от Caddy через Cloudflare WARP&lt;br /&gt;
&lt;br /&gt;
; Проверка WARP inbound&lt;br /&gt;
:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl -s -x socks5h://127.0.0.1:24363 https://ifconfig.me&lt;br /&gt;
# Должен вернуть IP из диапазона Cloudflare: 104.x.x.x или 162.159.x.x&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 1.8 Сборка и запуск ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /opt/caddy-naive&lt;br /&gt;
&lt;br /&gt;
# Сборка образа (занимает 3-5 минут — компилируется Go)&lt;br /&gt;
docker compose build&lt;br /&gt;
&lt;br /&gt;
# Запуск в фоне&lt;br /&gt;
docker compose up -d&lt;br /&gt;
&lt;br /&gt;
# Наблюдение за логами (получение сертификата занимает ~30 секунд)&lt;br /&gt;
docker compose logs -f&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Ожидаемый вывод в логах:&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
{&amp;quot;level&amp;quot;:&amp;quot;info&amp;quot;,&amp;quot;msg&amp;quot;:&amp;quot;certificate obtained successfully&amp;quot;,&amp;quot;identifier&amp;quot;:&amp;quot;your-naive-eu-domain.example.com&amp;quot;}&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 1.9 Проверка EU сервера ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Проверка probe_resistance — должна вернуть HTML страницу (не ошибку прокси)&lt;br /&gt;
curl -sv https://your-naive-eu-domain.example.com 2&amp;gt;&amp;amp;1 | grep -E &amp;quot;&amp;lt; HTTP|title&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Проверка прокси-функциональности через SOCKS5 inbound&lt;br /&gt;
curl -s -x socks5h://127.0.0.1:24363 https://ifconfig.me&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Часть 2: Настройка RU сервера (Entry Node) ==&lt;br /&gt;
Цель: на RU сервере поднять два компонента:&lt;br /&gt;
&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Caddy&amp;#039;&amp;#039;&amp;#039; (Docker) — принимает соединения от клиентов (роутеров), пробрасывает через локальный naive daemon&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;naive daemon&amp;#039;&amp;#039;&amp;#039; (systemd) — клиент, который соединяется с EU Caddy по протоколу NaïveProxy&lt;br /&gt;
&lt;br /&gt;
=== 2.1 Установка Docker ===&lt;br /&gt;
Те же команды, что и для EU сервера:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
apt-get update &amp;amp;&amp;amp; apt-get upgrade -y&lt;br /&gt;
apt-get install -y ca-certificates curl gnupg lsb-release&lt;br /&gt;
&lt;br /&gt;
install -m 0755 -d /etc/apt/keyrings&lt;br /&gt;
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \&lt;br /&gt;
  -o /etc/apt/keyrings/docker.asc&lt;br /&gt;
chmod a+r /etc/apt/keyrings/docker.asc&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;deb [arch=$(dpkg --print-architecture) \&lt;br /&gt;
  signed-by=/etc/apt/keyrings/docker.asc] \&lt;br /&gt;
  https://download.docker.com/linux/ubuntu \&lt;br /&gt;
  $(. /etc/os-release &amp;amp;&amp;amp; echo &amp;quot;$VERSION_CODENAME&amp;quot;) stable&amp;quot; \&lt;br /&gt;
  &amp;gt; /etc/apt/sources.list.d/docker.list&lt;br /&gt;
&lt;br /&gt;
apt-get update&lt;br /&gt;
apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin&lt;br /&gt;
&lt;br /&gt;
docker --version &amp;amp;&amp;amp; docker compose version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2.2 Структура каталогов и файлы Docker ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -p /opt/caddy-naive/www&lt;br /&gt;
cd /opt/caddy-naive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Dockerfile идентичен EU серверу:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat &amp;gt; /opt/caddy-naive/Dockerfile &amp;lt;&amp;lt; &amp;#039;EOF&amp;#039;&lt;br /&gt;
FROM golang:1.25-alpine AS builder&lt;br /&gt;
RUN apk add --no-cache git&lt;br /&gt;
RUN go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest&lt;br /&gt;
RUN xcaddy build \&lt;br /&gt;
    --with github.com/caddyserver/forwardproxy=github.com/klzgrad/forwardproxy@naive&lt;br /&gt;
&lt;br /&gt;
FROM debian:bookworm-slim&lt;br /&gt;
RUN apt-get update &amp;amp;&amp;amp; apt-get install -y ca-certificates &amp;amp;&amp;amp; rm -rf /var/lib/apt/lists/*&lt;br /&gt;
COPY --from=builder /go/caddy /usr/local/bin/caddy&lt;br /&gt;
EXPOSE 80 443&lt;br /&gt;
CMD [&amp;quot;caddy&amp;quot;, &amp;quot;run&amp;quot;, &amp;quot;--config&amp;quot;, &amp;quot;/etc/caddy/Caddyfile&amp;quot;, &amp;quot;--adapter&amp;quot;, &amp;quot;caddyfile&amp;quot;]&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat &amp;gt; /opt/caddy-naive/docker-compose.yml &amp;lt;&amp;lt; &amp;#039;EOF&amp;#039;&lt;br /&gt;
services:&lt;br /&gt;
  caddy-naive:&lt;br /&gt;
    build: .&lt;br /&gt;
    container_name: caddy-naive&lt;br /&gt;
    restart: unless-stopped&lt;br /&gt;
    network_mode: host&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ./Caddyfile:/etc/caddy/Caddyfile:ro&lt;br /&gt;
      - ./www:/var/www/html:ro&lt;br /&gt;
      - caddy_data:/data&lt;br /&gt;
      - caddy_logs:/var/log/caddy&lt;br /&gt;
&lt;br /&gt;
volumes:&lt;br /&gt;
  caddy_data:&lt;br /&gt;
  caddy_logs:&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat &amp;gt; /opt/caddy-naive/www/index.html &amp;lt;&amp;lt; &amp;#039;EOF&amp;#039;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;title&amp;gt;Welcome&amp;lt;/title&amp;gt;&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&amp;lt;h1&amp;gt;Welcome&amp;lt;/h1&amp;gt;&amp;lt;p&amp;gt;Nothing to see here.&amp;lt;/p&amp;gt;&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2.3 Создание Caddyfile RU сервера ===&lt;br /&gt;
Ключевое отличие от EU: директива &amp;lt;code&amp;gt;upstream socks5://127.0.0.1:10808&amp;lt;/code&amp;gt;, которая перенаправляет входящие CONNECT-запросы в локальный naive daemon.&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat &amp;gt; /opt/caddy-naive/Caddyfile &amp;lt;&amp;lt; &amp;#039;EOF&amp;#039;&lt;br /&gt;
{&lt;br /&gt;
  order forward_proxy before file_server&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
:443, your-naive-ru-domain.example.com {&lt;br /&gt;
  tls YOUR_EMAIL@example.com&lt;br /&gt;
  forward_proxy {&lt;br /&gt;
    basic_auth RU_PROXY_USER RU_PROXY_PASSWORD&lt;br /&gt;
    upstream socks5://127.0.0.1:10808&lt;br /&gt;
    hide_ip&lt;br /&gt;
    hide_via&lt;br /&gt;
    probe_resistance&lt;br /&gt;
  }&lt;br /&gt;
  file_server {&lt;br /&gt;
    root /var/www/html&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Почему upstream socks5, а не https?&lt;br /&gt;
: Вариант &amp;lt;code&amp;gt;upstream https://EU_CADDY&amp;lt;/code&amp;gt; не работает в данной схеме — Caddy при таком подходе &amp;quot;протекает&amp;quot; заголовки HTTP-ответа в TLS-туннель, что ломает рукопожатие. Правильное решение — цепочка через SOCKS5 к бинарнику naive, который уже корректно реализует протокол NaïveProxy.&lt;br /&gt;
&lt;br /&gt;
=== 2.4 Сборка и запуск Caddy ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /opt/caddy-naive&lt;br /&gt;
docker compose build&lt;br /&gt;
docker compose up -d&lt;br /&gt;
docker compose logs -f&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Ожидаемый вывод:&amp;lt;pre&amp;gt;&lt;br /&gt;
{&amp;quot;level&amp;quot;:&amp;quot;info&amp;quot;,&amp;quot;msg&amp;quot;:&amp;quot;certificate obtained successfully&amp;quot;,&amp;quot;identifier&amp;quot;:&amp;quot;your-naive-ru-domain.example.com&amp;quot;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2.5 Установка naive daemon (клиент для EU) ===&lt;br /&gt;
&lt;br /&gt;
==== 2.5.1 Определение архитектуры сервера ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
uname -m&lt;br /&gt;
# x86_64 → нужен пакет для linux-x86_64-static&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 2.5.2 Скачивание бинарника naive ====&lt;br /&gt;
Перейди на страницу релизов: https://github.com/klzgrad/naiveproxy/releases&lt;br /&gt;
&lt;br /&gt;
Найди архив для своей архитектуры. Для Ubuntu x86_64:&amp;lt;pre&amp;gt;&lt;br /&gt;
naiveproxy-vXXX-linux-x86_64.tar.xz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Скачать (замени URL на актуальный из Releases)&lt;br /&gt;
cd /tmp&lt;br /&gt;
wget https://github.com/klzgrad/naiveproxy/releases/download/vXXX/naiveproxy-vXXX-linux-x86_64.tar.xz&lt;br /&gt;
&lt;br /&gt;
# Распаковать (xzcat нужен если tar не поддерживает .xz напрямую)&lt;br /&gt;
tar -xf naiveproxy-vXXX-linux-x86_64.tar.xz&lt;br /&gt;
# или&lt;br /&gt;
xzcat naiveproxy-vXXX-linux-x86_64.tar.xz | tar -xf -&lt;br /&gt;
&lt;br /&gt;
# Установить бинарник&lt;br /&gt;
cp naiveproxy-vXXX-linux-x86_64/naive /usr/bin/naive&lt;br /&gt;
chmod +x /usr/bin/naive&lt;br /&gt;
&lt;br /&gt;
# Проверить&lt;br /&gt;
naive --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 2.5.3 Создание конфигурации naive daemon ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -p /etc/naive&lt;br /&gt;
&lt;br /&gt;
cat &amp;gt; /etc/naive/config.json &amp;lt;&amp;lt; &amp;#039;EOF&amp;#039;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;listen&amp;quot;: &amp;quot;socks://127.0.0.1:10808&amp;quot;,&lt;br /&gt;
  &amp;quot;proxy&amp;quot;: &amp;quot;https://EU_PROXY_USER:EU_PROXY_PASSWORD@your-naive-eu-domain.example.com&amp;quot;,&lt;br /&gt;
  &amp;quot;log&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Что происходит&lt;br /&gt;
:* &amp;lt;code&amp;gt;listen&amp;lt;/code&amp;gt; — naive слушает SOCKS5 на localhost:10808 (именно сюда смотрит upstream в Caddyfile RU)&lt;br /&gt;
:* &amp;lt;code&amp;gt;proxy&amp;lt;/code&amp;gt; — подключается к EU Caddy по протоколу NaïveProxy (HTTP/2 CONNECT over TLS, трафик неотличим от обычного Chrome HTTPS)&lt;br /&gt;
&lt;br /&gt;
==== 2.5.4 Создание systemd-сервиса ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat &amp;gt; /etc/systemd/system/naive.service &amp;lt;&amp;lt; &amp;#039;EOF&amp;#039;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=NaïveProxy client daemon&lt;br /&gt;
After=network.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
ExecStart=/usr/bin/naive /etc/naive/config.json&lt;br /&gt;
Restart=always&lt;br /&gt;
RestartSec=5&lt;br /&gt;
User=nobody&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Активировать и запустить&lt;br /&gt;
systemctl daemon-reload&lt;br /&gt;
systemctl enable naive&lt;br /&gt;
systemctl start naive&lt;br /&gt;
&lt;br /&gt;
# Проверить статус&lt;br /&gt;
systemctl status naive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Ожидаемый вывод:&amp;lt;pre&amp;gt;&lt;br /&gt;
● naive.service - NaïveProxy client daemon&lt;br /&gt;
     Loaded: loaded (/etc/systemd/system/naive.service; enabled)&lt;br /&gt;
     Active: active (running)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2.6 Проверка цепочки с RU сервера ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Тест HTTP через naive daemon → EU → WARP&lt;br /&gt;
curl -s -x socks5h://127.0.0.1:10808 http://ifconfig.me&lt;br /&gt;
# Должен вернуть IP EU сервера или Cloudflare WARP IP&lt;br /&gt;
&lt;br /&gt;
# Тест HTTPS&lt;br /&gt;
curl -s -x socks5h://127.0.0.1:10808 https://ifconfig.me&lt;br /&gt;
# Должен вернуть тот же результат&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Часть 3: Настройка OpenWrt роутера ==&lt;br /&gt;
Цель: запустить naive как клиент на роутере, подключить podkop для избирательной маршрутизации через RU Caddy.&lt;br /&gt;
&lt;br /&gt;
=== 3.1 Определение архитектуры роутера ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
uname -m&lt;br /&gt;
# aarch64 → нужен пакет openwrt-aarch64_cortex-a53-static&lt;br /&gt;
# или x86_64, mipsel, armv7l — зависит от модели роутера&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Подробнее об архитектуре&lt;br /&gt;
cat /etc/openwrt_release | grep ARCH&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3.2 Скачивание бинарника naive для OpenWrt ===&lt;br /&gt;
На странице релизов https://github.com/klzgrad/naiveproxy/releases найди архив:&amp;lt;pre&amp;gt;&lt;br /&gt;
naiveproxy-vXXX-openwrt-aarch64_cortex-a53.tar.xz&lt;br /&gt;
&amp;lt;/pre&amp;gt;(замени архитектуру на свою)&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Создать каталог&lt;br /&gt;
mkdir -p /etc/naive&lt;br /&gt;
&lt;br /&gt;
# Скачать (замени URL)&lt;br /&gt;
cd /tmp&lt;br /&gt;
wget https://github.com/klzgrad/naiveproxy/releases/download/vXXX/naiveproxy-vXXX-openwrt-aarch64_cortex-a53.tar.xz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Важно&lt;br /&gt;
: OpenWrt использует BusyBox tar, который не поддерживает .xz напрямую.&lt;br /&gt;
&lt;br /&gt;
Используй pipe с xzcat:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Если xz не установлен:&lt;br /&gt;
opkg update &amp;amp;&amp;amp; opkg install xz&lt;br /&gt;
&lt;br /&gt;
# Распаковать через pipe&lt;br /&gt;
xzcat naiveproxy-vXXX-openwrt-aarch64_cortex-a53.tar.xz | tar -xf -&lt;br /&gt;
&lt;br /&gt;
# Установить бинарник&lt;br /&gt;
cp naiveproxy-vXXX-openwrt-aarch64_cortex-a53/naive /usr/bin/naive&lt;br /&gt;
chmod +x /usr/bin/naive&lt;br /&gt;
&lt;br /&gt;
# Проверить&lt;br /&gt;
naive --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3.3 Создание конфигурации ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat &amp;gt; /etc/naive/config.json &amp;lt;&amp;lt; &amp;#039;EOF&amp;#039;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;listen&amp;quot;: &amp;quot;socks://127.0.0.1:1080&amp;quot;,&lt;br /&gt;
  &amp;quot;proxy&amp;quot;: &amp;quot;https://RU_PROXY_USER:RU_PROXY_PASSWORD@your-naive-ru-domain.example.com&amp;quot;,&lt;br /&gt;
  &amp;quot;log&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Чем этот конфиг отличается от конфига на RU сервере&lt;br /&gt;
:* Роутер подключается к RU Caddy (не к EU напрямую) — это первое звено каскада&lt;br /&gt;
:* Слушает на порту 1080 (стандарт для SOCKS5, podkop по умолчанию ожидает его)&lt;br /&gt;
&lt;br /&gt;
=== 3.4 Создание init-скрипта procd ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat &amp;gt; /etc/init.d/naive &amp;lt;&amp;lt; &amp;#039;EOF&amp;#039;&lt;br /&gt;
#!/bin/sh /etc/rc.common&lt;br /&gt;
&lt;br /&gt;
START=95&lt;br /&gt;
STOP=01&lt;br /&gt;
USE_PROCD=1&lt;br /&gt;
&lt;br /&gt;
start_service() {&lt;br /&gt;
    procd_open_instance&lt;br /&gt;
    procd_set_param command /usr/bin/naive /etc/naive/config.json&lt;br /&gt;
    procd_set_param respawn&lt;br /&gt;
    procd_set_param stdout 1&lt;br /&gt;
    procd_set_param stderr 1&lt;br /&gt;
    procd_close_instance&lt;br /&gt;
}&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
chmod +x /etc/init.d/naive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Почему START=95?&lt;br /&gt;
: Сервис должен запускаться после сети (START=20) и других зависимостей. 95 — безопасное значение.&lt;br /&gt;
&lt;br /&gt;
=== 3.5 Запуск и автозапуск ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Включить автозапуск&lt;br /&gt;
/etc/init.d/naive enable&lt;br /&gt;
&lt;br /&gt;
# Запустить сейчас&lt;br /&gt;
/etc/init.d/naive start&lt;br /&gt;
&lt;br /&gt;
# Проверить статус&lt;br /&gt;
/etc/init.d/naive status&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3.6 Проверка ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Тест подключения через наивный прокси&lt;br /&gt;
curl -s -x socks5h://127.0.0.1:1080 http://ifconfig.me&lt;br /&gt;
# Должен вернуть IP WARP или EU сервера (НЕ IP роутера или RU сервера)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3.7 Настройка podkop ===&lt;br /&gt;
В интерфейсе podkop (LuCI или CLI):&lt;br /&gt;
&lt;br /&gt;
# Тип прокси: &amp;#039;&amp;#039;&amp;#039;SOCKS5&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Адрес: &amp;lt;code&amp;gt;socks5://127.0.0.1:1080&amp;lt;/code&amp;gt;&lt;br /&gt;
# Сохрани и применй настройки&lt;br /&gt;
&lt;br /&gt;
После этого все устройства домашней сети, трафик которых podkop перенаправляет, будут автоматически идти через полную цепочку: &amp;#039;&amp;#039;&amp;#039;Роутер → RU Caddy → EU Caddy → WARP → Интернет&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
=== 3.8 Управление сервисом на роутере ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Команда&lt;br /&gt;
!Действие&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/etc/init.d/naive start&amp;lt;/code&amp;gt;&lt;br /&gt;
|Запустить&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/etc/init.d/naive stop&amp;lt;/code&amp;gt;&lt;br /&gt;
|Остановить&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/etc/init.d/naive restart&amp;lt;/code&amp;gt;&lt;br /&gt;
|Перезапустить&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/etc/init.d/naive status&amp;lt;/code&amp;gt;&lt;br /&gt;
|Статус&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/etc/init.d/naive enable&amp;lt;/code&amp;gt;&lt;br /&gt;
|Добавить в автозапуск&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/etc/init.d/naive disable&amp;lt;/code&amp;gt;&lt;br /&gt;
|Убрать из автозапуска&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Часть 4: Управление пользователями (утилита naive-users) ==&lt;br /&gt;
На RU сервере доступна CLI-утилита для управления пользователями Caddy без ручного редактирования Caddyfile.&lt;br /&gt;
&lt;br /&gt;
=== 4.1 Установка утилиты ===&lt;br /&gt;
Скопируй файл &amp;lt;code&amp;gt;naive-users.sh&amp;lt;/code&amp;gt; с рабочей машины на сервер:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# На рабочей машине (Windows PowerShell):&lt;br /&gt;
scp naive-users.sh root@YOUR_RU_SERVER_IP:/usr/local/bin/naive-users.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;На RU сервере:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Убрать Windows-окончания строк (CRLF → LF) если файл создан на Windows&lt;br /&gt;
sed -i &amp;#039;s/\r//&amp;#039; /usr/local/bin/naive-users.sh&lt;br /&gt;
&lt;br /&gt;
# Сделать исполняемым&lt;br /&gt;
chmod +x /usr/local/bin/naive-users.sh&lt;br /&gt;
&lt;br /&gt;
# Создать короткий алиас (опционально)&lt;br /&gt;
echo &amp;#039;alias naive-users=&amp;quot;sudo bash /usr/local/bin/naive-users.sh&amp;quot;&amp;#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4.2 Запуск ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo bash /usr/local/bin/naive-users.sh&lt;br /&gt;
# или после создания алиаса:&lt;br /&gt;
naive-users&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Главное меню:&amp;lt;pre&amp;gt;&lt;br /&gt;
╔══════════════════════════════════════╗&lt;br /&gt;
║   NaïveProxy User Manager (RU)       ║&lt;br /&gt;
║   Домен: your-naive-ru-domain...     ║&lt;br /&gt;
╚══════════════════════════════════════╝&lt;br /&gt;
&lt;br /&gt;
  Активных клиентов: 2&lt;br /&gt;
&lt;br /&gt;
  1. Список клиентов&lt;br /&gt;
  2. Добавить клиента&lt;br /&gt;
  3. Удалить клиента&lt;br /&gt;
  4. Показать конфиг клиента&lt;br /&gt;
  0. Выход&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4.3 Функции утилиты ===&lt;br /&gt;
&lt;br /&gt;
==== Список клиентов ====&lt;br /&gt;
Показывает нумерованный список всех &amp;lt;code&amp;gt;basic_auth&amp;lt;/code&amp;gt; записей из Caddyfile.&amp;lt;pre&amp;gt;&lt;br /&gt;
=== Список клиентов ===&lt;br /&gt;
  1. alice&lt;br /&gt;
  2. bob&lt;br /&gt;
  3. router-home&lt;br /&gt;
&lt;br /&gt;
  Всего: 3 клиент(ов)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Добавить клиента ====&lt;br /&gt;
Запрашивает имя. Пароль можно ввести вручную или нажать Enter — пароль сгенерируется автоматически (20 символов, криптостойкий). После добавления Caddy автоматически перезапускается и сразу выводится готовый &amp;lt;code&amp;gt;config.json&amp;lt;/code&amp;gt; для клиента.&amp;lt;pre&amp;gt;&lt;br /&gt;
=== Добавить клиента ===&lt;br /&gt;
Имя пользователя: alice&lt;br /&gt;
Пароль (Enter = сгенерировать автоматически): [Enter]&lt;br /&gt;
  Сгенерирован пароль: xK9mPqR2nLvT8hQw3Yz5&lt;br /&gt;
&lt;br /&gt;
Пользователь &amp;#039;alice&amp;#039; добавлен.&lt;br /&gt;
Перезапуск Caddy...&lt;br /&gt;
Caddy перезапущен успешно.&lt;br /&gt;
&lt;br /&gt;
┌─────────────────────────────────────────────┐&lt;br /&gt;
│  config.json для naive (ПК / роутер)        │&lt;br /&gt;
└─────────────────────────────────────────────┘&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;listen&amp;quot;: &amp;quot;socks://127.0.0.1:1080&amp;quot;,&lt;br /&gt;
  &amp;quot;proxy&amp;quot;: &amp;quot;https://alice:xK9mPqR2nLvT8hQw3Yz5@your-naive-ru-domain.example.com&amp;quot;,&lt;br /&gt;
  &amp;quot;log&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Путь на роутере OpenWrt:  /etc/naive/config.json&lt;br /&gt;
Путь на Windows ПК:       рядом с naive.exe&lt;br /&gt;
SOCKS5 адрес для podkop:  socks5://127.0.0.1:1080&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Удалить клиента ====&lt;br /&gt;
Показывает список, просит указать номер, требует подтверждение (y/N), затем удаляет строку из Caddyfile и перезапускает Caddy.&lt;br /&gt;
&lt;br /&gt;
==== Показать конфиг клиента ====&lt;br /&gt;
Выбрать существующего пользователя из списка — утилита прочитает логин и пароль из Caddyfile и выведет готовый &amp;lt;code&amp;gt;config.json&amp;lt;/code&amp;gt;, который нужно скопировать на клиентское устройство.&lt;br /&gt;
&lt;br /&gt;
=== 4.4 Как добавить нескольких пользователей ===&lt;br /&gt;
Caddy поддерживает произвольное количество &amp;lt;code&amp;gt;basic_auth&amp;lt;/code&amp;gt; записей. Каждый пользователь имеет уникальные логин и пароль, но все они используют одну и ту же цепочку:&amp;lt;pre&amp;gt;&lt;br /&gt;
RU Caddy → naive daemon → EU Caddy → WARP → Интернет&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Важно&lt;br /&gt;
: отзыв доступа происходит мгновенно — достаточно удалить пользователя через утилиту и Caddy перезапустится. Клиент получит ошибку аутентификации при следующей попытке соединения.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Часть 5: Проверка полной цепочки ==&lt;br /&gt;
&lt;br /&gt;
=== 5.1 Пошаговая проверка ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Шаг&lt;br /&gt;
!Команда&lt;br /&gt;
!Где выполнять&lt;br /&gt;
!Ожидаемый результат&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;code&amp;gt;curl -s -x socks5h://127.0.0.1:24363 https://ifconfig.me&amp;lt;/code&amp;gt;&lt;br /&gt;
|EU сервер&lt;br /&gt;
|Cloudflare WARP IP (104.x.x.x)&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;code&amp;gt;curl -s -x socks5h://127.0.0.1:10808 https://ifconfig.me&amp;lt;/code&amp;gt;&lt;br /&gt;
|RU сервер&lt;br /&gt;
|Тот же WARP IP&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;code&amp;gt;curl -s -x socks5h://127.0.0.1:1080 https://ifconfig.me&amp;lt;/code&amp;gt;&lt;br /&gt;
|OpenWrt роутер&lt;br /&gt;
|Тот же WARP IP&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|Открыть браузер через podkop&lt;br /&gt;
|Устройство в сети&lt;br /&gt;
|IP отличается от домашнего&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 5.2 Проверка probe_resistance ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Запрос без авторизации — должна вернуться HTML-страница, а не ошибка прокси&lt;br /&gt;
curl -sv https://your-naive-ru-domain.example.com 2&amp;gt;&amp;amp;1 | grep -E &amp;quot;&amp;lt; HTTP|&amp;lt;title&amp;quot;&lt;br /&gt;
# Ожидается: HTTP/2 200 и &amp;lt;title&amp;gt;Welcome&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5.3 Просмотр логов ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Caddy (EU или RU сервер)&lt;br /&gt;
cd /opt/caddy-naive &amp;amp;&amp;amp; docker compose logs -f&lt;br /&gt;
&lt;br /&gt;
# naive daemon (RU сервер)&lt;br /&gt;
journalctl -u naive -f&lt;br /&gt;
&lt;br /&gt;
# naive daemon (OpenWrt роутер)&lt;br /&gt;
logread -f | grep naive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5.4 Перезапуск компонентов ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Компонент&lt;br /&gt;
!Команда&lt;br /&gt;
|-&lt;br /&gt;
|Caddy EU&lt;br /&gt;
|&amp;lt;code&amp;gt;cd /opt/caddy-naive &amp;amp;&amp;amp; docker compose restart&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Caddy RU&lt;br /&gt;
|&amp;lt;code&amp;gt;cd /opt/caddy-naive &amp;amp;&amp;amp; docker compose restart&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|naive daemon RU&lt;br /&gt;
|&amp;lt;code&amp;gt;systemctl restart naive&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|naive daemon OpenWrt&lt;br /&gt;
|&amp;lt;code&amp;gt;/etc/init.d/naive restart&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Приложение: Структура файлов ==&lt;br /&gt;
&lt;br /&gt;
=== EU сервер ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/opt/caddy-naive/&lt;br /&gt;
├── Dockerfile          ← сборка Caddy с плагином forwardproxy&lt;br /&gt;
├── docker-compose.yml  ← network_mode: host, монтирование томов&lt;br /&gt;
├── Caddyfile           ← домен, TLS, basic_auth, upstream WARP&lt;br /&gt;
└── www/&lt;br /&gt;
    └── index.html      ← заглушка для probe_resistance&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== RU сервер ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/opt/caddy-naive/&lt;br /&gt;
├── Dockerfile&lt;br /&gt;
├── docker-compose.yml&lt;br /&gt;
├── Caddyfile           ← upstream socks5://127.0.0.1:10808&lt;br /&gt;
└── www/&lt;br /&gt;
    └── index.html&lt;br /&gt;
&lt;br /&gt;
/usr/bin/naive                      ← бинарник naive daemon&lt;br /&gt;
/etc/naive/config.json              ← конфиг: listen 10808, proxy → EU Caddy&lt;br /&gt;
/etc/systemd/system/naive.service   ← автозапуск через systemd&lt;br /&gt;
/usr/local/bin/naive-users.sh       ← утилита управления пользователями&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OpenWrt роутер ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/bin/naive              ← бинарник naive (архитектура роутера)&lt;br /&gt;
/etc/naive/config.json      ← конфиг: listen 1080, proxy → RU Caddy&lt;br /&gt;
/etc/init.d/naive           ← автозапуск через procd (START=95)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Приложение: Частые ошибки ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Ошибка&lt;br /&gt;
!Причина&lt;br /&gt;
!Решение&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;requires go &amp;gt;= 1.25.0&amp;lt;/code&amp;gt; при сборке&lt;br /&gt;
|Системный Go устарел&lt;br /&gt;
|Dockerfile уже использует &amp;lt;code&amp;gt;golang:1.25-alpine&amp;lt;/code&amp;gt; — ошибка не возникнет&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;wrong version number&amp;lt;/code&amp;gt; в curl через Caddy&lt;br /&gt;
|RU Caddy использует &amp;lt;code&amp;gt;upstream https://&amp;lt;/code&amp;gt; вместо SOCKS5&lt;br /&gt;
|Заменить на &amp;lt;code&amp;gt;upstream socks5://127.0.0.1:10808&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Content-Length: 0&amp;lt;/code&amp;gt; для HTTP GET через Caddy&lt;br /&gt;
|Нормальное поведение forwardproxy для не-CONNECT запросов&lt;br /&gt;
|Не является ошибкой&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;tar: invalid tar magic&amp;lt;/code&amp;gt; на OpenWrt&lt;br /&gt;
|BusyBox tar не поддерживает .xz&lt;br /&gt;
|tar -xf -&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;$&amp;#039;\r&amp;#039;: command not found&amp;lt;/code&amp;gt; в bash-скрипте&lt;br /&gt;
|Windows CRLF окончания строк&lt;br /&gt;
|Выполнить &amp;lt;code&amp;gt;sed -i &amp;#039;s/\r//&amp;#039; /путь/к/скрипту.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Caddy не получает сертификат&lt;br /&gt;
|Порт 80 занят другим сервисом&lt;br /&gt;
|grep :80, освободить порт&lt;br /&gt;
|-&lt;br /&gt;
|naive daemon не подключается к EU&lt;br /&gt;
|Неверные креды или домен в config.json&lt;br /&gt;
|Проверить &amp;lt;code&amp;gt;journalctl -u naive&amp;lt;/code&amp;gt;, перепроверить Caddyfile EU&lt;br /&gt;
|-&lt;br /&gt;
|probe_resistance возвращает ошибку прокси&lt;br /&gt;
|Отсутствует &amp;lt;code&amp;gt;file_server&amp;lt;/code&amp;gt; блок в Caddyfile&lt;br /&gt;
|Добавить &amp;lt;code&amp;gt;file_server { root /var/www/html }&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Владимир</name></author>
	</entry>
</feed>