<?xml version="1.0"?>
<rss version="2.0"><channel><title>RSS-Ya</title><link>https://openode.xyz/rss/1-rss-ya.xml/</link><description>New</description><language>ru</language><item><title>&#x41D;&#x43E;&#x432;&#x44B;&#x439; &#x43F;&#x440;&#x43E;&#x432;&#x430;&#x439;&#x434;&#x435;&#x440; Vpsserver.com - &#x440;&#x435;&#x444;&#x435;&#x440;&#x430;&#x43B;&#x43A;&#x430; &#x43D;&#x430; 100$ &#x437;&#x430; &#x43F;&#x435;&#x440;&#x432;&#x44B;&#x439; (10&#x413;&#x411;/&#x441; &#x438; 5&#x422;&#x411; &#x442;&#x440;&#x430;&#x444;&#x438;&#x43A;&#x430;)</title><link><![CDATA[https://openode.xyz/topic/1548-novyy-provayder-vpsservercom-referalka-na-100-za-pervyy-10gbs-i-5tb-trafika/?do=findComment&comment=9158]]></link><description>&#x41A;&#x430;&#x43A; &#x44D;&#x442;&#x43E; &#x43D;&#x435;&#x442; &#x442;&#x430;&#x43C; &#x43A;&#x430;&#x440;&#x442;? &#x435;&#x441;&#x442;&#x44C;</description><pubDate>Wed, 22 Apr 2026 13:11:33 +0000</pubDate></item><item><title>&#x41D;&#x43E;&#x432;&#x44B;&#x439; &#x43F;&#x440;&#x43E;&#x432;&#x430;&#x439;&#x434;&#x435;&#x440; Vpsserver.com - &#x440;&#x435;&#x444;&#x435;&#x440;&#x430;&#x43B;&#x43A;&#x430; &#x43D;&#x430; 100$ &#x437;&#x430; &#x43F;&#x435;&#x440;&#x432;&#x44B;&#x439; (10&#x413;&#x411;/&#x441; &#x438; 5&#x422;&#x411; &#x442;&#x440;&#x430;&#x444;&#x438;&#x43A;&#x430;)</title><link><![CDATA[https://openode.xyz/topic/1548-novyy-provayder-vpsservercom-referalka-na-100-za-pervyy-10gbs-i-5tb-trafika/?do=findComment&comment=9157]]></link><description>&#x41F;&#x440;&#x438;&#x432;&#x435;&#x442;&#x441;&#x442;&#x432;&#x443;&#x44E;, &#x43A;&#x43E;&#x43B;&#x43B;&#x435;&#x433;&#x438;. &#x41A;&#x430;&#x440;&#x442; &#x442;&#x430;&#x43C; &#x43D;&#x435;&#x442;. &#x423;&#x432;&#x44B;.  &#x410; &#x435;&#x441;&#x43B;&#x438; &#x43A;&#x442;&#x43E; &#x432; &#x442;&#x435;&#x43C;&#x435;, &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43F;&#x43E;&#x434;&#x441;&#x43A;&#x430;&#x436;&#x435;&#x442;&#x435;, &#x441; &#x43A;&#x430;&#x43A;&#x438;&#x43C;&#x438; &#x43A;&#x430;&#x440;&#x442;&#x430;&#x43C;&#x438; &#x437;&#x430; &#x433;&#x443;&#x433;&#x43B; &#x43A;&#x43B;&#x430;&#x443;&#x434; &#x437;&#x430;&#x43F;&#x43B;&#x430;&#x442;&#x438;&#x442;&#x44C; &#x431;&#x44B;. &#x427;&#x438;&#x442;&#x430;&#x43B;, &#x442;&#x430;&#x43C; &#x437;&#x430; &#x43A;&#x430;&#x436;&#x434;&#x439; &#x43F;&#x443;&#x43A; &#x432; &#x431;&#x430;&#x43D;, &#x43D;&#x435; &#x433;&#x43E;&#x432;&#x43E;&#x440;&#x44F; &#x443;&#x436; &#x43F;&#x440;&#x43E; &#x443;&#x442;&#x435;&#x447;&#x43A;&#x443; &#x434;&#x43D;&#x441;.</description><pubDate>Wed, 22 Apr 2026 13:07:04 +0000</pubDate></item><item><title>&#x423;&#x441;&#x43B;&#x443;&#x433;&#x438; &#x43D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x43A;&#x438; Remnawave &#x438; SHM</title><link><![CDATA[https://openode.xyz/topic/1554-uslugi-nastroyki-remnawave-i-shm/?do=findComment&comment=7432]]></link><description>&#x412;&#x441;&#x435;&#x43C; &#x43F;&#x440;&#x438;&#x432;&#x435;&#x442;!
 


	&#x41E;&#x441;&#x43E;&#x431;&#x43E; &#x43D;&#x438;&#x43A;&#x43E;&#x433;&#x434;&#x430; &#x43D;&#x435; &#x43F;&#x443;&#x431;&#x43B;&#x438;&#x43A;&#x43E;&#x432;&#x430;&#x43B;.
 


	&#x41D;&#x43E; &#x435;&#x441;&#x43B;&#x438; &#x431;&#x443;&#x434;&#x435;&#x442; &#x43A;&#x43E;&#x43C;&#x443; &#x430;&#x43A;&#x442;&#x443;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;, &#x433;&#x43E;&#x442;&#x43E;&#x432; &#x437;&#x430; &#x43F;&#x43B;&#x430;&#x442;&#x43D;&#x43E; &#x43F;&#x43E;&#x43C;&#x43E;&#x447;&#x44C;:
 


	1. &#x41C;&#x438;&#x433;&#x440;&#x430;&#x446;&#x438;&#x44F; Marzban &#x43D;&#x430; Remnawave
 


	2. &#x423;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43A;&#x430; &#x438; &#x43D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x43A;&#x430; Remnawave &#x43F;&#x43E;&#x434; &#x43A;&#x43B;&#x44E;&#x447;
 


	3. &#x41D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x43A;&#x430; SHM &#x441;&#x432;&#x44F;&#x437;&#x43A;&#x438; &#x441; Marzban / Remnawave &#x43F;&#x43E;&#x434; &#x43A;&#x43B;&#x44E;&#x447;. &#x421; &#x448;&#x430;&#x431;&#x43B;&#x43E;&#x43D;&#x430;&#x43C;&#x438;.
 


	 
 


	&#x426;&#x435;&#x43D;&#x44B; &#x432; &#x437;&#x430;&#x432;&#x438;&#x441;&#x438;&#x43C;&#x43E;&#x441;&#x442;&#x438; &#x43E;&#x442; &#x437;&#x430;&#x434;&#x430;&#x447;&#x438;, &#x432;&#x441;&#x435; &#x432; &#x41B;&#x421;.</description><pubDate>Thu, 22 May 2025 22:31:55 +0000</pubDate></item><item><title>WARP outbound &#x43F;&#x43E;&#x434;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x438;&#x435; &#x447;&#x435;&#x440;&#x435;&#x437; WireGuard</title><link><![CDATA[https://openode.xyz/topic/1553-warp-outbound-podklyuchenie-cherez-wireguard/?do=findComment&comment=7431]]></link><description>&#x41D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x43A;&#x430; WireGuard &#x447;&#x435;&#x440;&#x435;&#x437; Wgcf &#x431;&#x435;&#x437; warp-cli



	&#x412;&#x441;&#x435;&#x43C; &#x43F;&#x440;&#x438;&#x432;&#x435;&#x442;!
 


	&#x42F; &#x43D;&#x435; &#x43E;&#x447;&#x435;&#x43D;&#x44C; &#x43B;&#x44E;&#x431;&#x43B;&#x44E; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x44C; warp-cli &#x432; socks-&#x440;&#x435;&#x436;&#x438;&#x43C;&#x435;, &#x43F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; &#x441;&#x442;&#x430;&#x440;&#x430;&#x44E;&#x441;&#x44C; &#x432;&#x435;&#x437;&#x434;&#x435; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x43E;&#x434;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x438;&#x435; &#x447;&#x435;&#x440;&#x435;&#x437; WireGuard.
 


	&#x423; &#x44D;&#x442;&#x43E;&#x433;&#x43E; &#x435;&#x441;&#x442;&#x44C; &#x43E;&#x434;&#x438;&#x43D; &#x433;&#x43B;&#x430;&#x432;&#x43D;&#x44B;&#x439; &#x43F;&#x43B;&#x44E;&#x441;: &#x41D;&#x435; &#x43D;&#x443;&#x436;&#x43D;&#x43E; &#x443;&#x441;&#x442;&#x430;&#x43D;&#x430;&#x432;&#x43B;&#x438;&#x432;&#x430;&#x442;&#x44C; warp-cli &#x43D;&#x430; &#x432;&#x441;&#x435; &#x43D;&#x43E;&#x434;&#x44B;.
 


	&#x41D;&#x430;&#x447;&#x43D;&#x451;&#x43C; &#x43D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x43A;&#x443;?
 


	&#x417;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x442;&#x44C; &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x438;&#x437; &#x43B;&#x44E;&#x431;&#x43E;&#x439; &#x43F;&#x430;&#x43F;&#x43A;&#x438; &#x438; &#x43D;&#x430; &#x43B;&#x44E;&#x431;&#x43E;&#x43C; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x435;. &#x41C;&#x44B; &#x431;&#x443;&#x434;&#x435;&#x43C; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x444;&#x430;&#x439;&#x43B; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x438;.
 


	1. &#x421;&#x43A;&#x430;&#x447;&#x438;&#x432;&#x430;&#x435;&#x43C; wgcf



	&#x417;&#x430;&#x445;&#x43E;&#x434;&#x438;&#x43C; &#x432; &#x440;&#x435;&#x43F;&#x43E;&#x437;&#x438;&#x442;&#x43E;&#x440;&#x438;&#x439;: Releases &#xB7; ViRb3/wgcf (github.com)
 


	&#x412;&#x44B;&#x431;&#x438;&#x440;&#x430;&#x435;&#x43C; &#x432;&#x435;&#x440;&#x441;&#x438;&#x44E; &#x43F;&#x43E;&#x434; &#x432;&#x430;&#x448; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;. &#x41D;&#x430;&#x43F;&#x440;&#x438;&#x43C;&#x435;&#x440;, &#x434;&#x43B;&#x44F; amd64:
 

wget https://github.com/ViRb3/wgcf/releases/download/v2.2.26/wgcf_2.2.26_linux_amd64 


	2. &#x41F;&#x435;&#x440;&#x435;&#x43C;&#x435;&#x449;&#x430;&#x435;&#x43C; &#x438; &#x43F;&#x435;&#x440;&#x435;&#x438;&#x43C;&#x435;&#x43D;&#x43E;&#x432;&#x44B;&#x432;&#x430;&#x435;&#x43C; &#x444;&#x430;&#x439;&#x43B;



	&#x41F;&#x435;&#x440;&#x435;&#x43C;&#x435;&#x441;&#x442;&#x438;&#x442;&#x435; &#x435;&#x433;&#x43E; &#x432; &#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x43D;&#x443;&#x44E; &#x434;&#x438;&#x440;&#x435;&#x43A;&#x442;&#x43E;&#x440;&#x438;&#x44E; &#x438; &#x434;&#x430;&#x439;&#x442;&#x435; &#x438;&#x43C;&#x44F; wgcf:
 

mv wgcf_2.2.26_linux_amd64 /usr/bin/wgcf


	3. &#x420;&#x430;&#x437;&#x440;&#x435;&#x448;&#x430;&#x435;&#x43C; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x43D;&#x435;&#x43D;&#x438;&#x435; &#x444;&#x430;&#x439;&#x43B;&#x430;


chmod +x /usr/bin/wgcf


	4. &#x420;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x438;&#x440;&#x443;&#x435;&#x43C;&#x441;&#x44F; &#x438; &#x433;&#x435;&#x43D;&#x435;&#x440;&#x438;&#x440;&#x443;&#x435;&#x43C; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x44E;


wgcf register


	&#x421;&#x43E;&#x437;&#x434;&#x430;&#x43B;&#x441;&#x44F; &#x444;&#x430;&#x439;&#x43B;: wgcf-account.toml
 

wgcf generate


	&#x422;&#x435;&#x43F;&#x435;&#x440;&#x44C; &#x43F;&#x43E;&#x44F;&#x432;&#x438;&#x43B;&#x441;&#x44F; &#x444;&#x430;&#x439;&#x43B;: wgcf-profile.conf
 


	5. &#x421;&#x43C;&#x43E;&#x442;&#x440;&#x438;&#x43C; &#x441;&#x43E;&#x434;&#x435;&#x440;&#x436;&#x438;&#x43C;&#x43E;&#x435; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x430;



	&#x412;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x438;&#x442;&#x435; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x443;:
 

cat wgcf-profile.conf


	&#x41D;&#x430;&#x441; &#x438;&#x43D;&#x442;&#x435;&#x440;&#x435;&#x441;&#x443;&#x44E;&#x442; &#x434;&#x432;&#x435; &#x441;&#x442;&#x440;&#x43E;&#x43A;&#x438;: PrivateKey &#x438; PublicKey. &#x41E;&#x43D;&#x438; &#x43F;&#x43E;&#x43D;&#x430;&#x434;&#x43E;&#x431;&#x44F;&#x442;&#x441;&#x44F; &#x43F;&#x440;&#x438; &#x43D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x43A;&#x435; XRAY.
 


	6. &#x41D;&#x430;&#x441;&#x442;&#x440;&#x430;&#x438;&#x432;&#x430;&#x435;&#x43C; &#x43C;&#x430;&#x440;&#x448;&#x440;&#x443;&#x442;&#x438;&#x437;&#x430;&#x446;&#x438;&#x44E; &#x432; &#x44F;&#x434;&#x440;&#x435; XRAY



	&#x414;&#x43E;&#x431;&#x430;&#x432;&#x44C;&#x442;&#x435; &#x43D;&#x43E;&#x432;&#x44B;&#x439; outbound &#x432; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433; XRAY:
 

{
      "tag": "warp",
      "protocol": "wireguard",
      "settings": {
        "secretKey": "&#x417;&#x41D;&#x410;&#x427;&#x415;&#x41D;&#x418;&#x415; &#x418;&#x417; PRIVATE_KEY &#x424;&#x410;&#x419;&#x41B;&#x410; wgcf-profile.conf",
        "DNS": "1.1.1.1",
        "kernelMode": false,
        "address": [
          "172.16.0.2/32"
        ],
        "peers": [
          {
            "publicKey": "&#x417;&#x41D;&#x410;&#x427;&#x415;&#x41D;&#x418;&#x415; &#x418;&#x417; PUBLIC_KEY &#x424;&#x410;&#x419;&#x41B;&#x410; wgcf-profile.conf",
            "endpoint": "engage.cloudflareclient.com:2408"
          }
        ]
      }
    }


	&#x41F;&#x43E;&#x434;&#x441;&#x442;&#x430;&#x432;&#x44C;&#x442;&#x435; &#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x438;&#x44F; secretKey &#x438; publicKey &#x438;&#x437; &#x444;&#x430;&#x439;&#x43B;&#x430;.
 


	&#x41F;&#x440;&#x438;&#x43C;&#x435;&#x440; &#x433;&#x43E;&#x442;&#x43E;&#x432;&#x43E;&#x433;&#x43E; &#x431;&#x43B;&#x43E;&#x43A;&#x430; outbounds


"outbounds": [
    {
      "tag": "DIRECT",
      "protocol": "freedom",
      "settings": {
        "domainStrategy": "ForceIPv4"
      }
    },
    {
      "tag": "warp",
      "protocol": "wireguard",
      "settings": {
        "DNS": "1.1.1.1",
        "peers": [
          {
            "endpoint": "engage.cloudflareclient.com:2408",
            "publicKey": "bm00000000000000000Vo510h2wPfgyo="
          }
        ],
        "address": [
          "172.16.0.2/32"
        ],
        "secretKey": "MISEK000000000000000000vim6zWY=",
        "kernelMode": false
      }
    },
    {
      "tag": "BLOCK",
      "protocol": "blackhole"
    },
    {
      "tag": "IPv4",
      "protocol": "freedom",
      "settings": {
        "domainStrategy": "ForceIPv4"
      }
    }
  ]


	7. &#x414;&#x43E;&#x431;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x43C; outboundTag &#x432; &#x440;&#x430;&#x437;&#x434;&#x435;&#x43B; routing



	&#x414;&#x43E;&#x431;&#x430;&#x432;&#x44C;&#x442;&#x435; &#x43F;&#x440;&#x430;&#x432;&#x438;&#x43B;&#x43E; &#x43C;&#x430;&#x440;&#x448;&#x440;&#x443;&#x442;&#x438;&#x437;&#x430;&#x446;&#x438;&#x438; &#x434;&#x43B;&#x44F; &#x43D;&#x443;&#x436;&#x43D;&#x44B;&#x445; &#x434;&#x43E;&#x43C;&#x435;&#x43D;&#x43E;&#x432;:
 

{
    "outboundTag": "warp",
    "domain": [
          "geosite:google-gemini",
          "openai.com",
          "ai.com",
          "ipinfo.io",
          "iplocation.net",
          "spotify.com",
          "canva.com"
    ],
    "type": "field"
}



	&#x418;&#x442;&#x43E;&#x433;&#x43E;&#x432;&#x44B;&#x439; &#x432;&#x438;&#x434; &#x44D;&#x442;&#x43E;&#x433;&#x43E; &#x431;&#x43B;&#x43E;&#x43A;&#x430; &#x431;&#x443;&#x434;&#x435;&#x442; &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x440;&#x43D;&#x43E; &#x442;&#x430;&#x43A;&#x438;&#x43C;:
 


	 
 


	FAQ



	
		&#x41A;&#x430;&#x43A; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x438;&#x442;&#x44C; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x443;? &#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; IP &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43F;&#x43E;&#x434;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x438;&#x44F; &#x43A; VPN/Proxy &#x438; &#x43E;&#x442;&#x43A;&#x440;&#x44B;&#x442;&#x438;&#x44F; &#x441;&#x430;&#x439;&#x442;&#x430; https://ipinfo.io  &#x2014; &#x43E;&#x43D; &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x431;&#x44B;&#x442;&#x44C; &#x438;&#x437; &#x434;&#x438;&#x430;&#x43F;&#x430;&#x437;&#x43E;&#x43D;&#x430; Cloudflare.
	
	
		&#x41A;&#x430;&#x43A; &#x43F;&#x435;&#x440;&#x435;&#x441;&#x43E;&#x437;&#x434;&#x430;&#x442;&#x44C; &#x43F;&#x440;&#x43E;&#x444;&#x438;&#x43B;&#x44C;? &#x423;&#x434;&#x430;&#x43B;&#x438;&#x442;&#x435; &#x444;&#x430;&#x439;&#x43B;&#x44B; wgcf-account.toml &#x438; wgcf-profile.conf, &#x437;&#x430;&#x442;&#x435;&#x43C; &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x438;&#x442;&#x435; wgcf register &#x438; wgcf generate.
	



	&#x417;&#x430;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x438;&#x435;



	&#x422;&#x435;&#x43F;&#x435;&#x440;&#x44C; &#x432;&#x44B; &#x437;&#x43D;&#x430;&#x435;&#x442;&#x435;, &#x43A;&#x430;&#x43A; &#x43D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x438;&#x442;&#x44C; WireGuard &#x447;&#x435;&#x440;&#x435;&#x437; Wgcf &#x431;&#x435;&#x437; &#x443;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43A;&#x438; warp-cli. &#x42D;&#x442;&#x43E; &#x433;&#x438;&#x431;&#x43A;&#x438;&#x439; &#x438; &#x43C;&#x430;&#x441;&#x448;&#x442;&#x430;&#x431;&#x438;&#x440;&#x443;&#x435;&#x43C;&#x44B;&#x439; &#x441;&#x43F;&#x43E;&#x441;&#x43E;&#x431;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x439; &#x43B;&#x435;&#x433;&#x43A;&#x43E; &#x432;&#x43D;&#x435;&#x434;&#x440;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x432; &#x43B;&#x44E;&#x431;&#x443;&#x44E; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x443;.
 


	&#x415;&#x441;&#x43B;&#x438; &#x443; &#x432;&#x430;&#x441; &#x435;&#x441;&#x442;&#x44C; &#x432;&#x43E;&#x43F;&#x440;&#x43E;&#x441;&#x44B; &#x438;&#x43B;&#x438; &#x43F;&#x440;&#x435;&#x434;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x44F;, &#x43F;&#x438;&#x448;&#x438;&#x442;&#x435; &#x432; &#x43A;&#x43E;&#x43C;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x440;&#x438;&#x44F;&#x445;!</description><enclosure url="https://openode.xyz/uploads/monthly_2025_05/image.png.93b56aab8af6f30d7b0ba327c3c2e533.png" length="81282" type="image/png"/><pubDate>Wed, 21 May 2025 09:36:09 +0000</pubDate></item><item><title>&#x41D;&#x43E;&#x432;&#x44B;&#x439; &#x43F;&#x440;&#x43E;&#x432;&#x430;&#x439;&#x434;&#x435;&#x440; Vpsserver.com - &#x440;&#x435;&#x444;&#x435;&#x440;&#x430;&#x43B;&#x43A;&#x430; &#x43D;&#x430; 100$ &#x437;&#x430; &#x43F;&#x435;&#x440;&#x432;&#x44B;&#x439; (10&#x413;&#x411;/&#x441; &#x438; 5&#x422;&#x411; &#x442;&#x440;&#x430;&#x444;&#x438;&#x43A;&#x430;)</title><link><![CDATA[https://openode.xyz/topic/1548-novyy-provayder-vpsservercom-referalka-na-100-za-pervyy-10gbs-i-5tb-trafika/?do=findComment&comment=7350]]></link><description><![CDATA[💸 Возвращение халявы: VPSserver раздаёт 100$



	
 


	Ну что, господа. Старый добрый трюк с халявой снова в деле — но теперь от другого имени.
 


	После ребрендинга Kamatera превратилась в VPSserver — и пока РКН об этом ничего не знает, самое время взять свои 100$ на месяц за чисто символическую плату:
 


	👉 https://go.cloudwm.com/visit/?bta=36601&amp;brand=vpsserver



	
		💰 Вносишь 10$ — получаешь 100$ кредита на месяц
	
	
		🌍 Более 20 дата-центров: США, Германия, Нидерланды, Франция, Великобритания, Япония, Сингапур и др.
	
	
		📡 Лояльность к РФ
	
	
		📌 Простая верификация через пополнение счета
	




	🧰 Что внутри?



	
		Типы инстансов: General Purpose, Dedicated, Burstable
	
	
		Полный root-доступ, возможность установки любой ОС
	
	
		Гибкие тарифы: почасовая и помесячная оплата
	
	
		10ГБ/с и 5ТБ трафика
	




	💰 Примеры цен



	
		1 vCPU / 1 GB RAM — от $3.99/мес
	
	
		2 vCPU / 2 GB RAM — от $10/мес
	
	
		4 vCPU / 4 GB RAM — от $35/мес
	
	
		8 vCPU / 8 GB RAM — от $85/мес
	



	📌 Цены варьируются в зависимости от региона — но бонус работает на любой.
 



	🚀 Для чего подойдёт?



	
		VPN и прокси-серверы
	
	
		CI/CD, тестовые стенды, автосборки
	
	
		Микросервисы, личные панели, сайтики и дашборды
	




	🧠 Если кто не в теме — аналогичная акция работала с Kamatera, пока не начались блокировки. Так что ловите момент, пока тихо.
 


	💬 Обсуждаем тут или в Telegram-канале. У кого будут проблемы с активацией — помогу.]]></description><enclosure url="https://openode.xyz/uploads/monthly_2025_05/ChatGPTImage52025.19_40_09.png.7b3a8c37337b16301a6122945c070959.png" length="2534340" type="image/png"/><pubDate>Mon, 05 May 2025 16:48:13 +0000</pubDate></item><item><title>&#x41D;&#x43E;&#x432;&#x44B;&#x439; MOTD-&#x434;&#x44D;&#x448;&#x431;&#x43E;&#x440;&#x434; &#x43E;&#x442; NeoNode</title><link><![CDATA[https://openode.xyz/topic/1529-novyy-motd-deshbord-ot-neonode/?do=findComment&comment=7294]]></link><description><![CDATA[🚀 Новый MOTD-дэшборд от NeoNode



	
 


	Теперь это не просто приветствие при входе, а полноценный системный дашборд — всё самое важное о сервере прямо в терминале.
 


	🔧 Установка



	Обычный режим (для root😞
 

bash &lt;(wget -qO- https://dignezzz.github.io/server/dashboard.sh) --force


	Режим для обычного пользователя (без root) (не рекомендуется):
 

bash &lt;(wget -qO- https://dignezzz.github.io/server/dashboard.sh) --force --not-root


	Настройка отображаемых блоков:
 

motd-config



	🧩 Что умеет дашборд



	
		✅ Аптайм, загрузка CPU, RAM, диск, ядро
	
	
		🌍 IP-адреса: локальный, публичный и IPv6
	
	
		📦 Поддержка Docker — видны остановленные и «упавшие» контейнеры
	
	
		🔐 Проверка безопасности: SSH-порт, root-доступ, вход по паролю
	
	
		🛡️ Статус UFW, Fail2Ban, CrowdSec
	
	
		📡 Сетевой трафик (vnstat)
	
	
		📦 Состояние обновлений APT и автообновлений
	
	
		📣 Проверка актуальности версии дашборда (обновление по ссылке)
	




	🛠 Гибкая настройка



	
		🔧 Каждый блок можно включить или отключить
	
	
		⚙️ Конфиг сохраняется в /etc/motdrc или ~/.motdrc
	
	
		🖥️ Управление через интерактивную утилиту motd-config
	
	
		👤 Поддержка обычных пользователей (работает даже в LXC, Proxmox, WebSSH) (но очень урезанная и должен быть установлен нужный софт)
	



	Пример: хочешь скрыть Docker, автообновления и IP — отключи через motd-config, и они исчезнут из дашборда.
 



	📎 Преимущества



	
		⚡ Работает «из коробки» — без лишних зависимостей
	
	
		🧠 Не требует crontab или внешних API
	
	
		🧩 Отображает только нужную тебе информацию
	
	
		🎯 Статусы с эмодзи (✅ ⚠️ ❌) — читается моментально
	
	
		📟 Поддержка монохромных терминалов — не сломается в Proxmox или LXC
	




	📣 Обновление от 24.04.2025:



	
		🔄 Удалены tput-цвета — теперь нет багов в «серых» терминалах
	
	
		⚠️ Подсвечены критичные риски: root-доступ, UFW, fail2ban
	
	
		📋 Выводит ядро и SSH-настройки
	
	
		🆕 Автообновление версии через GitHub Pages
	



	❓ Есть предложения, баги или хочешь добавить свой блок — читай в Telegram канале или комментируй в теме!]]></description><enclosure url="https://openode.xyz/uploads/monthly_2025_04/image.png.5a34c36d0635dff3e90a07977766fc99.png" length="59022" type="image/png"/><pubDate>Thu, 24 Apr 2025 21:06:16 +0000</pubDate></item><item><title>&#x420;&#x435;&#x437;&#x435;&#x440;&#x432;&#x43D;&#x43E;&#x435; &#x43A;&#x43E;&#x43F;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x435; &#x440;&#x43E;&#x443;&#x442;&#x435;&#x440;&#x430; Keenetik</title><link><![CDATA[https://openode.xyz/topic/1526-rezervnoe-kopirovanie-routera-keenetik/?do=findComment&comment=7281]]></link><description><![CDATA[Резервное копирование Keenetic + Entware
 


	Если на роутер установлена дополнительная система Entware, можно использовать скрипт, создающий резервную копию настроек роутера, прошивки и Entware с настройками. После выполнения — приходит Telegram-уведомление.
 


	Скрипт создан на основе обсуждения на форуме Keenetic Community: форум.
 


	📦 Скрипт
 

#!/opt/bin/bash

set -x

export PATH=/opt/bin:/opt/sbin:/bin:/usr/bin:/usr/sbin:/sbin

# =========== НАСТРОЙКИ ============
CONFIG_FILE="/opt/etc/backup_config.env"

if [[ ! -f $CONFIG_FILE ]]; then
    echo "❌ Конфигурационный файл $CONFIG_FILE отсутствует!"
    exit 1
fi

# Импорт конфигурации
source "$CONFIG_FILE"

DATE=$(date +%Y-%m-%d_%H-%M-%S)
ARCHIVE_NAME="keenetic_backup_${DATE}.tar.gz"
ARCHIVE_PATH="${LOCAL_TMP_DIR}/${ARCHIVE_NAME}"

# Логирование в syslog
log() {
    logger "[BACKUP]: $1"
    echo "$(date +%Y-%m-%d_%H:%M:%S) $1" | tee -a "$LOG_FILE"
}

# Отправка Telegram уведомлений
send_telegram() {
    MESSAGE=$(echo -e "$1" | sed 's/$/%0A/g')
    curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_TOKEN/sendMessage" \
        -d chat_id="$TELEGRAM_CHAT_ID" \
        -d message_thread_id="$TELEGRAM_THREAD_ID" \
        -d parse_mode="Markdown" \
        -d text="$MESSAGE"
}

# Очистка локальной директории
cleanup_local() {
    log "🧹 Очистка локальной директории $LOCAL_BACKUP_DIR..."
    rm -rf "$LOCAL_BACKUP_DIR"/* || log "⚠️ Не удалось очистить $LOCAL_BACKUP_DIR."
    log "🧹 Очистка локальной директории $LOCAL_TMP_DIR..."
    rm -rf "$LOCAL_TMP_DIR"/* || log "⚠️ Не удалось очистить $LOCAL_TMP_DIR."
}

# Бэкап Entware
backup_entware() {
    log "📦 Создание бэкапа Entware..."
    tar cvzf ${LOCAL_BACKUP_DIR}/entware_backup_${DATE}.tar.gz -C /opt . &gt; /dev/null
}

# Бэкап прошивки
backup_firmware() {
    log "🔧 Создание бэкапа прошивки..."
    REL=$(ndmc -c 'show version' | grep 'release:' | awk '{print $2}')
    ndmc -c "copy flash:/firmware ${FW_BACKUP_DIR}/firmware-${REL}_${DATE}.bin"
    log "✅ Создан бэкап прошивки: ${FW_BACKUP_DIR}/firmware-${REL}_${DATE}.bin"
}

# Бэкап конфига
backup_config() {
    log "🛠️ Создание бэкапа конфигурации..."
    ndmc -c "show running-config" &gt; ${LOCAL_BACKUP_DIR}/config_${DATE}.cfg
    log "✅ Создан бэкап конфигурации: ${LOCAL_BACKUP_DIR}/config_${DATE}.cfg"
}

# Архивация бэкапов
create_archive() {
    log "📦 Создание архива $ARCHIVE_NAME..."
    tar cvzf ${ARCHIVE_PATH} -C ${LOCAL_BACKUP_DIR} . &gt; /dev/null || return 1
    log "✅ Архив создан: $ARCHIVE_PATH"
}

# Копирование на Nextcloud
upload_to_nextcloud() {
    log "☁️ Копирование $ARCHIVE_PATH на Nextcloud..."
    curl -T ${ARCHIVE_PATH} -u ${NEXTCLOUD_USER}:${NEXTCLOUD_PASS} {$BACKUP_DIR_URL}/${ARCHIVE_NAME}
	log "✅ Архив отправлен на Nextloud: $BACKUP_DIR_URL/${ARCHIVE_NAME}"
}

# Ротация бэкапов
rotate_backups() {
    log "📁 Получаем список бэкапов в Nextcloud..."

    # Получаем список бэкапов
    file_list=$(curl -s -u "$NEXTCLOUD_USER:$NEXTCLOUD_PASS" -X PROPFIND "$BACKUP_DIR_URL" -H "Depth: 1" \
        | grep -oE "/remote.php/dav/files/[^&lt;]*keenetic_backup_[^&lt;]*\.tar\.gz")

    if [ -z "$file_list" ]; then
        log "ℹ️ Нет доступных бэкапов для ротации."
        return 0
    fi

    echo "$file_list" | sort &gt; /tmp/backups_sorted.txt
    total=$(wc -l &lt; /tmp/backups_sorted.txt)
	
	# Удалим на один больше так как делаем новый бекап
    target_keep=$((KEEP_LAST - 1))
	
    if [ "$total" -le "$target_keep"]; then
        log "👍 Пока удалять нечего — всего $total бэкапов."
        return 0
    fi

    delete_count=$((total - target_keep))
    log "🗑️ Удаляем $delete_count старых бэкапов..."

    head -n "$delete_count" /tmp/backups_sorted.txt | while read -r path; do
        filename=$(basename "$path")
        full_url="${BACKUP_DIR_URL}/${filename}"
        echo "➡️ Удаление: $full_url"
        curl -s -u ${NEXTCLOUD_USER}:${NEXTCLOUD_PASS} -X DELETE ${full_url}
    done

    log "✅ Ротация завершена."
}

# =========== ОСНОВНОЙ СКРИПТ ============
main() {
    log "=== 🚀 Начало резервного копирования ==="
    cleanup_local
    mkdir -p "$LOCAL_BACKUP_DIR"
	mkdir -p "$LOCAL_TMP_DIR"

    # Выполнение шагов
    backup_entware
    backup_firmware
    backup_config
	
	# Упаковка в единый архив
    create_archive
	
    # Ротация
    rotate_backups

    # Копирование на хранилища
    upload_to_nextcloud

    # Отправка отчета
    send_report

    log "🧹 Очистка локальной директории $LOCAL_TMP_DIR..."
    rm -rf "$LOCAL_TMP_DIR"/* || log "⚠️ Не удалось очистить $LOCAL_TMP_DIR."
	
	send_telegram "✅ Создана [резервная копия]($BACKUP_DIR_URL/$ARCHIVE_NAME) настроек роутера."
	
    log "=== ✅ Завершено ==="
}

main


	🔧 Установка скрипта
 

# Путь к скрипту
/opt/usr/bin/backup

# Путь к конфигурации
/opt/etc/backup_config.env

# Сделать скрипт исполняемым
chmod +x /opt/usr/bin/backup

# Добавить в cron (ежедневно в 11:00)
0 11 * * * /opt/bin/bash /opt/usr/bin/backup


	⚙️ Настройка backup_config.env
 

KEEP_LAST=3
LOCAL_BACKUP_DIR="/tmp/mnt/Router/backups"
FW_BACKUP_DIR="Router:/backups"
LOCAL_TMP_DIR="/tmp/mnt/Router/tmp"
LOG_FILE="/tmp/mnt/Router/backup.log"

NEXTCLOUD_USER="user"
NEXTCLOUD_PASS="password"
BACKUP_DIR_URL="https://cloud.domain.ru/remote.php/dav/files/user/folder"

TELEGRAM_TOKEN="token"
TELEGRAM_CHAT_ID="CHAT_ID"
# TELEGRAM_THREAD_ID="THREAD_ID" — удалить строку из скрипта, если не используете


	🧰 Что делает скрипт?
 


	
		Чистит временные директории
	
	
		Создаёт бэкап Entware (/opt)
	
	
		Создаёт бэкап прошивки
	
	
		Сохраняет текущую конфигурацию роутера
	
	
		Архивирует всё в keenetic_backup_*.tar.gz
	
	
		Отправляет архив на Nextcloud через WebDAV
	
	
		Удаляет старые резервные копии, оставляя только последние KEEP_LAST
	
	
		Отправляет Telegram-уведомление
	



	💡 Альтернатива: rclone (не рекомендуется)
 


	Можно заменить curl на rclone для загрузки архива на облачные хранилища, например Google Drive. Однако, это сильно нагружает роутер.
 

# Копирование на Google Drive
upload_to_google_drive() {
    log "☁️ Копирование $ARCHIVE_PATH на Google Drive..."
    attempt_command "rclone copy $ARCHIVE_PATH $GDRIVE_REMOTE" "Копирование на Google Drive"
}

# Ротация бэкапов
rotate_backups() {
    log "♻️ Ротация бэкапов старше $RETENTION_DAYS дней..."
    rclone delete --min-age "${RETENTION_DAYS}d" "$GDRIVE_REMOTE" &amp;&amp; log "✅ Ротация на GDrive завершена."
    rclone delete --min-age "${RETENTION_DAYS}d" "$MEGA_REMOTE" &amp;&amp; log "✅ Ротация на Mega завершена."
}


	🔁 Восстановление
 


	Архив содержит три файла:
 


	
		config_* — конфигурация роутера
	
	
		firmware-* — прошивка роутера
	
	
		entware_backup_*.tar.gz — образ Entware со всеми настройками
	



	Для восстановления Entware — заменить стандартный архив установкой содержимого в install.
 


	✅ Готово! Скрипт работает стабильно и регулярно делает резервные копии всех важных компонентов Keenetic + Entware.
 


	 
 


	 
 


	Если будут изменения, искать в оригинальной репе: 
	https://deniom.ru/zametki/rezervnoe-kopirovanie-routera-keenetik/]]></description><pubDate>Wed, 23 Apr 2025 06:45:19 +0000</pubDate></item><item><title>&#x427;&#x430;&#x441;&#x442;&#x44C; 4 - &#x414;&#x43E;&#x431;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x43C; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x43A;&#x443; &#x43A;&#x43B;&#x438;&#x435;&#x43D;&#x442;&#x43E;&#x432; Clash &#x438; SingBox &#x438; Xray JSON</title><link><![CDATA[https://openode.xyz/topic/1508-chast-4-dobavlyaem-podderzhku-klientov-clash-i-singbox-i-xray-json/?do=findComment&comment=7200]]></link><description><![CDATA[Уже как 2 недели, на компьютере Windows и Macbook на Intel я перелез с использования Hiddify, на использование Clash Meta Rev.
 


	На страницах подписки они также присутствуют.
 


	Но чтобы интеграция с ними была максимально полезной, необходимо использовать соответствующие шаблоны, чтобы все правила на устройства передавались корректно и правильно.
 


	В RemnaWave для этого существует отдельный пункт меню:
 


	
 


	А на Marzban приходилось все корректировать в файлах...
 


	 
 


	Не буду вдаваться в детали и подробности по содержимому, там все очевидно.
 


	Поделюсь тем что пользуюсь сам.
 


	Нас будут интересовать всего 3 шаблона для подписки.
 


	
		Xray JSON (для xray клиентов)
	
	
		Mihomo (для ClashMeta клиентов)
	
	
		Singbox - собственно для него именно
	



	SingBox и Mihomo шаблоны подогнал товарищ Legiz.
 


	Мой Xray Json:
 

{
  "dns": {
    "hosts": {
      "one.one.one.one": [
        "1.1.1.1",
        "1.0.0.1"
      ]
    },
    "servers": [
      "https://one.one.one.one/dns-query"
    ]
  },
  "log": {
    "error": "",
    "access": "",
    "loglevel": "warning"
  },
  "routing": {
    "rules": [
      {
        "type": "field",
        "domain": [
          "geosite:google",
          "geosite:youtube"
        ],
        "outboundTag": "proxy"
      },
      {
        "type": "field",
        "domain": [
          "geosite:private",
          "geosite:category-gov-ru",
          "geosite:category-ru",
          "geosite:mailru",
          "geosite:yandex",
          "geosite:apple",
          "geosite:vk",
          "geosite:whatsapp",
          "geosite:telegram",
          "regexp:^([\\w\\-\\.]+\\.)ru$",
          "regexp:^([\\w\\-\\.]+\\.)xn--p1ai$",
          "regexp:^([\\w\\-\\.]+\\.)xn--p1acf$",
          "regexp:^([\\w\\-\\.]+\\.)xn--80asehdb$",
          "regexp:^([\\w\\-\\.]+\\.)xn--c1avg$",
          "regexp:^([\\w\\-\\.]+\\.)xn--80aswg$",
          "regexp:^([\\w\\-\\.]+\\.)xn--80adxhks$",
          "regexp:^([\\w\\-\\.]+\\.)moscow$",
          "regexp:^([\\w\\-\\.]+\\.)xn--d1acj3b$"
        ],
        "outboundTag": "direct"
      },
      {
        "type": "field",
        "protocol": [
          "bittorrent"
        ],
        "outboundTag": "direct"
      }
    ],
    "domainStrategy": "IPIfNonMatch"
  },
  "inbounds": [
    {
      "tag": "socks",
      "port": 10808,
      "listen": "0.0.0.0",
      "protocol": "socks",
      "settings": {
        "udp": true,
        "auth": "noauth",
        "allowTransparent": false
      },
      "sniffing": {
        "enabled": true,
        "routeOnly": false,
        "destOverride": [
          "http",
          "tls"
        ]
      }
    },
    {
      "tag": "http",
      "port": 10809,
      "listen": "0.0.0.0",
      "protocol": "http",
      "settings": {
        "udp": true,
        "auth": "noauth",
        "allowTransparent": false
      },
      "sniffing": {
        "enabled": true,
        "routeOnly": false,
        "destOverride": [
          "http",
          "tls"
        ]
      }
    }
  ],
  "outbounds": [
    {
      "tag": "direct",
      "protocol": "freedom",
      "settings": {
        "domainStrategy": "UseIPv4"
      }
    },
    {
      "tag": "block",
      "protocol": "blackhole"
    }
  ]
}


	Mihomo:
 

mixed-port: 7890
allow-lan: true
tcp-concurrent: true
enable-process: true
find-process-mode: strict
mode: rule
log-level: info
ipv6: false
keep-alive-interval: 30
unified-delay: false
profile:
  store-selected: true
  store-fake-ip: true
sniffer:
  enable: true
  force-dns-mapping: true
  parse-pure-ip: true
  sniff:
    HTTP:
      ports:
        - 80
        - 8080-8880
      override-destination: true
    TLS:
      ports:
        - 443
        - 8443
tun:
  enable: true
  stack: mixed
  auto-route: true
  auto-detect-interface: true
  dns-hijack:
    - any:53
  strict-route: true
  mtu: 1500
dns:
  enable: true
  prefer-h3: true
  use-hosts: true
  use-system-hosts: true
  listen: 127.0.0.1:6868
  ipv6: false
  enhanced-mode: redir-host
  default-nameserver:
    - tls://1.1.1.1
    - tls://1.0.0.1
  proxy-server-nameserver:
    - tls://1.1.1.1
    - tls://1.0.0.1
  direct-nameserver:
    - tls://77.88.8.8
  nameserver:
    - https://cloudflare-dns.com/dns-query#PROXY

proxies: # LEAVE THIS LINE!

proxy-groups:
  - name: PROXY
    type: select
    proxies:
      - ⚡️ Fastest
      - 📶 First Available
      # LEAVE THIS LINE!
  - name: ⚡️ Fastest
    type: url-test
    tolerance: 150
    url: https://www.gstatic.com/generate_204
    interval: 300
    proxies:
      # LEAVE THIS LINE!
  - name: 📶 First Available
    type: fallback
    url: https://www.gstatic.com/generate_204
    interval: 300
    proxies:
      # LEAVE THIS LINE!

rule-providers:
  xai:
    type: http
    behavior: domain
    format: yaml
    url: https://github.com/MetaCubeX/meta-rules-dat/raw/meta/geo/geosite/xai.yaml
    path: ./rule-sets/xai.yaml
    interval: 86400
  refilter_domains:
    type: http
    behavior: domain
    format: mrs
    url: https://github.com/legiz-ru/mihomo-rule-sets/raw/main/re-filter/domain-rule.mrs
    path: ./re-filter/domain-rule.mrs
    interval: 86400
  refilter_ipsum:
    type: http
    behavior: ipcidr
    format: mrs
    url: https://github.com/legiz-ru/mihomo-rule-sets/raw/main/re-filter/ip-rule.mrs
    path: ./re-filter/ip-rule.mrs
    interval: 86400
  oisd_big:
    type: http
    behavior: domain
    format: mrs
    url: https://github.com/legiz-ru/mihomo-rule-sets/raw/main/oisd/big.mrs
    path: ./oisd/big.mrs
  torrent-trackers:
    type: http
    behavior: domain
    format: mrs
    url: https://github.com/legiz-ru/mihomo-rule-sets/raw/main/other/torrent-trackers.mrs
    path: ./rule-sets/torrent-trackers.mrs
    interval: 86400
  torrent-clients:
    type: http
    behavior: classical
    format: yaml
    url: https://github.com/legiz-ru/mihomo-rule-sets/raw/main/other/torrent-clients.yaml
    path: ./rule-sets/torrent-clients.yaml
    interval: 86400
  ru-bundle:
    type: http
    behavior: domain
    format: mrs
    url: https://github.com/legiz-ru/mihomo-rule-sets/raw/main/ru-bundle/rule.mrs
    path: ./ru-bundle/rule.mrs
    interval: 86400
rules:
  - RULE-SET,oisd_big,REJECT
  - RULE-SET,xai,PROXY
  - RULE-SET,torrent-clients,DIRECT
  - RULE-SET,torrent-trackers,DIRECT
  - PROCESS-NAME,Discord.exe,PROXY
  - PROCESS-NAME,org.cromite.cromite,PROXY
  - RULE-SET,refilter_domains,PROXY
  - RULE-SET,refilter_ipsum,PROXY
  - MATCH,DIRECT



	 
 


	SingBox:
 

{
  "dns": {
    "final": "dns-local",
    "rules": [
      {
        "server": "dns-local",
        "rule_set": [
          "geosite-whatsapp",
          "geosite-telegram",
          "geoip-telegram"
        ]
      },
      {
        "server": "dns-remote",
        "rule_set": [
          "ru-bundle",
          "refilter-domains",
          "refilter-ipsum"
        ]
      }
    ],
    "servers": [
      {
        "tag": "dns-remote",
        "detour": "default",
        "address": "tls://1.1.1.1",
        "address_strategy": "ipv4_only"
      },
      {
        "tag": "dns-local",
        "address": "local"
      }
    ]
  },
  "log": {
    "level": "fatal",
    "timestamp": true
  },
  "route": {
    "rules": [
      {
        "action": "sniff"
      },
      {
        "action": "hijack-dns",
        "protocol": "dns"
      },
      {
        "outbound": "direct",
        "rule_set": [
          "geosite-whatsapp",
          "geosite-telegram",
          "geoip-telegram"
        ]
      },
      {
        "outbound": "default",
        "rule_set": [
          "ru-bundle",
          "refilter-domains",
          "refilter-ipsum"
        ]
      }
    ],
    "rule_set": [
      {
        "tag": "geosite-whatsapp",
        "url": "https://github.com/MetaCubeX/meta-rules-dat/raw/sing/geo/geosite/whatsapp.srs",
        "type": "remote",
        "format": "binary"
      },
      {
        "tag": "geosite-telegram",
        "url": "https://github.com/MetaCubeX/meta-rules-dat/raw/sing/geo/geosite/telegram.srs",
        "type": "remote",
        "format": "binary"
      },
      {
        "tag": "geoip-telegram",
        "url": "https://github.com/MetaCubeX/meta-rules-dat/raw/sing/geo/geoip/telegram.srs",
        "type": "remote",
        "format": "binary"
      },
      {
        "tag": "ru-bundle",
        "url": "https://github.com/legiz-ru/sb-rule-sets/raw/main/ru-bundle.srs",
        "type": "remote",
        "format": "binary"
      },
      {
        "tag": "refilter-domains",
        "url": "https://github.com/1andrevich/Re-filter-lists/releases/latest/download/ruleset-domain-refilter_domains.srs",
        "type": "remote",
        "format": "binary"
      },
      {
        "tag": "refilter-ipsum",
        "url": "https://github.com/1andrevich/Re-filter-lists/releases/latest/download/ruleset-ip-refilter_ipsum.srs",
        "type": "remote",
        "format": "binary"
      }
    ],
    "override_android_vpn": true,
    "auto_detect_interface": true
  },
  "inbounds": [
    {
      "tag": "tun-in",
      "type": "tun",
      "sniff": true,
      "stack": "system",
      "address": "172.19.0.1/28",
      "auto_route": true,
      "strict_route": true,
      "interface_name": "freedom",
      "sniff_override_destination": true
    }
  ],
  "outbounds": [
    {
      "tag": "direct",
      "type": "direct"
    },
    {
      "tag": "default",
      "type": "selector",
      "outbounds": [
        "&lt;all-proxy-tags&gt;"
      ]
    }
  ],
  "experimental": {
    "cache_file": {
      "enabled": true
    }
  }
}


	 
 


	SingBox это старше чем 1.11+ версия
 


	SingBox Legacy - это версия 1.10 - под него шаблонов у меня нет. Не вижу смысла использовать старые клиенты.
 


	 
 


	Все шаблоны проверены, и работаю отлично.
 


	У меня по крайней мере.]]></description><enclosure url="https://openode.xyz/uploads/monthly_2025_04/image.png.58446afb0abdf8186f1e6ad653c2bc2c.png" length="14698" type="image/png"/><pubDate>Thu, 10 Apr 2025 16:50:20 +0000</pubDate></item><item><title>&#x427;&#x430;&#x441;&#x442;&#x44C; 3 - &#x41F;&#x43E;&#x434;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x435;&#x43C; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440; &#x432; &#x420;&#x424; &#x434;&#x43B;&#x44F; YouTube &#x447;&#x435;&#x440;&#x435;&#x437; &#x41D;&#x43E;&#x434;&#x443; (&#x431;&#x435;&#x437; 3x-ui!!!!)</title><link><![CDATA[https://openode.xyz/topic/1507-chast-3-podklyuchaem-server-v-rf-dlya-youtube-cherez-nodu-bez-3x-ui/?do=findComment&comment=7199]]></link><description>&#x412;&#x441;&#x435;&#x43C; &#x43F;&#x440;&#x438;&#x432;&#x435;&#x442;!
 


	&#x41A;&#x43E;&#x433;&#x434;&#x430; &#x431;&#x44B;&#x43B; Marzban, &#x44F; &#x440;&#x430;&#x441;&#x441;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x43B; &#x43A;&#x430;&#x43A; &#x43E;&#x442;&#x43F;&#x440;&#x430;&#x432;&#x438;&#x442;&#x44C; YouTube &#x442;&#x440;&#x430;&#x444;&#x438;&#x43A; &#x447;&#x435;&#x440;&#x435;&#x437; &#x420;&#x424; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;, &#x43D;&#x43E; &#x441; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x435;&#x43C; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; &#x43F;&#x430;&#x43D;&#x435;&#x43B;&#x438; 3x-ui.
 


	&#x412;&#x43E;&#x442; &#x44D;&#x442;&#x430; &#x442;&#x435;&#x43C;&#x430;: https://openode.xyz/topic/1213-otpravlyaem-youtube-cherez-rossiyskiy-server-s-pomoschyu-3x-ui/
 


	&#x421;&#x435;&#x439;&#x447;&#x430;&#x441; &#x43C;&#x44B; &#x441;&#x434;&#x435;&#x43B;&#x430;&#x435;&#x43C; &#x43D;&#x435;&#x43C;&#x43D;&#x43E;&#x433;&#x43E; &#x43F;&#x43E; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x43C;&#x443;, &#x438; &#x443;&#x434;&#x43E;&#x431;&#x43D;&#x435;&#x435;, &#x43A;&#x430;&#x43A; &#x43C;&#x43D;&#x435; &#x43A;&#x430;&#x436;&#x435;&#x442;&#x441;&#x44F;.
 


	 
 


	1. &#x412;&#x44B;&#x431;&#x43E;&#x440; &#x420;&#x424; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x430;.
 


	&#x422;&#x435;&#x43C;&#x430; &#x434;&#x43E;&#x441;&#x442;&#x430;&#x442;&#x43E;&#x447;&#x43D;&#x43E; &#x441;&#x43F;&#x43E;&#x440;&#x43D;&#x430;&#x44F;, &#x438; &#x432; &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x438; &#x43D;&#x430;&#x439;&#x442;&#x438; &#x434;&#x43E;&#x441;&#x442;&#x43E;&#x439;&#x43D;&#x44B;&#x439; &#x420;&#x424; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440; &#x434;&#x43E;&#x441;&#x442;&#x430;&#x442;&#x43E;&#x447;&#x43D;&#x43E; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x43D;&#x43E;.
 


	&#x412;&#x43E;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x44B;&#x435; &#x432;&#x430;&#x440;&#x438;&#x430;&#x43D;&#x442;&#x44B;: 
 


	cloud.vk.com (&#x43E;&#x442; 1000 &#x440;&#x443;&#x431;&#x43B;&#x435;&#x439;)
 


	cloud.ru (&#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x437;&#x430;&#x439;&#x442;&#x438; &#x43D;&#x430; Free Tier, &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x44C; 4000 &#x431;&#x43E;&#x43D;&#x443;&#x441;&#x43D;&#x44B;&#x445; &#x440;&#x443;&#x431;&#x43B;&#x435;&#x439; &#x43D;&#x430; 2 &#x43C;&#x435;&#x441;&#x44F;&#x446;&#x430;, &#x430; &#x43F;&#x43E;&#x442;&#x43E;&#x43C; &#x43F;&#x440;&#x43E;&#x434;&#x43E;&#x43B;&#x436;&#x438;&#x442;&#x44C; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x44C;&#x441;&#x44F; &#x431;&#x435;&#x441;&#x43F;&#x43B;&#x430;&#x442;&#x43D;&#x44B;&#x43C; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x43E;&#x43C; &#x43E;&#x43F;&#x43B;&#x430;&#x447;&#x438;&#x432;&#x430;&#x44F; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; ipv4 &#x437;&#x430; 170&#x440; &#x432; &#x43C;&#x435;&#x441;&#x44F;&#x446;)
 


	selectel.ru - &#x41E;&#x442; 900 &#x440;&#x443;&#x431;&#x43B;&#x435;&#x439;, &#x43D;&#x43E; &#x442;&#x430;&#x43C; &#x435;&#x441;&#x442;&#x44C; &#x43B;&#x438;&#x43C;&#x438;&#x442; &#x442;&#x440;&#x430;&#x444;&#x438;&#x43A;&#x430; - 3&#x442;&#x431; &#x432; &#x43C;&#x435;&#x441;&#x44F;&#x446; &#x41D;&#x410; &#x410;&#x41A;&#x41A;&#x410;&#x423;&#x41D;&#x422;.
 


	 
 


	&#x41F;&#x440;&#x435;&#x434;&#x43B;&#x430;&#x433;&#x430;&#x44E; &#x43E;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x44C;&#x441;&#x44F; &#x43D;&#x430; cloud.ru.
 


	2. &#x41D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x43A;&#x430; &#x424;&#x430;&#x435;&#x440;&#x432;&#x43E;&#x43B;&#x430; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x430; &#x43D;&#x430; Cloud.ru
 


	&#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x43E;&#x444;&#x43E;&#x440;&#x43C;&#x43B;&#x435;&#x43D;&#x438;&#x44F; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x430; &#x443; &#x432;&#x430;&#x441; &#x431;&#x443;&#x434;&#x435;&#x442; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x435;&#x43D; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; 22 &#x43F;&#x43E;&#x440;&#x442;.
 


	&#x424;&#x430;&#x435;&#x440;&#x432;&#x43E;&#x43B; &#x43D;&#x430; &#x43A;&#x43B;&#x430;&#x443;&#x434;.&#x440;&#x443; &#x434;&#x43E;&#x441;&#x442;&#x430;&#x442;&#x43E;&#x447;&#x43D;&#x43E; &#x441;&#x43B;&#x43E;&#x436;&#x43D;&#x44B;&#x439;, &#x43F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; &#x431;&#x435;&#x433;&#x43B;&#x43E; &#x43F;&#x43E;&#x43A;&#x430;&#x436;&#x443; &#x43A;&#x430;&#x43A; &#x440;&#x430;&#x437;&#x440;&#x435;&#x448;&#x438;&#x442;&#x44C; &#x432;&#x441;&#x451;.
 


	&#x410; &#x440;&#x443;&#x43B;&#x438;&#x442;&#x44C; &#x43F;&#x43E;&#x442;&#x43E;&#x43C; &#x43C;&#x43E;&#x436;&#x435;&#x442;&#x435; &#x441;&#x430;&#x43C;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x447;&#x435;&#x440;&#x435;&#x437; UFW, &#x43D;&#x430;&#x43F;&#x440;&#x438;&#x43C;&#x435;&#x440;.
 


	2.1. &#x41D;&#x430; &#x433;&#x43B;&#x430;&#x432;&#x43D;&#x43E;&#x439; &#x441;&#x442;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x435; &#x43D;&#x430;&#x445;&#x43E;&#x434;&#x438;&#x43C; &#x413;&#x440;&#x443;&#x43F;&#x43F;&#x44B; &#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x43E;&#x441;&#x442;&#x438;
 


	
 


	2.2. &#x412;&#x44B;&#x431;&#x438;&#x440;&#x430;&#x435;&#x43C; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x43D;&#x438;&#x435; &#x43D;&#x43E;&#x432;&#x43E;&#x439; (&#x437;&#x435;&#x43B;&#x435;&#x43D;&#x430;&#x44F; &#x43A;&#x43D;&#x43E;&#x43F;&#x43A;&#x430; &#x441;&#x43F;&#x440;&#x430;&#x432;&#x430;)
 


	
 


	2.3. &#x417;&#x430;&#x43F;&#x43E;&#x43B;&#x43D;&#x44F;&#x435;&#x43C; &#x43D;&#x430; &#x441;&#x43A;&#x440;&#x438;&#x43D;&#x448;&#x43E;&#x442;&#x430;&#x445; &#x43D;&#x438;&#x436;&#x435;
 


	&#x41F;&#x440;&#x430;&#x432;&#x438;&#x43B;&#x43E; &#x432;&#x445;&#x43E;&#x434;&#x44F;&#x449;&#x435;&#x433;&#x43E;  &#x442;&#x440;&#x430;&#x444;&#x438;&#x43A;&#x430;:
 


	
 


	&#x41F;&#x440;&#x430;&#x432;&#x438;&#x43B;&#x43E; &#x438;&#x441;&#x445;&#x43E;&#x434;&#x44F;&#x449;&#x435;&#x433;&#x43E; &#x442;&#x440;&#x430;&#x444;&#x438;&#x43A;&#x430;:
 


	&#x420;&#x430;&#x437;&#x431;&#x438;&#x432;&#x430;&#x435;&#x43C; &#x43D;&#x430; TCP &#x438; UDP
 


	
 


	&#x412; &#x438;&#x442;&#x43E;&#x433;&#x435; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x43B;&#x43E;&#x441;&#x44C; &#x447;&#x442;&#x43E;&#x431;&#x44B; &#x442;&#x430;&#x43A;:
 


	
 


	&#x418; &#x436;&#x43C;&#x435;&#x43C; - &#x421;&#x43E;&#x437;&#x434;&#x430;&#x442;&#x44C;.
 


	 
 


	2.3. &#x422;&#x435;&#x43F;&#x435;&#x440;&#x44C; &#x438;&#x434;&#x435;&#x43C; &#x432; &#x43D;&#x430;&#x448;&#x443; &#x412;&#x438;&#x440;&#x442;&#x443;&#x430;&#x43B;&#x44C;&#x43D;&#x443;&#x44E; &#x43C;&#x430;&#x448;&#x438;&#x43D;&#x443;.
 


	&#x417;&#x430;&#x445;&#x43E;&#x434;&#x438;&#x43C; &#x432;  "&#x421;&#x435;&#x442;&#x435;&#x432;&#x44B;&#x435; &#x43F;&#x430;&#x440;&#x430;&#x43C;&#x435;&#x442;&#x440;&#x44B;"
 


	&#x416;&#x43C;&#x435;&#x43C; &#x418;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x442;&#x44C; &#x433;&#x440;&#x443;&#x43F;&#x43F;&#x44B; &#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x43E;&#x441;&#x442;&#x438;
 


	
 


	&#x418; &#x43E;&#x441;&#x442;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x43C; &#x422;&#x41E;&#x41B;&#x42C;&#x41A;&#x41E; &#x442;&#x443; &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x443;&#x44E; &#x43C;&#x44B; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x43B;&#x438; &#x440;&#x430;&#x43D;&#x435;&#x435;
 


	
 


	&#x413;&#x430;&#x43B;&#x43E;&#x447;&#x43A;&#x443; &#x441; SSH-access_ru &#x443;&#x431;&#x438;&#x440;&#x430;&#x435;&#x43C;!!!
 


	&#x413;&#x43E;&#x442;&#x43E;&#x432;&#x43E;!
 


	3. &#x421;&#x43E;&#x437;&#x434;&#x430;&#x435;&#x43C; &#x43D;&#x43E;&#x434;&#x443; &#x434;&#x43B;&#x44F; Remnawave.
 


	&#x427;&#x438;&#x442;&#x430;&#x435;&#x43C; &#x432;&#x43D;&#x438;&#x43C;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43F;&#x443;&#x43D;&#x43A;&#x442; 8 &#x438;&#x437; &#x43F;&#x440;&#x43E;&#x448;&#x43B;&#x43E;&#x433;&#x43E; &#x43F;&#x43E;&#x441;&#x442;&#x430;:
 



	4. &#x421;&#x43E;&#x437;&#x434;&#x430;&#x435;&#x43C; &#x43D;&#x43E;&#x432;&#x44B;&#x439; Inbound &#x43D;&#x430; &#x431;&#x430;&#x437;&#x435; ShadowSocks, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x439; &#x43C;&#x44B; &#x431;&#x443;&#x434;&#x435;&#x43C; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x434;&#x43B;&#x44F; &#x43F;&#x43E;&#x434;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x438;&#x44F; &#x43A; &#x43D;&#x43E;&#x434;&#x435;.
 

{
      "tag": "shadowsocks-inbound",
      "port": 8581,
      "listen": "0.0.0.0",
      "protocol": "shadowsocks",
      "settings": {
        "clients": [],
        "network": "tcp,udp"
      },
      "sniffing": {
        "enabled": true,
        "destOverride": [
          "http",
          "tls",
          "quic"
        ]
      }
    }


	&#x42F; &#x435;&#x433;&#x43E; &#x432;&#x441;&#x442;&#x430;&#x432;&#x438;&#x43B; &#x432; &#x43A;&#x43E;&#x43D;&#x435;&#x446;, &#x43F;&#x435;&#x440;&#x435;&#x434; Outbound-&#x43E;&#x43C;.
 


	
 


	5. &#x41F;&#x435;&#x440;&#x435;&#x439;&#x434;&#x435;&#x43C; &#x432; Inbounds &#x438; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x438;&#x43C; &#x447;&#x442;&#x43E; &#x443; &#x43D;&#x430;&#x441; &#x43E;&#x43D; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x43B;&#x441;&#x44F;:
 


	
 


	6. &#x418;&#x434;&#x435;&#x43C; &#x432; HOSTS &#x438; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x435;&#x43C; &#x43D;&#x43E;&#x432;&#x44B;&#x439;: &#x423;&#x43A;&#x430;&#x437;&#x430;&#x432; &#x432; Address - &#x430;&#x439;&#x43F;&#x438; &#x43D;&#x430;&#x448;&#x435;&#x433;&#x43E; &#x420;&#x424; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x430;:
 


	
 


	7. &#x421;&#x43E;&#x437;&#x434;&#x430;&#x435;&#x43C; &#x43D;&#x43E;&#x432;&#x43E;&#x433;&#x43E; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44F;, &#x438; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x435;&#x43C; &#x435;&#x43C;&#x443; &#x435;&#x434;&#x438;&#x43D;&#x441;&#x442;&#x432;&#x435;&#x43D;&#x43D;&#x44B;&#x439; &#x438;&#x43D;&#x431;&#x430;&#x443;&#x43D;&#x434;: (&#x43D;&#x435; &#x437;&#x430;&#x431;&#x443;&#x434;&#x44C;&#x442;&#x435; &#x443;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x44C; &#x431;&#x435;&#x437;&#x43B;&#x438;&#x43C;&#x438;&#x442; &#x43F;&#x43E; &#x442;&#x440;&#x430;&#x444;&#x438;&#x43A;&#x443; &#x438; &#x43F;&#x43E; &#x441;&#x440;&#x43E;&#x43A;&#x443; &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x44F;!)
 


	
 


	8. &#x437;&#x430;&#x445;&#x43E;&#x434;&#x438;&#x43C; &#x432; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44F;  &#x438; &#x436;&#x43C;&#x435;&#x43C; &#x43D;&#x430; &#x43A;&#x43D;&#x43E;&#x43F;&#x43A;&#x443; &#x433;&#x434;&#x435; &#x441;&#x442;&#x440;&#x435;&#x43B;&#x43A;&#x430;:
 


	
 


	&#x41A;&#x43E;&#x43F;&#x438;&#x440;&#x443;&#x435;&#x43C; &#x441;&#x441;&#x44B;&#x43B;&#x43A;&#x443;:
 


	
 


	9. &#x422;&#x435;&#x43F;&#x435;&#x440;&#x44C; &#x43D;&#x443;&#x436;&#x43D;&#x43E; &#x43A;&#x43E;&#x43D;&#x432;&#x435;&#x440;&#x442;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x432; &#x442;&#x435;&#x433; &#x43F;&#x43E;&#x434;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x438;&#x44F;.
 


	&#x418;&#x434;&#x435;&#x43C; &#x43D;&#x430; &#x43C;&#x43E;&#x439; &#x43A;&#x43E;&#x43D;&#x432;&#x435;&#x440;&#x442;&#x435;&#x440;: https://decode.neonode.cc
 


	&#x412;&#x441;&#x442;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x43C; &#x441;&#x441;&#x44B;&#x43B;&#x43A;&#x443;, &#x438; &#x436;&#x43C;&#x435;&#x43C; &#x440;&#x430;&#x441;&#x448;&#x438;&#x444;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C;.
 


	
 


	&#x41A;&#x43E;&#x43F;&#x438;&#x440;&#x443;&#x435;&#x43C; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x435;&#x43D;&#x43D;&#x44B;&#x439; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442;.
 


	10. &#x412;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x449;&#x430;&#x435;&#x43C;&#x441;&#x44F; &#x432; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x44E; XRAY &#x432; &#x43F;&#x430;&#x43D;&#x435;&#x43B;&#x435; 
 


	11. &#x414;&#x43E;&#x431;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x43C; &#x43D;&#x43E;&#x432;&#x44B;&#x439; OUTBOUND, &#x432; &#x441;&#x43E;&#x43E;&#x442;&#x432;&#x435;&#x442;&#x441;&#x442;&#x432;&#x438;&#x438; &#x441; &#x442;&#x435;&#x43C; &#x447;&#x442;&#x43E; &#x441;&#x43A;&#x43E;&#x43F;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43B;&#x438; &#x43D;&#x430; &#x448;&#x430;&#x433;&#x435; 9.
 


	
 


	&#x417;&#x430;&#x43F;&#x43E;&#x43C;&#x438;&#x43D;&#x430;&#x435;&#x43C; &#x438;&#x43C;&#x44F; &#x442;&#x44D;&#x433;&#x430;: ss-ru 
 


	&#x43D;&#x43E; &#x432;&#x44B; &#x43C;&#x43E;&#x436;&#x435;&#x442;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x438;&#x43C;&#x435;&#x43D;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x43A;&#x430;&#x43A; &#x445;&#x43E;&#x442;&#x438;&#x442;&#x435;! &#x413;&#x43B;&#x430;&#x432;&#x43D;&#x43E;&#x435; &#x43D;&#x435; &#x43F;&#x443;&#x442;&#x430;&#x439;&#x442;&#x435;&#x441;&#x44C;!
 


	12. &#x421;&#x43E;&#x437;&#x434;&#x430;&#x435;&#x43C; &#x43D;&#x43E;&#x432;&#x43E;&#x435; &#x43F;&#x440;&#x430;&#x432;&#x438;&#x43B;&#x43E; &#x432; routing
 


	&#x42F; &#x43F;&#x440;&#x438;&#x432;&#x435;&#x434;&#x443; &#x441;&#x440;&#x430;&#x437;&#x443; &#x432;&#x435;&#x441;&#x44C; &#x431;&#x43B;&#x43E;&#x43A; &#x441; &#x440;&#x43E;&#x443;&#x442;&#x438;&#x43D;&#x433;&#x43E;&#x43C;
 

  "routing": {
    "rules": [
      {
        "type": "field",
        "domain": [
          "full:cloudflare.com",
          "domain:msftconnecttest.com",
          "domain:msftncsi.com",
          "domain:connectivitycheck.gstatic.com",
          "domain:captive.apple.com",
          "full:detectportal.firefox.com",
          "domain:networkcheck.kde.org",
          "full:*.gstatic.com",
          "domain:gstatic.com"
        ],
        "outboundTag": "DIRECT"
      },
      {
        "type": "field",
        "domain": [
          "geosite:youtube",
          "ggpht.cn",
          "ggpht.com",
          "full:googlevideo.com",
          "gvt1.com",
          "youtube.ru",
          "youtube-nocookie.com",
          "gvt2.com",
          "video.google.com",
          "wide-youtube.l.google.com",
          "withyoutube.com",
          "youtu.be",
          "youtube.com",
          "youtubeeducation.com",
          "youtubeembeddedplayer.googleapis.com",
          "youtubefanfest.com",
          "youtubegaming.com",
          "youtubego.co.id",
          "youtubego.co.in",
          "youtubego.com",
          "youtubego.com.br",
          "youtubego.id",
          "youtubego.in",
          "youtubei.googleapis.com",
          "youtubekids.com",
          "youtubemobilesupport.com",
          "yt.be",
          "ytimg.com",
          "2ip.io"
        ],
        "inboundTag": [
          "VTR-GER",
          "VTR-USA",
          "VTR-LT",
          "VTR-Turk",
          "VTR-NL",
          "VTR-GB",
          "VTR-SWED"
        ],
        "outboundTag": "ss-ru"
      },
      {
        "type": "field",
        "protocol": [
          "bittorrent"
        ],
        "outboundTag": "BLOCK"
      },
      {
        "ip": [
          "geoip:private"
        ],
        "type": "field",
        "outboundTag": "BLOCK"
      }
    ],
    "domainStrategy": "IPIfNonMatch"
  }


	 
 


	&#x41E;&#x431;&#x440;&#x430;&#x442;&#x438;&#x442;&#x435; &#x432;&#x43D;&#x438;&#x43C;&#x430;&#x43D;&#x438;&#x435; &#x43D;&#x430; &#x431;&#x43B;&#x43E;&#x43A; InboundTag!
 


	&#x423; &#x43C;&#x435;&#x43D;&#x44F; &#x44D;&#x442;&#x43E;&#x442; &#x431;&#x43B;&#x43E;&#x43A; inboundTag &#x441;&#x43E;&#x434;&#x435;&#x440;&#x436;&#x438;&#x442; &#x432; &#x441;&#x435;&#x431;&#x435; &#x412;&#x421;&#x415; &#x422;&#x415;&#x413;&#x418; &#x43C;&#x43E;&#x438;&#x445; &#x418;&#x41D;&#x411;&#x410;&#x423;&#x41D;&#x414;&#x41E;&#x412; &#x41A;&#x420;&#x41E;&#x41C;&#x415; &#x422;&#x415;&#x413;&#x410; shadowsocks-inbound!!!! 
	&#x42D;&#x422;&#x41E; &#x41E;&#x427;&#x415;&#x41D;&#x42C; &#x412;&#x410;&#x416;&#x41D;&#x41E;! 
	&#x415;&#x421;&#x41B;&#x418; &#x412;&#x42B; &#x423;&#x41A;&#x410;&#x416;&#x415;&#x422;&#x415; &#x422;&#x415;&#x413; shadowsocks-inbound - &#x422;&#x41E; &#x423; &#x412;&#x410;&#x421; &#x422;&#x420;&#x410;&#x424;&#x418;&#x41A; &#x411;&#x423;&#x414;&#x415;&#x422; &#x413;&#x41E;&#x41D;&#x42F;&#x422;&#x42C;&#x421;&#x42F; &#x41F;&#x41E; &#x41A;&#x420;&#x423;&#x413;&#x423; &#x418; &#x41D;&#x418;&#x427;&#x415;&#x413;&#x41E; &#x41D;&#x415; &#x41E;&#x422;&#x41A;&#x420;&#x41E;&#x415;&#x422;&#x421;&#x42F;!!!!
 

        "inboundTag": [
          "VTR-GER",
          "VTR-USA",
          "VTR-LT",
          "VTR-Turk",
          "VTR-NL",
          "VTR-GB",
          "VTR-SWED"


	&#x422;&#x415;&#x413;&#x410; shadowsocks-inbound &#x412; &#x42D;&#x422;&#x41E;&#x41C; &#x421;&#x41F;&#x418;&#x421;&#x41A;&#x415; &#x41D;&#x415; &#x414;&#x41E;&#x41B;&#x416;&#x41D;&#x41E; &#x411;&#x42B;&#x422;&#x42C;!!!!
 


	&#x412;&#x43E;&#x442; &#x432; &#x43F;&#x440;&#x438;&#x43D;&#x446;&#x438;&#x43F;&#x435; &#x438; &#x432;&#x441;&#x451;.
 


	 
 


	&#x41F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x439;&#x442;&#x435;&#x441;&#x44C;!
 


	PS: 2ip.io &#x44F; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x438;&#x43B; &#x432; &#x43F;&#x435;&#x440;&#x435;&#x447;&#x435;&#x43D;&#x44C; &#x434;&#x43E;&#x43C;&#x435;&#x43D;&#x43E;&#x432; - &#x438;&#x441;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x434;&#x43B;&#x44F; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x438;, &#x447;&#x442;&#x43E; &#x432;&#x441;&#x435; &#x43F;&#x440;&#x430;&#x432;&#x438;&#x43B;&#x430; &#x443; &#x43D;&#x430;&#x441; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x44E;&#x442;!
 


	 
 


	&#x411;&#x43B;&#x430;&#x433;&#x43E;&#x434;&#x430;&#x440;&#x44F; &#x44D;&#x442;&#x43E;&#x43C;&#x443;, &#x43C;&#x44B; &#x43B;&#x435;&#x433;&#x43A;&#x43E; &#x441;&#x43C;&#x43E;&#x436;&#x435;&#x43C;:
 


	
		&#x41C;&#x43E;&#x43D;&#x438;&#x442;&#x43E;&#x440;&#x438;&#x442;&#x44C; &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x435; &#x43D;&#x43E;&#x434;&#x44B;
	
	
		&#x41C;&#x43E;&#x43D;&#x438;&#x442;&#x43E;&#x440;&#x438;&#x442;&#x44C; &#x43F;&#x43E;&#x442;&#x440;&#x435;&#x431;&#x43B;&#x435;&#x43D;&#x438;&#x435; &#x442;&#x440;&#x430;&#x444;&#x438;&#x43A;&#x430;
	
	
		&#x41F;&#x43E;&#x434;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x44C; &#x435;&#x449;&#x451; &#x420;&#x443;-&#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x430; &#x434;&#x43B;&#x44F; &#x431;&#x430;&#x43B;&#x430;&#x43D;&#x441;&#x438;&#x440;&#x43E;&#x432;&#x43A;&#x438; &#x43D;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438;, &#x435;&#x441;&#x43B;&#x438; &#x443; &#x432;&#x430;&#x441; &#x43E;&#x43D;&#x430; &#x432;&#x44B;&#x441;&#x43E;&#x43A;&#x430;&#x44F;</description><enclosure url="https://openode.xyz/uploads/monthly_2025_04/image.png.8b75c9edd6ed5f13877b1a5e8a6e0706.png" length="178386" type="image/png"/><pubDate>Thu, 10 Apr 2025 11:27:30 +0000</pubDate></item><item><title>&#x427;&#x430;&#x441;&#x442;&#x44C; 2 - &#x414;&#x435;&#x442;&#x430;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; &#x43D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x43A;&#x430; RemnaWave &#x438; Caddy (&#x441; &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x440;&#x430;&#x43C;&#x438; &#x438; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x44F;&#x43C;&#x438;)</title><link><![CDATA[https://openode.xyz/topic/1504-chast-2-detalnaya-nastroyka-remnawave-i-caddy-s-primerami-i-konfiguratsiyami/?do=findComment&comment=7169]]></link><description><![CDATA[Всем привет!
 


	Немного задержавшись с продолжением по личным объективным причинам, продолжаю рассказы.
 


	Для чистоты пояснений и инструкций я сделаю все эти действия с нуля и подключу одну ноду.
 


	 
 


	Все данные в статье буду приводить как есть, так как все сервера и домены тестовые, можете ломиться сколько угодно 🙂 они уже будут удалены.
 


	Повторяться сильно не буду, поэтому базовую настройку мы просто повторим.
 



	 
 


	Относительно прошлой статьи мы сразу поменяем место для установки нашей панели. Оно будет по пути: /opt/remnawave
 


	1. Аренда сервера
 


	Для начала, как обычно, нам нужно выбрать сервер.
 


	1.1. Рекомендации по аренде
 


	Из последнего, что могу посоветовать к аренде:
 


	Как бы ни ругались, но проверенный за много лет:
 


	4VPS: https://4vps.su/r/p52GUJhPv8b5
 


	Самый стабильный для мейн-сервера в РФ Selectel: https://selectel.ru/?ref_code=8d43638548
 


	Если нужны стабильные ноды, конечно Kamatera: https://go.cloudwm.com/visit/?bta=36601&amp;nci=5749
 


	2. Подготовка сервера
 


	2.1. Установка Docker
 


	Первым делом на новом сервере ставим Docker:
 

curl -fsSL https://get.docker.com | sh



	2.2. Создание папки для проекта Remnawave 
	 
 

mkdir -p /opt/remnawave/



	2.3. Переход в папку
 

cd /opt/remnawave/



	2.4. Настройка домена в Cloudflare
 


	Идем в панель Cloudflare.
 


	Добавляем домен и привязываем к своему серверу (надеюсь, вы знаете, как это делать): remna.openode.xyz
 


	
 


	2.5. Настройка страницы подписки
 


	Аналогично делаем для страницы подписки. У меня это будет: link.openode.xyz
 


	Отлично.
 


	2.6. Установка Caddy
 


	Caddy мы будем ставить по инструкции с двухфакторной аутентификацией: https://remna.st/security/caddy-with-minimal-setup
 


	Создаем папку для Caddy.
 


	Caddy у нас будет работать в Docker, так проще для старта. Но вы можете делать на свое усмотрение.
 

mkdir -p /opt/remnawave/caddy &amp;&amp; cd /opt/remnawave/caddy



	2.7. Создание файла Caddyfile
 


	Создаем файл Caddyfile:
 

nano /opt/remnawave/caddy/Caddyfile



	Прописываем в него:
 

{
	order authenticate before respond
	order authorize before respond

	security {
		local identity store localdb {
			realm local
			path /data/.local/caddy/users.json
		}

		authentication portal remnawaveportal {
			crypto default token lifetime {$AUTH_TOKEN_LIFETIME}
			enable identity store localdb
			cookie domain {$REMNAWAVE_PANEL_DOMAIN}
			ui {
				links {
					"Remnawave" "/dashboard/home" icon "las la-tachometer-alt"
					"My Identity" "/r/whoami" icon "las la-user"
					"API Keys" "/r/settings/apikeys" icon "las la-key"
					"MFA" "/r/settings/mfa" icon "lab la-keycdn"
				}
			}
			transform user {
				match origin local
				action add role authp/admin
				require mfa
			}
		}

		authorization policy panelpolicy {
			set auth url /r
			allow roles authp/admin
			with api key auth portal remnawaveportal realm local
			acl rule {
				comment "Accept"
				match role authp/admin
				allow stop log info
			}
			acl rule {
				comment "Deny"
				match any
				deny log warn
			}
		}
	}
}

https://{$REMNAWAVE_PANEL_DOMAIN} {
	route /api/* {
		reverse_proxy http://remnawave:3000
	}

	handle /r {
		rewrite * /auth
		request_header +X-Forwarded-Prefix /r
		authenticate with remnawaveportal
	}

	route /r* {
		authenticate with remnawaveportal
	}

	route /* {
		authorize with panelpolicy
		reverse_proxy http://remnawave:3000
	}
}
link.openode.xyz {
	reverse_proxy http://remnawave-subscription-page:3010
}



	Все данные у нас будут браться из environment, которые мы будем передавать в контейнер.
 


	ЕСЛИ ВЫ НЕ ХОТИТЕ ИСПОЛЬЗОВАТЬ ДВУХФАКТОРНУЮ АУТЕНТИФИКАЦИЮ ДЛЯ ВХОДА В ПАНЕЛЬ, ТО УДАЛИТЕ СТРОКУ ИЗ КОДА ВЫШЕ: 
	require mfa
 


	2.8. Создание файла контейнера для Caddy
 


	Создаем файл контейнера для Caddy:
 

nano docker-compose.yml



	Вставляем содержимое:
 

services:
    remnawave-caddy:
        image: remnawave/caddy-with-auth:latest
        container_name: 'remnawave-caddy'
        hostname: remnawave-caddy
        restart: always
        environment:
            - AUTH_TOKEN_LIFETIME=3600
            - REMNAWAVE_PANEL_DOMAIN=remna.openode.xyz
            - AUTHP_ADMIN_USER=admin
            - AUTHP_ADMIN_EMAIL=admin@openode.xyz
            - AUTHP_ADMIN_SECRET=super-puper-openode

        ports:
            - '0.0.0.0:443:443'
            - '0.0.0.0:80:80'
        networks:
            - remnawave-network
        volumes:
            - ./Caddyfile:/etc/caddy/Caddyfile
            - remnawave-caddy-ssl-data:/data

networks:
    remnawave-network:
        name: remnawave-network
        driver: bridge
        external: true

volumes:
    remnawave-caddy-ssl-data:
        driver: local
        external: false
        name: remnawave-caddy-ssl-data



	Контейнер создали, но запускать пока не будем.
 


	Сеть мы заранее указали ту, которую создадим далее.
 


	3. Установка панели
 


	3.1. Создание файла docker-compose.yml
 


	Переходим в папку Remnawave и создаем файл docker-compose.yml:
 

cd /opt/remnawave/ &amp;&amp; nano docker-compose.yml



	Устанавливать будем latest-ветку, так как там сейчас все самые полезные функции.
 


	В скором времени будет релиз 1.5.0 в latest, поэтому можно будет смело его брать за базу.
 

services:
  remnawave-db:
    image: postgres:17
    container_name: 'remnawave-db'
    hostname: remnawave-db
    restart: always
    env_file:
      - .env
    environment:
      - POSTGRES_USER=${POSTGRES_USER}
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
      - POSTGRES_DB=${POSTGRES_DB}
      - TZ=UTC
    ports:
      - '127.0.0.1:6767:5432'
    volumes:
      - remnawave-db-data:/var/lib/postgresql/data
    networks:
      - remnawave-network
    healthcheck:
      test: ['CMD-SHELL', 'pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}']
      interval: 3s
      timeout: 10s
      retries: 3

  remnawave:
    image: remnawave/backend:latest
    container_name: 'remnawave'
    hostname: remnawave
    restart: always
    ports:
      - '127.0.0.1:3000:3000'
    env_file:
      - .env
    networks:
      - remnawave-network
    depends_on:
      remnawave-db:
        condition: service_healthy

  remnawave-redis:
    image: valkey/valkey:8.0.2-alpine
    container_name: remnawave-redis
    hostname: remnawave-redis
    restart: always
    networks:
      - remnawave-network
    volumes:
      - remnawave-redis-data:/data
        
  remnawave-subscription-page:
     image: remnawave/subscription-page:latest
     container_name: remnawave-subscription-page
     hostname: remnawave-subscription-page
     restart: always
     environment:
         - REMNAWAVE_PANEL_URL=http://remnawave:3000   # Здесь мы указали контейнер и порт контейнера. Но если у вас страница будет стоять отдельно, вы должны указать здесь домен для панели
         - APP_PORT=3010
         - META_TITLE="Subscription Page Title"
         - META_DESCRIPTION="Subscription Page Description"
     ports:
         - '127.0.0.1:3010:3010'
     networks:
         - remnawave-network

networks:
  remnawave-network:
    name: remnawave-network
    driver: bridge
    external: false

volumes:
  remnawave-db-data:
    driver: local
    external: false
    name: remnawave-db-data
  remnawave-redis-data:
    driver: local
    external: false
    name: remnawave-redis-data


	 
 


	Для страницы подписки замените в - REMNAWAVE_PLAIN_DOMAIN=remna.openode.xyz на ВАШ домен панели
 


	Можно также добавить для страницы подписки параметр ниже:
 

- CUSTOM_SUB_PREFIX=sub


	тогда получится такой вариант:
 

  remnawave-subscription-page:
     image: remnawave/subscription-page:latest
     container_name: remnawave-subscription-page
     hostname: remnawave-subscription-page
     restart: always
     environment:
         - REMNAWAVE_PANEL_URL=http://remnawave:3000
         - SUBSCRIPTION_PAGE_PORT=3010
         - META_TITLE="Subscription Page Title"
         - META_DESCRIPTION="Subscription Page Description"
         - CUSTOM_SUB_PREFIX=sub
     ports:
         - '127.0.0.1:3010:3010'
     networks:
         - remnawave-network


	После этих изменений, у вас к адресу подписки добавится дополнительный параметр в url: link.openode.xyz/sub/&lt;uuid&gt;
 


	Тогда и для .env (который мы будем формировать дальше) нужно будет указывать правильный параметр для sub_public_domain
 

SUB_PUBLIC_DOMAIN=link.openode.xyz/sub


	 
 


	Сохранили и закрыли.
 


	3.2. Создание файла .env
 


	Создаем здесь же файл .env:
 

nano .env



	И вставляем в него содержимое из файла по ссылке:
 


	https://github.com/remnawave/backend/blob/main/.env.sample
 


	Я приведу сразу готовый свой файл:
 


	cd ~/remnawave/ &amp;&amp; nano docker-compose.yml
 

### APP ###
APP_PORT=3000
METRICS_PORT=3001


### API ###
# Possible values: max (start instances on all cores), number (start instances on number of cores), -1 (start instances on all cores - 1)
# !!! Do not set this value more that physical cores count in your machine !!!
API_INSTANCES=max

### DATABASE ###
# FORMAT: postgresql://{user}:{password}@{host}:{port}/{database}
DATABASE_URL="postgresql://postgres:postgres@remnawave-db:5432/postgres"

### REDIS ###
REDIS_HOST=remnawave-redis
REDIS_PORT=6379

### JWT ###
### CHANGE DEFAULT VALUES ###
JWT_AUTH_SECRET=6ac5b3ba99b94d9e0f6b9c242691c14e3bd54492b60aff7829e6b050535d8827278c098b42d6833a314af104f2c9da8046c33a14f45c00c43117dda0ba4ea25866a3562babea7ac59c523fea04cab6c24c4f191846b73ac7420fb265b0f910ad09018f662e8daf7e6bf8173546d89687fdb839fd14f34e754b20ae1e1d556ee3
JWT_API_TOKENS_SECRET=b3e86a783d3ca63941fe48eb2fdf8901fa294b777376c77b852c98cab8e136d12f4a0b0c898a60cdda6c1a76af6f7a9acdd292a4040bc0a4a7c34091ddb25158aa785c90391e094672da646712d2ae1e6f7e2bada14a2deb9099c291bc464115fb0ae71d042baacc8f7890ea55d8eb6a42d474604429978880e851632ce187a6

### TELEGRAM ###
IS_TELEGRAM_NOTIFICATIONS_ENABLED=false
#TELEGRAM_NOTIFY_USERS_CHAT_ID=change_me
#TELEGRAM_NOTIFY_NODES_CHAT_ID=change_me
#TELEGRAM_NOTIFY_USERS_THREAD_ID=change_me
#TELEGRAM_NOTIFY_NODES_THREAD_ID=change_me

TELEGRAM_OAUTH_ENABLED=false ### or TRUE (required IS_TELEGRAM_NOTIFICATIONS_ENABLED=true)
TELEGRAM_OAUTH_ADMIN_IDS=change_me


### FRONT_END ###
FRONT_END_DOMAIN=remna.openode.xyz

### SUBSCRIPTION PUBLIC DOMAIN ###
### RAW DOMAIN, WITHOUT HTTP/HTTPS, DO NOT PLACE / to end of domain ###
### Used in "profile-web-page-url" response header ###
SUB_PUBLIC_DOMAIN=link.openode.xyz

### SWAGGER ###
SWAGGER_PATH=/docs
SCALAR_PATH=/scalar
IS_DOCS_ENABLED=false

### PROMETHEUS ###
### Metrics are available at /api/metrics
METRICS_USER=admin
METRICS_PASS=admin

### WEBHOOK ###
WEBHOOK_ENABLED=false
### Only https:// is allowed
WEBHOOK_URL=https://webhook.site/1234567890
### This secret is used to sign the webhook payload, must be exact 64 characters. Only a-z, 0-9, A-Z are allowed.
WEBHOOK_SECRET_HEADER=vsmu67Kmg6R8FjIOF1WUY8LWBHie4scdEqrfsKmyf4IAf8dY3nFS0wwYHkhh6ZvQ

### CLOUDFLARE ###
# USED ONLY FOR docker-compose-prod-with-cf.yml
# NOT USED BY THE APP ITSELF
# CLOUDFLARE_TOKEN=ey...

### Database ###
### For Postgres Docker container ###
# NOT USED BY THE APP ITSELF
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
POSTGRES_DB=postgres


	 
 


	Для того что бы включить oAuth Telegram авторизацию - вы должны внести в вашего бота через @botfather параметр домена панели.
 


	Обязательно заменяйте все JWT-секреты на свои.
 


	Значения генерируем здесь: https://jwtsecret.com/generate
 


	 
 


	4. Запуск панели
 


	4.1. Запуск контейнера Remnawave
 


	Поднимаем наш контейнер Remnawave:
 

cd /opt/remnawave &amp;&amp; docker compose up -d



	4.2. Запуск контейнера Caddy
 


	Поднимаем наш контейнер Caddy:
 

cd caddy &amp;&amp; docker compose up -d



	5. Настройка панели
 


	5.1. Авторизация
 


	Зайдя на домен: remna.openode.xyz
 


	Видим следующее:
 


	
 


	Проходим авторизацию, в моем случае это было:
 


	admin@openode.xyz
 


	super-puper-openode
 


	 
 


	5.2. Создание токена MFA
 


	Теперь идет запрос, что нам нужно создать токен для многофакторной аутентификации.
 


	
 


	Если вы все сделали корректно, увидите окно регистрации в Remnawave:
 


	
 


	Я задал свои параметры и сохранил пароль в надежном месте.
 


	
 


	Панель готова!
 


	Создадим первого пользователя и проверим, что страница подписки работает корректно.
 


	6. Обновление конфигурации
 


	6.1. Обновление конфига
 


	Заходим на дашборде на страницу «Конфиг» и заменяем все содержимое на:
 

{
  "log": {
    "loglevel": "warning"
  },
  "inbounds": [
    {
      "tag": "Vless TCP reality",
      "port": 443,
      "listen": "0.0.0.0",
      "protocol": "vless",
      "settings": {
        "clients": [],
        "decryption": "none"
      },
      "sniffing": {
        "enabled": true,
        "destOverride": [
          "http",
          "tls"
        ]
      },
      "streamSettings": {
        "network": "tcp",
        "security": "reality",
        "tcpSettings": {},
        "realitySettings": {
          "dest": "ftp.debian.org:443",
          "show": false,
          "xver": 0,
          "shortIds": [
            ""
          ],
          "publicKey": "22mH2kO_6Q43slZjf-njD9TMv9xeYMA1P28PzEtqOWo",
          "privateKey": "Jy4FdQWKBOtLc2rvJqRxP-WMELzNhRxmUgequcAcLhQ",
          "serverNames": [
            "ftp.debian.org"
          ]
        }
      }
    },
    {
      "tag": "SS",
      "port": 8580,
      "listen": "0.0.0.0",
      "protocol": "shadowsocks",
      "settings": {
        "clients": [],
        "network": "tcp,udp"
      }
    }
  ],
  "outbounds": [
    {
      "tag": "DIRECT",
      "protocol": "freedom",
      "settings": {
        "domainStrategy": "ForceIPv4"
      }
    },
    {
      "tag": "BLOCK",
      "protocol": "blackhole"
    },
    {
      "tag": "IPv4",
      "protocol": "freedom",
      "settings": {
        "domainStrategy": "ForceIPv4"
      }
    }
  ],
  "routing": {
    "rules": [
      {
        "type": "field",
        "domain": [
          "full:cloudflare.com",
          "domain:msftconnecttest.com",
          "domain:msftncsi.com",
          "domain:connectivitycheck.gstatic.com",
          "domain:captive.apple.com",
          "full:detectportal.firefox.com",
          "domain:networkcheck.kde.org",
          "full:*.gstatic.com",
          "domain:gstatic.com"
        ],
        "outboundTag": "DIRECT"
      },
      {
        "type": "field",
        "protocol": [
          "bittorrent"
        ],
        "outboundTag": "BLOCK"
      },
      {
        "ip": [
          "geoip:private"
        ],
        "type": "field",
        "outboundTag": "BLOCK"
      }
    ],
    "domainStrategy": "IPIfNonMatch"
  }
}



	6.2. Генерация ключей
 


	После этого обязательно генерируем пару ключей:
 


	
 


	Копируем эту пару ключей и заменяем содержимое в конфигурации VLESS (чтобы ваши ключи были уникальными).
 


	7. Работа с инбаундами
 


	7.1. Просмотр инбаундов
 


	Идем на вкладку «Инбаунды» и видим:
 


	
 


	Все инбаунды у нас автоматически подтянулись.
 


	Можно посмотреть самые важные характеристики, а также есть кнопка для массового управления ими.
 


	8. Подключение ноды
 


	НОДА - это  отдельный сервер xray, который будет на себя принимать подключения.
 


	Нода может быть установлена на одном сервере с панелью. Но это не рекомендуется по разным объективным причинам - безопасность, стабильность, скорость. Исключения составляет "соло" использование панели, например чисто для себя одного, и в таком варианте, использовать два сервера, один из которых чисто под панель, а второй под ноду - затратно.
 


	Нода это обычно зарубежный сервер.
 


	Ноды мы добавляем чтобы потом к ним подключаться.
 


	Системный требования для ноды ниже чем для панели. Обычно хватает 1 ядро, 2гб памяти и 10гб места. 
	Если у вас нодой будут пользоваться достаточно большое количество человек, то имейте ввиду, что будут расти требования к процессору.
 


	Вот простая схема требований  к ноде.
 


	до 70-100 человек (в зависимости от сетевой нагрузки) - 1 ядро 1гб
 


	до 300 человек - 2 ядра - 2 гб 10гб\с порт.
 


	до 600-800 человек - 4 ядра 8гб, и минимум 10гб\с порт.
 


	больше 1000 человек - лучше балансировку ноды, хотя бы по DNS.
 


	8.1. Создание новой ноды
 


	Переходим в «Ноды»
 


	2
 


	и жмем «Создать новую ноду».. Появится такое окно
 


	
 


	Его не закрываем.
 


	Сейчас оно нам нужно для копирования ключа, а дальше мы заполним параметры сервера для подключения.
 


	8.2. Подключение к серверу ноды
 


	Подключаемся к серверу нашей ноды (я использую Termius).
 


	8.3. Установка скрипта ноды 
	 
 

sudo bash -c "$(curl -sL https://github.com/DigneZzZ/remnawave-scripts/raw/main/remnanode.sh)" @ install


	8.4. Ввод данных сертификата
 


	Будет предложено ввести данные сертификата из панели:
 


	
 


	Копируем из нашей панели:
 


	
 


	И вставляем как есть в нашу консоль.
 


	Дважды жмем Enter после вставки (чтобы появилась пустая строка, тогда он перейдет на следующий этап).
 


	
 


	Указываем порт (по умолчанию он 3000, можно нажать Enter).
 


	Далее задаст вопрос, хотите ли вы установить последнее ядро Xray-core (если нажать Enter, он это пропустит), но установить можно будет потом отдельно.
 


	И все. Готово.
 


	Контейнер запустится и будет ждать подключений:
 


	
 


	8.5. Настройка параметров сервера
 


	Возвращаемся в нашу панель.
 


	Задаем параметры нашего сервера:
 


	
 


	ЗАПОМНИТЕ РАЗ И НА ВСЕГДА! 
	 
	ПОДКЛЮЧАЕМ НОДУ ТОЛЬКО IP-АДРЕСУ! НЕ ПО ДОМЕНУ! 
	 
	ДОМЕН МОЖНО УКАЗАТЬ ТОЛЬКО В НАСТРОЙКАХ ХОСТА!!!
 


	Жмем «Сохранить».
 


	Увидим сначала попытку подключения:
 


	
 


	Затем статус, что подключен: 
	
 


	9. Создание хостов
 


	9.1. Создание хоста
 


	Последняя, заключительная часть создания подключения — это создание хостов.
 


	В Marzban они создавались автоматически.
 


	Здесь они создаются вручную.
 


	Идем во вкладку «Хосты».
 


	Жмем «Создать хост».
 


	
 


	Заполняем данные:
 


	Примечание — это то, как вы назовете сами свой хост и как он будет отображаться у пользователя.
 


	Например, Sweden.
 


	И к имени можно будет добавить переменные:
 


	
 


	Мы добавим только Days_left.
 


	В адресе ноды указываем либо IP-адрес сервера, либо поддомен, привязанный к этому серверу.
 


	Я укажу поддомен (это удобнее: в случае смены сервера достаточно будет поменять DNS-запись для этого адреса на новый сервер-ноду, и для пользователя смена пройдет незаметно).
 


	
 


	Выбираем наш инбаунд.
 


	А порт у нас подтянется самостоятельно из конфигурации.
 


	И ОБЯЗАТЕЛЬНО ДЕРНИТЕ СЕРЫЙ ФЛАЖОК , ПЕРЕВЕДЯ ЕГО В СОСТОЯНИЕ ВКЛЮЧЕННОГО 
 


	Не знаю, как сейчас, но на некоторых клиентах была проблема, что Fingerprint не проставлялся автоматически.
 


	Поэтому давайте зададим его по умолчанию:
 


	
 


	Выбираем Chrome.
 


	Жмем «Сохранить».
 


	Готово!
 


	
 


	 
	9.2. Привязка инбаундов для пользователей
 


	Для уже созданных пользователей инбаунды нужно прописать принудительно, для всех новых создаваемых пользователей вы и так будете выбирать.
 


	Поэтому вернемся на вкладку «Инбаунды».
 


	
 


	И научимся работать с массовыми действиями.
 


	Включим Vless-инбаунд для ВСЕХ (но у нас это для нашего единственного пользователя):
 


	
 


	И получим такой результат:
 


	
 


	Готово!
 


	 
 


	Чтобы сбросить пароль администратора (для входа в панель) или сертификаты, есть специальная консольная CLI-команда (выполнять на сервере с мейном):
 

docker exec -it remnawave remnawave



	И получим такие варианты:]]></description><enclosure url="https://openode.xyz/uploads/monthly_2025_03/image.png.26cf4ff3b068ef9d056e8519cd34c1d0.png" length="37646" type="image/png"/><pubDate>Sun, 06 Apr 2025 17:05:00 +0000</pubDate></item><item><title>&#x428;&#x430;&#x431;&#x43B;&#x43E;&#x43D;&#x44B; &#x441;&#x442;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x44B; &#x43F;&#x43E;&#x434;&#x43F;&#x438;&#x441;&#x43A;&#x438;.</title><link><![CDATA[https://openode.xyz/topic/1495-shablony-stranitsy-podpiski/?do=findComment&comment=7106]]></link><description>&#x421; 31.03.2025 &#x43A;&#x43E;&#x43C;&#x43F;&#x43E;&#x43D;&#x43E;&#x432;&#x43A;&#x430; &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x439; &#x432; subscription-page &#x432; remnawave &#x441;&#x442;&#x430;&#x43B;&#x430; &#x43C;&#x430;&#x43A;&#x441;&#x438;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x43E; &#x430;&#x434;&#x430;&#x43F;&#x442;&#x438;&#x432;&#x43D;&#x43E;&#x439; &#x438; &#x443;&#x434;&#x43E;&#x431;&#x43D;&#x43E;&#x439;.
 


	&#x418;&#x43D;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x446;&#x438;&#x438; &#x44F; &#x43D;&#x430;&#x43F;&#x438;&#x448;&#x443; &#x447;&#x443;&#x442;&#x44C; &#x43F;&#x43E;&#x437;&#x436;&#x435;.
 


	&#x410; &#x43F;&#x43E;&#x43A;&#x430; &#x43F;&#x43E;&#x43A;&#x438;&#x434;&#x430;&#x44E; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x43E; &#x441;&#x432;&#x43E;&#x438; &#x43F;&#x43E;&#x434;&#x431;&#x43E;&#x440;&#x43A;&#x438; &#x441; &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x44F;&#x43C;&#x438; &#x438; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x44F;&#x43C;&#x438;.
 


	&#x418;&#x43D;&#x444;&#x43E;&#x440;&#x43C;&#x430;&#x446;&#x438;&#x44F; &#x43E;&#x431; &#x44D;&#x442;&#x43E;&#x43C; &#x435;&#x441;&#x442;&#x44C; &#x43D;&#x430; &#x441;&#x442;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x435;: 
	 
	https://remna.st/subscription-templating/client-configuration
 


	 
 


	 
 


	&#x41C;&#x430;&#x43A;&#x441;&#x438;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x43E; &#x43F;&#x43E;&#x43B;&#x43D;&#x44B;&#x439; &#x432;&#x430;&#x440;&#x438;&#x430;&#x43D;&#x442;.
 


	
 


	
 


	
 


	 
 


	app1.json</description><enclosure url="https://openode.xyz/uploads/monthly_2025_03/image.png.dea26967ef42dabdf3f30a7abd9455b6.png" length="443649" type="image/png"/><pubDate>Mon, 31 Mar 2025 15:08:39 +0000</pubDate></item><item><title><![CDATA[Миграция пользователей Marzban => Remnawave]]></title><link><![CDATA[https://openode.xyz/topic/1477-migratsiya-polzovateley-marzban-remnawave/?do=findComment&comment=6916]]></link><description><![CDATA[Инструкция по миграции с Marzban на Remnawave
 


	1. Подготовка сервера
 


	1.1. Установка необходимых зависимостей
 

# Обновление пакетов
sudo apt-get update

# Установка необходимых инструментов разработки и Git
sudo apt-get install -y git wget



	2. Миграция
 


	2.1. Загрузка инструмента миграции
 

# Скачивание последней версии мигратора
cd ~/remnawave &amp;&amp;  wget https://github.com/remnawave/migrate/releases/download/v1.3.0/remnawave-migrate-v1.3.0-linux-amd64.tar.gz



	2.2. Распаковка файла
 

tar -xf remnawave-migrate-v1.3.0-linux-amd64.tar.gz



	3. Настройка конфигурации
 


	3.1. Распаковка файла
 


	Первым делом мы в блокноте заполним необходимые значения:
 

./remnawave-migrate \
    --panel-type=marzban \
    --panel-url="http://marzban.example.com" \
    --panel-username="admin" \
    --panel-password="password" \
    --remnawave-url="http://remnawave.example.com" \
    --remnawave-token="your-token" \
    --preserve-status


	инструкция:
 

| Flag                   | Environment Variable | Description                                    | Default   |
| ---------------------- | -------------------- | ---------------------------------------------- | --------- |
| `--panel-type`         | `PANEL_TYPE`         | Source panel type (`marzban` or `marzneshin`)  | `marzban` |
| `--panel-url`          | `PANEL_URL`          | Source panel URL                               |           |
| `--panel-username`     | `PANEL_USERNAME`     | Source panel admin username                    |           |
| `--panel-password`     | `PANEL_PASSWORD`     | Source panel admin password                    |           |
| `--remnawave-url`      | `REMNAWAVE_URL`      | Destination panel URL                          |           |
| `--remnawave-token`    | `REMNAWAVE_TOKEN`    | Destination panel API token                    |           |
| `--batch-size`         | `BATCH_SIZE`         | Number of users to process in one batch        | 100       |
| `--last-users`         | `LAST_USERS`         | Only migrate last N users (0 means all users)  | 0         |
| `--preferred-strategy` | `PREFERRED_STRATEGY` | Preferred traffic reset strategy for all users |           |
| `--preserve-status`    | `PRESERVE_STATUS`    | Preserve user status from source panel         | false     |


	Токен для Remnawave создаем здесь:
 


	
 


	Собственно на этом все.
 


	Миграция выполнится автоматически и быстро.
 


	5. Проверка после миграции
 


	5.1. Что проверить:
 


	1. Количество мигрированных пользователей 
	2. Правильность перенесенных данных: 
	  - Логины 
	  - Пароли 
	  - Лимиты трафика 
	  - Даты истечения 
	  - Статусы пользователей
 


	6. Важные замечания
 


	6.1. SSL/HTTPS
 


	- Убедитесь, что SSL-сертификаты на обоих серверах действительны 
	- При использовании самоподписанных сертификатов добавьте флаг -k или --insecure в curl-запросы 
	- В URL обязательно используйте https://
 


	6.2. Безопасность
 


	- Сделайте резервную копию данных Marzban перед миграцией 
	- Храните файл .env в безопасном месте 
	- После миграции смените пароли администратора на обеих панелях
 


	6.3. Решение проблем
 


	Если возникают ошибки: 
	1. Проверьте доступность обоих серверов 
	2. Убедитесь в правильности URL (https://) 
	3. Проверьте правильность учетных данных 
	4. Просмотрите логи миграции
 


	6.4. Рекомендации по процессу
 


	1. Начните с тестовой миграции нескольких пользователей 
	2. Проверьте корректность данных тестовых пользователей 
	3. Если тест успешен, выполните полную миграцию 
	4. Сохраняйте лог миграции для анализа возможных проблем
 


	7. Пост-миграционные действия
 


	1. Проверьте работоспособность сервисов для случайной выборки пользователей 
	2. Уведомите пользователей о завершении миграции 
	3. Обновите DNS-записи (если требуется) 
	4. Сохраните резервную копию данных старой панели
 


	 
 


	 
 


	Все подписки из Marzban будут работать если использовать актуальную версию страницы подписки: https://github.com/remnawave/subscription-page]]></description><enclosure url="https://openode.xyz/uploads/monthly_2025_03/image.png.9aaf1cb626861ff62cb26c08042259c7.png" length="100233" type="image/png"/><pubDate>Wed, 12 Mar 2025 21:38:35 +0000</pubDate></item><item><title>&#x410;&#x43D;&#x43E;&#x43D;&#x441; &#x441;&#x442;&#x430;&#x442;&#x44C;&#x438;: &#x423;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43A;&#x430; Remnawave + Remnawave-json + Caddy &#x432; &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x439;&#x43D;&#x435;&#x440;&#x430;&#x445;</title><link><![CDATA[https://openode.xyz/topic/1473-anons-stati-ustanovka-remnawave-remnawave-json-caddy-v-konteynerah/?do=findComment&comment=6882]]></link><description>&#x414;&#x440;&#x443;&#x437;&#x44C;&#x44F;, &#x432;&#x441;&#x435;&#x43C; &#x43F;&#x440;&#x438;&#x432;&#x435;&#x442;!
 


	&#x41F;&#x43E;&#x441;&#x442;&#x430;&#x440;&#x430;&#x43B;&#x441;&#x44F; &#x43A;&#x430;&#x43A; &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x438;&#x43D;&#x444;&#x43E;&#x440;&#x43C;&#x430;&#x442;&#x438;&#x432;&#x43D;&#x435;&#x435; &#x438; &#x434;&#x435;&#x442;&#x430;&#x43B;&#x44C;&#x43D;&#x43E; &#x440;&#x430;&#x437;&#x43E;&#x431;&#x440;&#x430;&#x442;&#x44C; &#x443;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43A;&#x443; &#x438; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A; &#x43D;&#x43E;&#x432;&#x43E;&#x439; &#x43F;&#x430;&#x43D;&#x435;&#x43B;&#x438; Remnawave.
 


	
 


	&#x427;&#x442;&#x43E; &#x440;&#x430;&#x437;&#x43E;&#x431;&#x440;&#x430;&#x43D;&#x43E;:
 


	
		&#x423;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43A;&#x430; &#x438; &#x43D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x43A;&#x430; Caddy &#x432; &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x439;&#x43D;&#x435;&#x440;&#x435;
	
	
		&#x41D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x43A;&#x430; Remnawave
	
	
		&#x41F;&#x43E;&#x434;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x438;&#x435; Remnawave-json
	
	
		&#x41D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x43A;&#x430; &#x432;&#x441;&#x435;&#x445; &#x43F;&#x430;&#x440;&#x430;&#x43C;&#x435;&#x442;&#x440;&#x43E;&#x432;
	
	
		&#x41F;&#x43E;&#x434;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x438;&#x435; RemnaNode (&#x43D;&#x43E;&#x434;&#x44B; &#x434;&#x43B;&#x44F; Remnawave)
	




	&#x414;&#x43E;&#x441;&#x442;&#x443;&#x43F; &#x43F;&#x43E; &#x43F;&#x43E;&#x434;&#x43F;&#x438;&#x441;&#x43A;&#x435;:
 


	https://openode.xyz/subscriptions/
 


	&#x410; &#x43F;&#x43E;&#x441;&#x43B;&#x435;, &#x432;&#x441;&#x442;&#x443;&#x43F;&#x430;&#x435;&#x43C; &#x432; &#x43A;&#x43B;&#x443;&#x431;:
 


	https://openode.xyz/clubs/10-remnawave-new/</description><enclosure url="https://openode.xyz/uploads/monthly_2025_03/image.png.a6b2120cb27de806f6bb1e2c63022068.png" length="262934" type="image/png"/><pubDate>Mon, 10 Mar 2025 12:54:21 +0000</pubDate></item><item><title>&#x427;&#x430;&#x441;&#x442;&#x44C; 1 - &#x41F;&#x440;&#x435;&#x434;&#x438;&#x441;&#x43B;&#x43E;&#x432;&#x438;&#x435; &#x438; &#x443;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43A;&#x430; &#x43F;&#x430;&#x43D;&#x435;&#x43B;&#x438; RemnaWave</title><link><![CDATA[https://openode.xyz/topic/1472-chast-1-predislovie-i-ustanovka-paneli-remnawave/?do=findComment&comment=6875]]></link><description><![CDATA[Всем привет!
 


	Начну с картинок самой панели.
 


	
 


	 
 


	Как вы могли заметить, данная панель очень похожа на всеми привычный Marzban, но с сильно переделанным дизайном 🙂
 


	Правда в ней есть и достаточно большое количество изменений.
 


	Я не являюсь официальной стороной разработки панели, поэтому буду писать свои наблюдения и заметки.
 


	Официальный канал:
 


	https://t.me/remnawave
 


	Официальная группа:
 


	https://t.me/+xQs17zMzwCY1NzYy
 


	Официальный сайт:
 


	https://remna.st
 


	Хаб идея и доработок: 
 


	https://hub.remna.st/
 


	 
 


	Отличия от аналогов
 


	Для начала хочу отметить, что основной "мейнтейнер" панели - это российский разраб Kastov.
 


	1. Использование базы данных PostgreDB. 
	Ребята заранее подумали, что использование не надежной синхронной Sqlite является плохим тоном, а использовать различные вариации MariaDB и  MySQL накладывают другие ограничения.
 


	2. Подход к распределению Инбаундов к Нодам.
 


	Как вы знаете, в Marzban - есть один большой недостаток, не всегда удобно управлять инбаундами, и без дополнительных инбаундов, очень сложно управлять какой инбаунд идет на какую ноду.
 


	Команда из Marzneshin попыталась исправить эту ситуацию, и предложила свой подход.. где у каждой ноды свой отдельный конфиг Xray. Что это дает - стабильность и независимость ноды. Возможность изменять конфиг отдельного сервера без влияния на другие.
 


	В Remnawave сделали что то среднее (по крайней мере сейчас). Конфиг - один для всех нод (серверов), но у каждого сервера ты можешь выбрать какой инбаунд будет на нем доступен и будет работать.
 


	Это делается прям в настройках ноды:
 


	
 


	3. Стабильность работы нод.
 


	Отличительной особенностью и основным акцентом работы панели - является независимость ноды от Мэйн сервера. Ноды в принципе работают как нечто отдельное и самостоятельное. Это важно!
 


	4. Мэйн не стоит на раздаче
 


	Еще одной важной особенностью, является тот факт, что установленная панель  не является сервером отдачи по умолчанию. 
	Да, его можно сделать таким, но для этого сперва нужно установить на этот же мейн remnanode и подключить его как ноду в панеле.
 


	5. Расширенные API возможности и метрики для Prometheus
 


	Тут особо нечего расписывать, но метрики - это приятно.
 


	6. По умолчанию нет страницы подписки - все отдается в json. Да это так.
 


	Но есть решение. О нем позже.
 


	Разбираемся в требованиях и особенностях
 


	Требования нам подскажет сайт:
 

 


	Требований конечно выше чем у Marzban, т.к. у нас на бэкенде используется PostgreDB.
 


	Но это гарантирует стабильность и надежность БД и данных.
 


	Панель придерживается той же свежей концепции, что по умолчанию доступна только в локальной сети. Если вы панель хотите выносить наружу, вам потребуется Caddy или Nginx. 
 


	Я люблю Caddy, поэтому разбирать будет на её примере.
 


	Аренда сервера
 


	Для начала, как обычно, нам нужно выбрать сервер.
 


	Из последнего, что могу посоветовать к аренде:
 


	Как бы не ругались, но проверенный за много лет: 
 


	4VPS: https://4vps.su/r/p52GUJhPv8b5
 


	САМЫЙ СТАБИЛЬНЫЙ для Мэйна сервер в РФ Selectel: https://selectel.ru/?ref_code=8d43638548
 


	Если нужны стабильные ноды, конечно Kamatera: https://go.cloudwm.com/visit/?bta=36601&amp;nci=5749
 


	1. Подготовка сервера 
 


	1.1. Первым делом на новом сервере ставить Docker:
 

curl -fsSL https://get.docker.com | sh


	1.2. Теперь давайте создадим папку для нашего проекта Remnawave 
	Пока мы это будем делать в папке /root/, но по фэншую лучше в паке /opt/ (но это уже когда будет установщик готов)
 

mkdir -p ~/remnawave/


	1.3. Переходим в папку:
 

cd ~/remnawave/


	1.4. Идем в панель Cloudflare.
 


	Добавляем домен и привязываем к своему серверу (я надеюсь вы знаете как это делать): test.openode.xyz
 


	
 


	Аналогично делаем для страницы подписки. У меня это будет: link.openode.ru
 


	Отлично.
 


	1.5. Создаем папку для Caddy. 
 


	Caddy у нас будет работать в докере, так проще для старта. Но вы можете делать на свое усмотрение.
 

mkdir -p ~/remnawave/caddy


	Создаем файл Caddyfile:
 

nano ~/remnawave/caddy/Caddyfile


	Прописываем в него:
 

test.openode.ru {
        reverse_proxy remnawave:3000 {
                header_up X-Real-IP {remote}
                header_up Host {host}
        }
}
link.openode.ru {
        reverse_proxy remnawave-subscription-page:3010 {
                header_up X-Real-IP {remote}
                header_up Host {host}
        }
}


	1.6. Создам контейнер для Caddy:
 

cd ~/remnawave/caddy &amp;&amp; nano docker-compose.yml


	Вставляем содержимое
 

services:
    caddy:
        image: caddy:2.9
        container_name: 'caddy'
        hostname: caddy
        restart: always
        ports:
            - '0.0.0.0:443:443'
            - '0.0.0.0:80:80'
        networks:
            - remnawave-network
        volumes:
            - ./Caddyfile:/etc/caddy/Caddyfile
            - caddy-ssl-data:/data

volumes:
    caddy-ssl-data:
        driver: local
        external: false
        name: caddy-ssl-data
networks:
    remnawave-network:
        external: true
        name: remnawave-network


	Контейнер создали, но запускать пока не будем.
 


	Сеть мы заранее указали ту, которую мы создадим далее.
 


	2. Установка панели
 


	2.7 Теперь перейдем к созданию Remnawave, а после этого уже поднимем наш Caddy.
 


	 
 


	Переходим в папку Remnawave и создаем файл Docker-compose.yml:
 

cd ~/remnawave/ &amp;&amp; nano docker-compose.yml


	Устанавливать будем сейчас dev ветку (как пример), поэтому идем в репозиторий и забираем содержимое файла:
 


	https://github.com/remnawave/backend/blob/dev/docker-compose-prod.yml
 


	Но с корректировкой на ветку dev:
 


	  remnawave: 
	    image: remnawave/backend:dev
 


	МЫ СРАЗУ УСТАНОВИМ контейнер для страницы подписки
 

services:
  remnawave-db:
    image: postgres:17
    container_name: 'remnawave-db'
    hostname: remnawave-db
    restart: always
    env_file:
      - .env
    environment:
      - POSTGRES_USER=${POSTGRES_USER}
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
      - POSTGRES_DB=${POSTGRES_DB}
      - TZ=UTC
    ports:
      - '127.0.0.1:6767:5432'
    volumes:
      - remnawave-db-data:/var/lib/postgresql/data
    networks:
      - remnawave-network
    healthcheck:
      test: ['CMD-SHELL', 'pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}']
      interval: 3s
      timeout: 10s
      retries: 3

  remnawave:
    image: remnawave/backend:dev
    container_name: 'remnawave'
    hostname: remnawave
    restart: always
    ports:
      - '127.0.0.1:3000:3000'
    env_file:
      - .env
    networks:
      - remnawave-network
    depends_on:
      remnawave-db:
        condition: service_healthy

  remnawave-redis:
    image: valkey/valkey:8.0.2-alpine
    container_name: remnawave-redis
    hostname: remnawave-redis
    restart: always
    networks:
      - remnawave-network
    volumes:
      - remnawave-redis-data:/data
        
  remnawave-subscription-page:
     image: remnawave/subscription-page:latest
     container_name: remnawave-subscription-page
     hostname: remnawave-subscription-page
     restart: always
     environment:
         - REMNAWAVE_PLAIN_DOMAIN=panel.com
         - SUBSCRIPTION_PAGE_PORT=3010
         - META_TITLE="Subscription Page Title"
         - META_DESCRIPTION="Subscription Page Description"
     ports:
         - '127.0.0.1:3010:3010'
     networks:
         - remnawave-network

networks:
  remnawave-network:
    name: remnawave-network
    driver: bridge
    external: false

volumes:
  remnawave-db-data:
    driver: local
    external: false
    name: remnawave-db-data
  remnawave-redis-data:
    driver: local
    external: false
    name: remnawave-redis-data


	 
 


	Для страницы подписки замените в  - REMNAWAVE_PLAIN_DOMAIN=panel.com  на ваш домен панели
 


	Сохранили и закрыли.
 


	2.8. Создаем здесь же файл .env:
 

nano .env


	И вставляем в него содержимое из файла по ссылке:
 


	https://github.com/remnawave/backend/blob/dev/.env.sample
 


	А теперь вносим в содержимое корректировки:
 


	JWT токены:
 

### CHANGE DEFAULT VALUES ###
JWT_AUTH_SECRET=change_me
JWT_API_TOKENS_SECRET=change_me


	Значения генерируем здесь: https://jwtsecret.com/generate
 


	И вставляем (сгенерируйте свои комбинации!!!):
 

### CHANGE DEFAULT VALUES ###
JWT_AUTH_SECRET=6ac5b3ba99b94d9e0f6b9c242691c14e3bd54492b60aff7829e6b050535d8827278c098b42d6833a314af104f2c9da8046c33a14f45c00c43117dda0ba4ea25866a3562babea7ac59c523fea04cab6c24c4f191846b73ac7420fb265b0f910ad09018f662e8daf7e6bf8173546d89687fdb839fd14f34e754b20ae1e1d556ee3
JWT_API_TOKENS_SECRET=b3e86a783d3ca63941fe48eb2fdf8901fa294b777376c77b852c98cab8e136d12f4a0b0c898a60cdda6c1a76af6f7a9acdd292a4040bc0a4a7c34091ddb25158aa785c90391e094672da646712d2ae1e6f7e2bada14a2deb9099c291bc464115fb0ae71d042baacc8f7890ea55d8eb6a42d474604429978880e851632ce187a6


	Данные для телеграм:
 

### TELEGRAM ###
IS_TELEGRAM_ENABLED=false
TELEGRAM_BOT_TOKEN=change_me
TELEGRAM_ADMIN_ID=change_me
NODES_NOTIFY_CHAT_ID=change_me


	Я думаю вы справитесь самостоятельно
 


	Домен для Frontend:
 

### FRONT_END ###
FRONT_END_DOMAIN=*



	Указываем здесь наш домен для панели:
 

### FRONT_END ###
FRONT_END_DOMAIN=test.openode.ru


	Публичный домен подписки:
 

### SUBSCRIPTION PUBLIC DOMAIN ###
### RAW DOMAIN, WITHOUT HTTP/HTTPS, DO NOT PLACE / to end of domain ###
SUB_PUBLIC_DOMAIN=example.com


	А здесь мы уже указываем домен для нашей страницы подписки,  этот параметр будет подставляться в панеле.
 

### SUBSCRIPTION PUBLIC DOMAIN ###
### RAW DOMAIN, WITHOUT HTTP/HTTPS, DO NOT PLACE / to end of domain ###
SUB_PUBLIC_DOMAIN=link.openode.ru


	Данные метрики:
 

### PROMETHEUS ###
### Metrics are available at /api/metrics
METRICS_USER=admin
METRICS_PASS=admin


	Эти параметры можно не менять, они у нас не будут доступны извне, т.к. порт для метрик у нас 3001 и мы его не прокидываем, а будем потом использовать для сбора статистики в Prometheus.
 


	Параметры которые не интересны нам сейчас:
 

### WEBHOOK ###
WEBHOOK_ENABLED=false
### Only https:// is allowed
WEBHOOK_URL=https://webhook.site/1234567890
### This secret is used to sign the webhook payload, must be exact 64 characters. Only a-z, 0-9, A-Z are allowed.
WEBHOOK_SECRET_HEADER=vsmu67Kmg6R8FjIOF1WUY8LWBHie4scdEqrfsKmyf4IAf8dY3nFS0wwYHkhh6ZvQ

### CLOUDFLARE ###
# USED ONLY FOR docker-compose-prod-with-cf.yml
# NOT USED BY THE APP ITSELF
CLOUDFLARE_TOKEN=ey...


	База у нас в локалке, поэтому данные подключения к базе не критичны, можем оставить как есть: 
	 
	 
 

### Database ###
### For Postgres Docker container ###
# NOT USED BY THE APP ITSELF
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
POSTGRES_DB=postgres



	 
 


	3. Установка сервиса подписки
 


	Remnawave теперь имеет свою страницу подписки.
 


	
 


	Все контейнеры мы уже включили в самом начале.
 


	 
 


	Отлично.
 


	Теперь давайте поочередно все поднимем.:
 


	cd ~/remnawave &amp;&amp; docker compose up -d
 


	Подняли наш контейнер с панелью:
 


	
 


	 
 


	Теперь поднимем наш caddy:
 

cd ~/remnawave/caddy &amp;&amp; docker compose up -d


	
 


	 
 


	Если сделали правильно
 


	То мы попадем на страницу регистрации админа:
 


	 
 


	
 


	Регистрируемся, сохраняем пароль и радуемся успеху!!!!
 


	 
	как установить и подключить ноду:
 


	 Коротко как добавить ноду.
 


	 
 


	На нужно сервере создаем файл docker-compose.yml:
 

nano docker-compose.yml


	содержимое:
 

services:
  remnanode:
    container_name: remnanode
    hostname: remnanode
    image: remnawave/node:dev
    env_file:
      - .env
    network_mode: host


	создаем .env:
 

nano .env


	содержмое:
 

### APP ###
APP_PORT=3000

### XRAY ###
SSL_CERT="PUBLIC KEY FROM REMNAWAVE-PANEL"


	 
 


	вместо SSL_CERT="PUBLIC KEY FROM REMNAWAVE-PANEL"
 


	ВСтавляем то, что скопируете в панеле:
 


	
 


	 
 


	 
 


	Запускаем:
 

docker compose up -d


	 
 


	Вы также можете воспользоваться скриптом для установки ноды:
 

sudo bash -c "$(curl -sL https://github.com/DigneZzZ/remnawave-scripts/raw/main/remnanode.sh)" @ install


	 
 


	В панеле, указываем внутреннее имя, выбираем страну, указываем порт, и выбираем нужные инбаунды.]]></description><enclosure url="https://openode.xyz/uploads/monthly_2025_03/image.png.a6b2120cb27de806f6bb1e2c63022068.png" length="262934" type="image/png"/><pubDate>Sun, 09 Mar 2025 22:35:38 +0000</pubDate></item><item><title>&#x41F;&#x440;&#x43E;&#x431;&#x440;&#x43E;&#x441; &#x440;&#x43E;&#x443;&#x442;&#x438;&#x43D;&#x433;&#x430; &#x438; &#x441;&#x43E;&#x43E;&#x431;&#x449;&#x435;&#x43D;&#x438;&#x439; &#x434;&#x43B;&#x44F; &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x44F; Happ</title><link><![CDATA[https://openode.xyz/topic/1416-probros-routinga-i-soobscheniy-dlya-prilozheniya-happ/?do=findComment&comment=6541]]></link><description>&#x412;&#x441;&#x435;&#x43C; &#x43F;&#x440;&#x438;&#x432;&#x435;&#x442;! 
	 
	&#x412;&#x43E;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x443;&#x436;&#x435; &#x43C;&#x43D;&#x43E;&#x433;&#x438;&#x435; &#x438;&#x437; &#x432;&#x430;&#x441; &#x441;&#x43B;&#x44B;&#x448;&#x430;&#x43B;&#x438; &#x43F;&#x440;&#x43E; &#x43E;&#x447;&#x435;&#x43D;&#x44C; &#x43A;&#x440;&#x430;&#x441;&#x438;&#x432;&#x43E;&#x435; &#x438; &#x443;&#x434;&#x43E;&#x431;&#x43D;&#x43E;&#x435; &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x435; &#x432; &#x441;&#x430;&#x43C;&#x43E;&#x43C; &#x440;&#x430;&#x441;&#x446;&#x432;&#x435;&#x442;&#x435; &#x441;&#x432;&#x43E;&#x435;&#x439; &#x440;&#x430;&#x437;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x43A;&#x438;: Happ.
 


	&#x41E;&#x444;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x441;&#x430;&#x439;&#x442; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x44B;: happ.su
 


	&#x41F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x435; &#x431;&#x435;&#x441;&#x43F;&#x43B;&#x430;&#x442;&#x43D;&#x43E;&#x435; &#x438; &#x431;&#x435;&#x437; &#x440;&#x435;&#x43A;&#x43B;&#x430;&#x43C;&#x44B;.
 


	&#x415;&#x441;&#x442;&#x44C; &#x445;&#x43E;&#x440;&#x43E;&#x448;&#x430;&#x44F; &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x44F;, &#x43A;&#x430;&#x43A; &#x43F;&#x435;&#x440;&#x435;&#x434;&#x430;&#x432;&#x430;&#x442;&#x44C; &#x43F;&#x430;&#x440;&#x430;&#x43C;&#x435;&#x442;&#x440;&#x44B; &#x432; &#x441;&#x430;&#x43C;&#x43E; &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x435; - &#x442;&#x443;&#x442; &#x43A;&#x43E;&#x43D;&#x435;&#x447;&#x43D;&#x43E; &#x440;&#x435;&#x431;&#x44F;&#x442;&#x430;&#x43C; &#x440;&#x430;&#x437;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x447;&#x438;&#x43A;&#x430;&#x43C; 5&#x43A;&#x430;!
 


	https://www.happ.su/main/documentation/meta-info
 


	
 


	 
 


	&#x421;&#x435;&#x433;&#x43E;&#x434;&#x43D;&#x44F; &#x43C;&#x44B; &#x440;&#x430;&#x437;&#x431;&#x435;&#x440;&#x435;&#x43C; &#x43A;&#x430;&#x43A; &#x43F;&#x435;&#x440;&#x435;&#x434;&#x430;&#x442;&#x44C; &#x441;&#x43E;&#x43E;&#x431;&#x449;&#x435;&#x43D;&#x438;&#x435; announce &#x438; &#x440;&#x43E;&#x443;&#x442;&#x438;&#x43D;&#x433; &#x447;&#x435;&#x440;&#x435;&#x437; &#x43F;&#x43E;&#x434;&#x43F;&#x438;&#x441;&#x43A;&#x443; Marzban.
 


	&#x418;&#x43D;&#x444;&#x430; &#x43F;&#x43E; &#x440;&#x43E;&#x443;&#x442;&#x438;&#x43D;&#x433;&#x443; &#x43B;&#x435;&#x436;&#x438;&#x442; &#x43F;&#x43E; &#x44D;&#x442;&#x43E;&#x439; &#x441;&#x441;&#x44B;&#x43B;&#x43A;&#x435;:
 


	https://www.happ.su/main/documentation/routing
 


	 
 


	1. &#x41D;&#x430;&#x43C; &#x43D;&#x443;&#x436;&#x43D;&#x43E; &#x432;&#x437;&#x44F;&#x442;&#x44C; &#x43F;&#x43E;&#x441;&#x43B;&#x435;&#x434;&#x43D;&#x438;&#x439; &#x444;&#x430;&#x439;&#x43B; subscription.py &#x438;&#x437; &#x440;&#x435;&#x43F;&#x43E;&#x437;&#x438;&#x442;&#x43E;&#x440;&#x438;&#x44F;:
 


	&#x421;&#x441;&#x44B;&#x43B;&#x43A;&#x430; &#x440;&#x430;&#x441;&#x43F;&#x43E;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x44F; &#x431;&#x443;&#x434;&#x435;&#x442; &#x432;&#x441;&#x435;&#x433;&#x434;&#x430; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x43E;&#x439;:
 


	https://github.com/Gozargah/Marzban/blob/master/app/routers/subscription.py
 


	2. &#x422;&#x435;&#x43F;&#x435;&#x440;&#x44C; &#x438;&#x434;&#x435;&#x43C; &#x43D;&#x430; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;.
 


	3. &#x418;&#x434;&#x435;&#x43C; &#x432; &#x43F;&#x430;&#x43F;&#x43A;&#x443; /var/lib/marzban:
 

cd /var/lib/marzban


	4. &#x421;&#x43E;&#x437;&#x434;&#x430;&#x434;&#x438;&#x43C; &#x444;&#x430;&#x439;&#x43B;:
 

nano subscription.py


	5. &#x421;&#x43A;&#x43E;&#x43F;&#x438;&#x440;&#x443;&#x435;&#x43C; &#x441;&#x43E;&#x434;&#x435;&#x440;&#x436;&#x438;&#x43C;&#x43E;&#x435; &#x444;&#x430;&#x439;&#x43B;&#x430; &#x441;&#x43E; &#x441;&#x442;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x44B; &#x440;&#x435;&#x43F;&#x43E;&#x437;&#x438;&#x442;&#x43E;&#x440;&#x438;&#x44F;:
 


	
 


	6. &#x412;&#x441;&#x442;&#x430;&#x432;&#x438;&#x43C; &#x441;&#x43E;&#x434;&#x435;&#x440;&#x436;&#x438;&#x43C;&#x43E;&#x435; &#x432; &#x43D;&#x430;&#x448; &#x444;&#x430;&#x439;&#x43B;:
 


	
 


	7. &#x422;&#x435;&#x43F;&#x435;&#x440;&#x44C; &#x43F;&#x43E;&#x439;&#x434;&#x435;&#x43C; &#x435;&#x433;&#x43E; &#x440;&#x435;&#x434;&#x430;&#x43A;&#x442;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C;:
 


	&#x41D;&#x430;&#x43C; &#x43D;&#x443;&#x436;&#x435;&#x43D; &#x43F;&#x430;&#x440;&#x430;&#x43C;&#x435;&#x442;&#x440; 
 


	&#x41E;&#x43D;&#x430; &#x432;&#x441;&#x442;&#x440;&#x435;&#x447;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x434;&#x432;&#x430;&#x436;&#x434;&#x44B; &#x43F;&#x43E; &#x43A;&#x43E;&#x434;&#x443;.
 


	&#x412; &#x43D;&#x435;&#x433;&#x43E; &#x43D;&#x430;&#x43C; &#x438; &#x43D;&#x443;&#x436;&#x43D;&#x43E; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x438;&#x442;&#x44C; &#x434;&#x432;&#x435; &#x437;&#x430;&#x43F;&#x438;&#x441;&#x438; (&#x43D;&#x430; &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x440;&#x435; - &#x43C;&#x43E;&#x439; &#x443;&#x436;&#x435; &#x433;&#x43E;&#x442;&#x43E;&#x432;&#x44B;&#x439; &#x444;&#x430;&#x439;&#x43B;):
 


	
 


	&#x414;&#x430;&#x432;&#x430;&#x439;&#x442;&#x435; &#x434;&#x43B;&#x44F; &#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x441;&#x434;&#x435;&#x43B;&#x430;&#x435;&#x43C; announce.
 


	7.1. &#x427;&#x438;&#x442;&#x430;&#x435;&#x43C; &#x438;&#x437; &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x438; &#x43F;&#x440;&#x43E; announce:
 

 


	&#x41F;&#x43E;&#x43D;&#x438;&#x43C;&#x430;&#x435;&#x43C;: &#x41D;&#x430;&#x43C; &#x43D;&#x443;&#x436;&#x43D;&#x43E; &#x43A;&#x43E;&#x434;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x435; &#x432; base64 &#x444;&#x43E;&#x440;&#x43C;&#x430;&#x442; &#x438; &#x43C;&#x430;&#x43A;&#x441;&#x438;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; &#x434;&#x43B;&#x438;&#x43D;&#x430; &#x442;&#x435;&#x43A;&#x441;&#x442;&#x430; 200 &#x441;&#x438;&#x43C;&#x432;&#x43E;&#x43B;&#x43E;&#x432;.
 


	&#x418;&#x434;&#x435;&#x43C;  &#x43D;&#x430; &#x441;&#x430;&#x439;&#x442;:
 


	https://base64.ru/
 


	&#x41A;&#x43E;&#x434;&#x438;&#x440;&#x443;&#x435;&#x43C; &#x43D;&#x443;&#x436;&#x43D;&#x44B;&#x439; &#x43D;&#x430;&#x43C; &#x442;&#x435;&#x43A;&#x441;&#x442;:
 


	
 


	 
	&#x41A;&#x43E;&#x43F;&#x438;&#x440;&#x443;&#x435;&#x43C; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x435;&#x43D;&#x43D;&#x44B;&#x439; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442;:
 

0KHQv9Cw0YHQuNCx0L4g0YfRgtC+INC/0L7Qu9GM0LfRg9C10YLQtdGB0Ywg0L3QsNGI0LjQvCDRgdC10YDQstC40YHQvtC8IQ==


	&#x412;&#x441;&#x442;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x43C; &#x441; &#x43D;&#x43E;&#x432;&#x43E;&#x439; &#x441;&#x442;&#x440;&#x43E;&#x43A;&#x438;, &#x434;&#x43E;&#x431;&#x430;&#x432;&#x438;&#x432; &#x43F;&#x435;&#x440;&#x435;&#x434; &#x44D;&#x442;&#x438;&#x43C; base64:
 


	&#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x430;&#x435;&#x43C; &#x441;&#x442;&#x440;&#x43E;&#x43A;&#x443;:
 

"announce": "base64:0KHQv9Cw0YHQuNCx0L4g0YfRgtC+INC/0L7Qu9GM0LfRg9C10YLQtdGB0Ywg0L3QsNGI0LjQvCDRgdC10YDQstC40YHQvtC8IQ=="


	
 


	 
 


	&#x42D;&#x442;&#x443; &#x441;&#x442;&#x440;&#x43E;&#x43A;&#x443; &#x43D;&#x430;&#x43C; &#x43D;&#x443;&#x436;&#x43D;&#x43E; &#x432;&#x441;&#x442;&#x430;&#x432;&#x438;&#x442;&#x44C; &#x434;&#x432;&#x430;&#x436;&#x434;&#x44B;, &#x432;&#x442;&#x43E;&#x440;&#x43E;&#x439; &#x440;&#x430;&#x437; &#x432; &#x43A;&#x43E;&#x43D;&#x446;&#x435; &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;:
 


	
 


	 
 


	7.2. &#x422;&#x435;&#x43F;&#x435;&#x440;&#x44C; &#x43C;&#x44B; &#x43C;&#x43E;&#x436;&#x435;&#x43C; &#x432;&#x441;&#x442;&#x430;&#x432;&#x438;&#x442;&#x44C; &#x440;&#x43E;&#x443;&#x442;&#x438;&#x43D;&#x433;:
 

happ://routing/onadd/ewogICAgIk5hbWUiOiAiUm9zY29tVlBOIiwKICAgICJHbG9iYWxQcm94eSI6ICJ0cnVlIiwKICAgICJSZW1vdGVEbnMiOiAiOTQuMTQwLjE0LjE0IiwKICAgICJEb21lc3RpY0RucyI6ICI5NC4xNDAuMTUuMTUiLAogICAgIkdlb2lwdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oeWRyYXBvbmlxdWUvcm9zY29tdnBuLWdlb2lwL3JlbGVhc2VzL2Rvd25sb2FkLzIwMjUwMjA3MDQ0NC9nZW9pcC5kYXQiLAogICAgIkdlb3NpdGV1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2h5ZHJhcG9uaXF1ZS9yb3Njb212cG4tZ2Vvc2l0ZS9yZWxlYXNlcy9kb3dubG9hZC8yMDI1MDIxMDE4MTMvZ2Vvc2l0ZS5kYXQiLAogICAgIlJlbW90ZUROU1R5cGUiOiAiRG9VIiwKICAgICJSZW1vdGVETlNEb21haW4iOiAiaHR0cHM6Ly9kbnMuYWRndWFyZC1kbnMuY29tL2Rucy1xdWVyeSIsCiAgICAiUmVtb3RlRE5TSVAiOiAiOTQuMTQwLjE0LjE0IiwKICAgICJEb21lc3RpY0ROU1R5cGUiOiAiRG9VIiwKICAgICJEb21lc3RpY0ROU0RvbWFpbiI6ICJodHRwczovL2Rucy5hZGd1YXJkLWRucy5jb20vZG5zLXF1ZXJ5IiwKICAgICJEb21lc3RpY0ROU0lQIjogIjk0LjE0MC4xNS4xNSIsCiAgICAiRG5zSG9zdHMiOiB7fSwKICAgICJEaXJlY3RTaXRlcyI6IFsKICAgICAgICAiZ2Vvc2l0ZTpwcml2YXRlIiwKICAgICAgICAiZ2Vvc2l0ZTp0ZXN0IiwKICAgICAgICAiZ2Vvc2l0ZTpjYXRlZ29yeS1ydSIsCiAgICAgICAgImdlb3NpdGU6bWljcm9zb2Z0IiwKICAgICAgICAiZ2Vvc2l0ZTp3aW4tdXBkYXRlIiwKICAgICAgICAiZ2Vvc2l0ZTp3aW4tZXh0cmEiLAogICAgICAgICJnZW9zaXRlOmFwcGxlIiwKICAgICAgICAiZ2Vvc2l0ZTpnb29nbGUtcGxheSIsCiAgICAgICAgImdlb3NpdGU6dHdpdGNoIiwKICAgICAgICAiZ2Vvc2l0ZTpzdGVhbSIKICAgIF0sCiAgICAiRGlyZWN0SXAiOiBbCiAgICAgICAgImdlb2lwOnByaXZhdGUiLAogICAgICAgICJnZW9pcDp0ZXN0IiwKICAgICAgICAiZ2VvaXA6cnUiLAogICAgICAgICJnZW9pcDpieSIsCiAgICAgICAgImdlb2lwOmt6IgogICAgXSwKICAgICJQcm94eVNpdGVzIjogWwogICAgICAgICJnZW9zaXRlOmNhdGVnb3J5LWJhbi1ydSIsCiAgICAgICAgImdlb3NpdGU6ZGlzY29yZCIsCiAgICAgICAgImdlb3NpdGU6eW91dHViZSIsCiAgICAgICAgImdlb3NpdGU6dGlrdG9rIiwKICAgICAgICAiZ2Vvc2l0ZTpzaWduYWwiCiAgICBdLAogICAgIlByb3h5SXAiOiBbCiAgICAgICAgImdlb2lwOmRpc2NvcmQiLAogICAgICAgICJnZW9pcDp0aHJlZW1hIgogICAgXSwKICAgICJCbG9ja1NpdGVzIjogWwogICAgICAgICJnZW9zaXRlOndpbi1zcHkiLAogICAgICAgICJnZW9zaXRlOnRvcnJlbnQiCiAgICBdLAogICAgIkJsb2NrSXAiOiBbXSwKICAgICJEb21haW5TdHJhdGVneSI6ICJJUElmTm9uTWF0Y2giCn0=


	&#x41F;&#x440;&#x438;&#x43C;&#x435;&#x440; &#x440;&#x43E;&#x443;&#x442;&#x438;&#x43D;&#x433;&#x430; &#x432;&#x437;&#x44F;&#x43B; &#x438;&#x437; &#x44D;&#x442;&#x43E;&#x439; &#x440;&#x435;&#x43F;&#x44B;:  https://github.com/hydraponique/roscomvpn-happ-routing
 


	&#x427;&#x442;&#x43E;&#x431;&#x44B; &#x432;&#x441;&#x442;&#x430;&#x432;&#x438;&#x442;&#x44C; &#x435;&#x433;&#x43E; &#x438; &#x43F;&#x435;&#x440;&#x435;&#x434;&#x430;&#x442;&#x44C; &#x432; &#x437;&#x430;&#x433;&#x43E;&#x43B;&#x43E;&#x432;&#x43A;&#x435;, &#x43D;&#x430;&#x43C; &#x43D;&#x443;&#x436;&#x43D;&#x43E; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x438;&#x442;&#x44C; &#x441;&#x442;&#x440;&#x43E;&#x43A;&#x443; &#x432; &#x43D;&#x430;&#x448; &#x444;&#x430;&#x439;&#x43B;:
 

"routing": "happ://routing/onadd/ewogICAgIk5hbWUiOiAiUm9zY29tVlBOIiwKICAgICJHbG9iYWxQcm94eSI6ICJ0cnVlIiwKICAgICJSZW1vdGVEbnMiOiAiOTQuMTQwLjE0LjE0IiwKICAgICJEb21lc3RpY0RucyI6ICI5NC4xNDAuMTUuMTUiLAogICAgIkdlb2lwdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oeWRyYXBvbmlxdWUvcm9zY29tdnBuLWdlb2lwL3JlbGVhc2VzL2Rvd25sb2FkLzIwMjUwMjA3MDQ0NC9nZW9pcC5kYXQiLAogICAgIkdlb3NpdGV1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2h5ZHJhcG9uaXF1ZS9yb3Njb212cG4tZ2Vvc2l0ZS9yZWxlYXNlcy9kb3dubG9hZC8yMDI1MDIxMDE4MTMvZ2Vvc2l0ZS5kYXQiLAogICAgIlJlbW90ZUROU1R5cGUiOiAiRG9VIiwKICAgICJSZW1vdGVETlNEb21haW4iOiAiaHR0cHM6Ly9kbnMuYWRndWFyZC1kbnMuY29tL2Rucy1xdWVyeSIsCiAgICAiUmVtb3RlRE5TSVAiOiAiOTQuMTQwLjE0LjE0IiwKICAgICJEb21lc3RpY0ROU1R5cGUiOiAiRG9VIiwKICAgICJEb21lc3RpY0ROU0RvbWFpbiI6ICJodHRwczovL2Rucy5hZGd1YXJkLWRucy5jb20vZG5zLXF1ZXJ5IiwKICAgICJEb21lc3RpY0ROU0lQIjogIjk0LjE0MC4xNS4xNSIsCiAgICAiRG5zSG9zdHMiOiB7fSwKICAgICJEaXJlY3RTaXRlcyI6IFsKICAgICAgICAiZ2Vvc2l0ZTpwcml2YXRlIiwKICAgICAgICAiZ2Vvc2l0ZTp0ZXN0IiwKICAgICAgICAiZ2Vvc2l0ZTpjYXRlZ29yeS1ydSIsCiAgICAgICAgImdlb3NpdGU6bWljcm9zb2Z0IiwKICAgICAgICAiZ2Vvc2l0ZTp3aW4tdXBkYXRlIiwKICAgICAgICAiZ2Vvc2l0ZTp3aW4tZXh0cmEiLAogICAgICAgICJnZW9zaXRlOmFwcGxlIiwKICAgICAgICAiZ2Vvc2l0ZTpnb29nbGUtcGxheSIsCiAgICAgICAgImdlb3NpdGU6dHdpdGNoIiwKICAgICAgICAiZ2Vvc2l0ZTpzdGVhbSIKICAgIF0sCiAgICAiRGlyZWN0SXAiOiBbCiAgICAgICAgImdlb2lwOnByaXZhdGUiLAogICAgICAgICJnZW9pcDp0ZXN0IiwKICAgICAgICAiZ2VvaXA6cnUiLAogICAgICAgICJnZW9pcDpieSIsCiAgICAgICAgImdlb2lwOmt6IgogICAgXSwKICAgICJQcm94eVNpdGVzIjogWwogICAgICAgICJnZW9zaXRlOmNhdGVnb3J5LWJhbi1ydSIsCiAgICAgICAgImdlb3NpdGU6ZGlzY29yZCIsCiAgICAgICAgImdlb3NpdGU6eW91dHViZSIsCiAgICAgICAgImdlb3NpdGU6dGlrdG9rIiwKICAgICAgICAiZ2Vvc2l0ZTpzaWduYWwiCiAgICBdLAogICAgIlByb3h5SXAiOiBbCiAgICAgICAgImdlb2lwOmRpc2NvcmQiLAogICAgICAgICJnZW9pcDp0aHJlZW1hIgogICAgXSwKICAgICJCbG9ja1NpdGVzIjogWwogICAgICAgICJnZW9zaXRlOndpbi1zcHkiLAogICAgICAgICJnZW9zaXRlOnRvcnJlbnQiCiAgICBdLAogICAgIkJsb2NrSXAiOiBbXSwKICAgICJEb21haW5TdHJhdGVneSI6ICJJUElmTm9uTWF0Y2giCn0=


	 
 


	&#x41F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x44C; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x44B; &#x442;&#x430;&#x43A;&#x43E;&#x439; &#x432;&#x438;&#x434;:
 


	&#x414;&#x43B;&#x44F; &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x433;&#x43E; &#x443;&#x43F;&#x43E;&#x43C;&#x438;&#x43D;&#x430;&#x43D;&#x438;&#x44F;:
 


	
 


	&#x414;&#x43B;&#x44F; &#x432;&#x442;&#x43E;&#x440;&#x43E;&#x433;&#x43E; &#x443;&#x43F;&#x43E;&#x43C;&#x438;&#x43D;&#x430;&#x43D;&#x438;&#x44F;:
 


	
 


	&#x41E;&#x442;&#x43B;&#x438;&#x447;&#x43D;&#x43E;!
 


	&#x421;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x44F;&#x435;&#x43C; &#x444;&#x430;&#x439;&#x43B;: Ctrl + O
 


	&#x417;&#x430;&#x43A;&#x440;&#x44B;&#x432;&#x430;&#x435;&#x43C; &#x440;&#x435;&#x434;&#x430;&#x43A;&#x442;&#x43E;&#x440;: Ctrl + X
 


	 
 


	8. &#x418;&#x434;&#x435;&#x43C; &#x432; &#x43D;&#x430;&#x448; docker-compose.yml.
 


	&#x415;&#x441;&#x43B;&#x438; &#x443; &#x432;&#x430;&#x441; &#x441;&#x432;&#x435;&#x436;&#x438;&#x439; &#x441;&#x43A;&#x440;&#x438;&#x43F;&#x442;, &#x442;&#x43E; &#x43E;&#x43D; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x435;&#x43D; &#x43B;&#x435;&#x433;&#x43A;&#x43E;&#x439; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x43E;&#x439;:
 

marzban edit


	&#x415;&#x441;&#x43B;&#x438; &#x443; &#x432;&#x430;&#x441; &#x441;&#x442;&#x430;&#x440;&#x44B;&#x439; &#x441;&#x43A;&#x440;&#x438;&#x43F;&#x442;, &#x438; &#x43D;&#x435;&#x442; &#x44D;&#x442;&#x43E;&#x439; &#x444;&#x443;&#x43D;&#x43A;&#x446;&#x438;&#x438;, &#x442;&#x43E; &#x432;&#x440;&#x443;&#x447;&#x43D;&#x443;&#x44E;:
 

nano /opt/marban/docker-compose.yml


	9. &#x432; Volumes &#x43D;&#x430;&#x43C; &#x43D;&#x443;&#x436;&#x43D;&#x43E; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x443;&#x437;&#x438;&#x442;&#x44C; &#x43D;&#x435;&#x43E;&#x431;&#x445;&#x43E;&#x434;&#x438;&#x43C;&#x44B;&#x439; &#x444;&#x430;&#x439;&#x43B;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x439; &#x43C;&#x44B; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x43B;&#x438;:
 


	
 


	&#x414;&#x43E;&#x431;&#x430;&#x432;&#x438;&#x432; &#x441;&#x442;&#x440;&#x43E;&#x43A;&#x443;: 
 

      - /var/lib/marzban/subscription.py:/code/app/routers/subscription.py


	10. &#x415;&#x441;&#x43B;&#x438; &#x432;&#x44B; &#x432;&#x441;&#x435; &#x441;&#x434;&#x435;&#x43B;&#x430;&#x43B;&#x438; &#x43F;&#x440;&#x430;&#x432;&#x438;&#x43B;&#x44C;&#x43D;&#x43E;, &#x442;&#x43E; &#x432;&#x441;&#x435; &#x437;&#x430;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x435;&#x442;.
 


	&#x422;&#x435;&#x43F;&#x435;&#x440;&#x44C;, &#x432;&#x430;&#x43C; &#x43E;&#x441;&#x442;&#x430;&#x43B;&#x43E;&#x441;&#x44C; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x435;&#x440;&#x435;&#x437;&#x430;&#x43F;&#x443;&#x441;&#x442;&#x438;&#x442;&#x44C; marzban:
 

marzban restart


	11. &#x422;&#x435;&#x43F;&#x435;&#x440;&#x44C;, &#x43F;&#x440;&#x438; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x438; &#x43F;&#x43E;&#x434;&#x43F;&#x438;&#x441;&#x43A;&#x438; &#x438; &#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x438; &#x435;&#x451; (&#x43A;&#x430;&#x436;&#x434;&#x44B;&#x439; &#x440;&#x430;&#x437;!) &#x440;&#x43E;&#x443;&#x442;&#x438;&#x43D;&#x433; &#x431;&#x443;&#x434;&#x435;&#x442; &#x43F;&#x435;&#x440;&#x435;&#x437;&#x430;&#x43F;&#x438;&#x441;&#x430;&#x43D; &#x438; &#x432;&#x44B;&#x431;&#x440;&#x430;&#x43D; &#x43F;&#x43E; &#x443;&#x43C;&#x43E;&#x43B;&#x447;&#x430;&#x43D;&#x438;&#x44E; &#x442;&#x43E;&#x442; &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x439; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x438;&#x43B;&#x438; &#x432;&#x44B;, &#x430; &#x442;&#x430;&#x43A;&#x436;&#x435; &#x43F;&#x43E;&#x44F;&#x432;&#x438;&#x442;&#x441;&#x44F; &#x441;&#x43E;&#x43E;&#x431;&#x449;&#x435;&#x43D;&#x438;&#x435; &#x437;&#x430;&#x43A;&#x43E;&#x434;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x43E;&#x435; &#x432; announce.
 


	&#x423;&#x427;&#x422;&#x418;&#x422;&#x415;!
 


	&#x41F;&#x440;&#x438; &#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x438; Marzban (&#x432;&#x44B;&#x445;&#x43E;&#x434;&#x435; &#x43D;&#x43E;&#x432;&#x44B;&#x445; &#x432;&#x435;&#x440;&#x441;&#x438;&#x439;), &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x439; &#x444;&#x430;&#x439;&#x43B; &#x43B;&#x443;&#x447;&#x448;&#x435; &#x431;&#x443;&#x434;&#x435;&#x442; &#x43F;&#x435;&#x440;&#x435;&#x441;&#x43E;&#x437;&#x434;&#x430;&#x442;&#x44C; &#x43F;&#x43E;&#x43B;&#x43D;&#x43E;&#x441;&#x442;&#x44C;&#x44E;, &#x43B;&#x438;&#x431;&#x43E; &#x434;&#x43E;&#x43F;&#x43E;&#x43B;&#x43D;&#x438;&#x442;&#x44C; &#x435;&#x433;&#x43E; &#x432;&#x43D;&#x43E;&#x441;&#x438;&#x43C;&#x44B;&#x43C;&#x438; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F;&#x43C;&#x438; &#x432; &#x43D;&#x43E;&#x432;&#x44B;&#x445; &#x432;&#x435;&#x440;&#x441;&#x438;&#x44F;&#x445;.</description><enclosure url="https://openode.xyz/uploads/monthly_2025_02/image.png.b1109e0457b6a808dec6ac473b391389.png" length="81571" type="image/png"/><pubDate>Sat, 01 Feb 2025 18:02:50 +0000</pubDate></item><item><title>xHTTP Inbound</title><link><![CDATA[https://openode.xyz/topic/1384-xhttp-inbound/?do=findComment&comment=6119]]></link><description><![CDATA[Всем привет! 
	 
	Еще в прошлом месяце, вышел новый транспортный протокол xHTTP. Он заменит собой полностью http, поэтому пока еще есть обратная совместимость у последних версий ядер xRay.
 


	Почитать можно тут: https://github.com/XTLS/Xray-core/discussions/4113#discussioncomment-11468947
 


	Для тех кто не в курсе, есть генератор инбаундов:
 


	https://azavaxhuman.github.io/MarzbanInboundGenerator/v2/
 


	тут можно посмотреть другие примеры конфигураций:
 


	https://github.com/XTLS/Xray-examples
 


	Но практически никто не выкладывает готового инбаунда, который сможет работать на marzban.
 


	Я больше месяца пытался собрать универсальный, работающий конфиг.
 


	И только в этой вариации у меня заработало. Работает на v2box на андроиде и на Streisand на iOS.
 


	Условия: 
	Послдедняя версия ядра на сервере и ноде (&gt;24.11.30)
 


	сам конфиг:
 

{
      "tag": "VLESS-XHTTP-REALITY",
      "listen": "0.0.0.0",
      "port": 443,
      "protocol": "vless",
      "settings": {
        "clients": [],
        "decryption": "none",
        "fallbacks": []
      },
      "streamSettings": {
        "network": "xhttp",
        "realitySettings": {
          "dest": "ftp.debian.org:443",
          "maxClient": "",
          "maxTimediff": 0,
          "minClient": "",
          "privateKey": "YOUR PRIVATE KEY",
          "serverNames": [
            "ftp.debian.org"
          ],
          "shortIds": [
            ""
          ],
          "show": false,
          "xver": 0
        },
        "security": "reality",
        "xhttpSettings": {
          "host": "ftp.debian.org",
          "path": "/",
          "mode": "auto",
          "extra": {
            "headers": {},
            "xPaddingBytes": "100-1000",
            "noGRPCHeader": false,
            "noSSEHeader": false,
            "scMaxEachPostBytes": 1000000,
            "scMinPostsIntervalMs": 30,
            "scMaxBufferedPosts": 30,
            "xmux": {
              "maxConcurrency": "16-32",
              "maxConnections": 0,
              "cMaxReuseTimes": "64-128",
              "cMaxLifetimeMs": 0,
              "hMaxRequestTimes": "800-900",
              "hKeepAlivePeriod": 0
            },
            "sockopt": {}
          }
        },
        "sniffing": {
          "destOverride": [
            "http",
            "tls",
            "quic",
            "fakedns"
          ],
          "enabled": true,
          "metadataOnly": true,
          "routeOnly": true
        }
      }
    }


	 
 


	 
 


	Есть еще вариант с TLS. 
	Но его работоспособность не проверял.
 

"tag": "VLess-XHTTP-TLS",
      "listen": "0.0.0.0",
      "protocol": "vless",
      "port": 2096,
      "settings": {
        "decryption": "none",
        "clients": []
      },
      "streamSettings": {
        "network": "xhttp",
        "xhttpSettings": {
          "path": "/yourpath?ed=2096",
          "host": "sub.domain.com",
          "maxUploadSize": 1500000,
          "maxConcurrentUploads": 150,
          "minUploadInterval": 30,
          "paddingBytes": 500,
          "noSSEHeader": false,
          "maxConcurrency": 24,
          "maxReuseTimes": 96,
          "maxLifetime": 0
        },
        "security": "tls",
        "tlsSettings": {
          "serverName": "sub.domain.com",
          "certificates": [
            {
              "ocspStapling": 3600,
              "certificateFile": "/var/lib/marzban/ca/cert.crt",
              "keyFile": "/var/lib/marzban/ca/private.key"
            }
          ],
          "minVersion": "1.0",
          "cipherSuites": "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256:TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256:TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384:TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384:TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
        }
      },
      "sniffing": {
        "enabled": true,
        "destOverride": [
          "http",
          "tls",
          "quic"
        ]
      }
    },


	 
 


	 
 


	Указанный SNI дан для примера!
 


	Все требования для него как всегда остаются!]]></description><enclosure url="https://openode.xyz/uploads/monthly_2023_11/photo_2023-11-02_16-41-40.jpg.598d66760e16c146fa6bd601e84e3c3e.jpg" length="26898" type="image/jpeg"/><pubDate>Tue, 17 Dec 2024 11:05:05 +0000</pubDate></item><item><title>&#x422;&#x440;&#x438;&#x433;&#x433;&#x435;&#x440; &#x411;&#x414;: &#x410;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x43C; FLOW &#x43D;&#x43E;&#x432;&#x44B;&#x43C; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44F;&#x43C; &#x43F;&#x440;&#x438; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x43D;&#x438;&#x438;</title><link><![CDATA[https://openode.xyz/topic/1343-trigger-bd-avtomaticheski-prostavlyaem-flow-novym-polzovatelyam-pri-sozdanii/?do=findComment&comment=5618]]></link><description>&#x418;&#x43D;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x446;&#x438;&#x44F; &#x434;&#x430;&#x43D;&#x43D;&#x430;&#x44F; &#x432; &#x43F;&#x435;&#x440;&#x432;&#x443;&#x44E; &#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x44C; &#x434;&#x43B;&#x44F; &#x43F;&#x440;&#x43E;&#x434;&#x432;&#x438;&#x43D;&#x443;&#x442;&#x44B;&#x445; &#x1F642;
 


	&#x414;&#x43B;&#x44F; &#x44D;&#x442;&#x43E;&#x433;&#x43E;, &#x43D;&#x430;&#x43C; &#x43F;&#x43E;&#x442;&#x440;&#x435;&#x431;&#x443;&#x435;&#x442;&#x441;&#x44F; PhpMyAdmin &#x443;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x43D;&#x44B;&#x439; &#x434;&#x43B;&#x44F; &#x432;&#x430;&#x448;&#x435;&#x439; &#x431;&#x430;&#x437;&#x44B; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;.
 


	&#x410;&#x432;&#x442;&#x43E;&#x440;&#x438;&#x437;&#x443;&#x439;&#x442;&#x435;&#x441;&#x44C; &#x432; PMA.
 


	&#x412;&#x44B;&#x431;&#x438;&#x440;&#x430;&#x435;&#x43C; &#x432;&#x430;&#x448;&#x443; &#x411;&#x414; (&#x432; &#x43D;&#x430;&#x448;&#x435;&#x43C; &#x441;&#x43B;&#x443;&#x447;&#x430;&#x435; &#x44D;&#x442;&#x43E; Marzban)
 


	&#x418; &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x438;&#x442;&#x44C; &#x432; &#x43D;&#x435;&#x439; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x43E;&#x439; SQL &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;: 
 


	 
 

DELIMITER //
CREATE TRIGGER DEFAULT_FLOW
BEFORE INSERT ON proxies
FOR EACH ROW
BEGIN
    IF NEW.type = 'VLESS' AND JSON_UNQUOTE(JSON_EXTRACT(NEW.settings, '$.flow')) = '' THEN
        SET NEW.settings = JSON_SET(NEW.settings, '$.flow', 'xtls-rprx-vision');
    END IF;
END;
//
DELIMITER ;


	&#x411;&#x43B;&#x430;&#x433;&#x43E;&#x434;&#x430;&#x440;&#x44F; &#x44D;&#x442;&#x43E;&#x43C;&#x443;, &#x432;&#x44B; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x435;&#x442;&#x435; &#x443;&#x441;&#x43B;&#x43E;&#x432;&#x438;&#x435;-&#x442;&#x440;&#x438;&#x433;&#x433;&#x435;&#x440;: &#x414;&#x43E;&#x431;&#x430;&#x432;&#x43B;&#x44F;&#x442;&#x44C; FLOW &#x43F;&#x440;&#x438; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x43D;&#x438;&#x438; &#x43D;&#x43E;&#x432;&#x43E;&#x433;&#x43E; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44F; &#x434;&#x43B;&#x44F; VLESS.
 


	 
 


	&#x427;&#x442;&#x43E;&#x431;&#x44B; &#x43E;&#x442;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x44C;, &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x438;&#x442;&#x44C;: 
	 
 

DROP TRIGGER DEFAULT_FLOW;</description><enclosure url="https://openode.xyz/uploads/monthly_2023_11/photo_2023-11-02_16-41-40.jpg.598d66760e16c146fa6bd601e84e3c3e.jpg" length="26898" type="image/jpeg"/><pubDate>Thu, 07 Nov 2024 11:42:34 +0000</pubDate></item><item><title>Cloudflare &#x43A;&#x430;&#x43A; &#x43E;&#x442;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x44C; ECH (TLS 1.3)?</title><link><![CDATA[https://openode.xyz/topic/1342-cloudflare-kak-otklyuchit-ech-tls-13/?do=findComment&comment=5597]]></link><description>&#x420;&#x41A;&#x41D; &#x441;&#x435;&#x433;&#x43E;&#x434;&#x43D;&#x44F; &#x43D;&#x43E;&#x447;&#x44C;&#x44E; (06.11.2024) &#x437;&#x430;&#x431;&#x43B;&#x43E;&#x43A;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43B; &#x415;&#x421;&#x41D; &#x43E;&#x442; Cloudflare &#x441;&#x434;&#x435;&#x43B;&#x430;&#x432; &#x43D;&#x435;&#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x43D;&#x44B;&#x43C;&#x438; &#x432;&#x441;&#x435; &#x441;&#x430;&#x439;&#x442;&#x44B; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x44E;&#x449;&#x438;&#x435; Proxied &#x43E;&#x442; CF, &#x430; &#x442;&#x430;&#x43A;&#x436;&#x435; &#x442;&#x435; &#x436;&#x435; &#x441;&#x435;&#x440;&#x442;&#x438;&#x444;&#x438;&#x43A;&#x430;&#x442;&#x44B; &#x441; TLS 1.3.
 


	&#x41D;&#x430; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x439; &#x43C;&#x43E;&#x43C;&#x435;&#x43D;&#x442; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x443; &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x440;&#x435;&#x448;&#x438;&#x442;&#x44C; &#x442;&#x440;&#x435;&#x43C;&#x44F; &#x43F;&#x443;&#x442;&#x44F;&#x43C;&#x438;:
 


	
		&#x41D;&#x435; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x420;&#x43E;&#x441;&#x441;&#x438;&#x439;&#x441;&#x43A;&#x438;&#x435; &#x430;&#x434;&#x440;&#x435;&#x441;&#x430;;
	
	
		&#x41E;&#x442;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x44C; &#x437;&#x430;&#x449;&#x438;&#x442;&#x443; ECH
	
	
		&#x41E;&#x442;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x44C; TLS 1.3 &#x432; &#x431;&#x440;&#x430;&#x443;&#x437;&#x435;&#x440;&#x435;;
	



	&#x41A;&#x430;&#x43A; &#x43E;&#x442;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x44C; Cloudflare ECH?
 


	&#x41F;&#x43E;&#x43B;&#x43D;&#x43E;&#x435; &#x43E;&#x442;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x438;&#x435; TLS 1.3 &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x431;&#x44B;&#x442;&#x44C; &#x43D;&#x435; &#x441;&#x43E;&#x432;&#x441;&#x435;&#x43C; &#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x44B;&#x43C; &#x441;&#x43F;&#x43E;&#x441;&#x43E;&#x431;&#x43E;&#x43C;. &#x415;&#x441;&#x43B;&#x438; &#x431;&#x43B;&#x43E;&#x43A;&#x438;&#x440;&#x43E;&#x432;&#x43A;&#x438; &#x441;&#x43D;&#x438;&#x43C;&#x443;&#x442;, &#x440;&#x435;&#x43A;&#x43E;&#x43C;&#x435;&#x43D;&#x434;&#x443;&#x44E; &#x435;&#x433;&#x43E; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x44C;.
 


	&#x41E;&#x442;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x435;&#x43C; &#x447;&#x435;&#x440;&#x435;&#x437; API &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;:
 


	 1. &#x41F;&#x43E;&#x43B;&#x443;&#x447;&#x435;&#x43D;&#x438;&#x435; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445; &#x434;&#x43B;&#x44F; API Cloudflare
 


	&#x427;&#x442;&#x43E;&#x431;&#x44B; &#x43E;&#x442;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x44C; ECH, &#x432;&#x430;&#x43C; &#x43F;&#x43E;&#x43D;&#x430;&#x434;&#x43E;&#x431;&#x44F;&#x442;&#x441;&#x44F; Global API Key &#x438; Zone ID &#x432;&#x430;&#x448;&#x435;&#x433;&#x43E; &#x434;&#x43E;&#x43C;&#x435;&#x43D;&#x430;.
 


	Global API Key. &#x41F;&#x435;&#x440;&#x435;&#x439;&#x434;&#x438;&#x442;&#x435; &#x43D;&#x430; &#x441;&#x442;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x443; Cloudflare &#x43F;&#x43E; &#x441;&#x43B;&#x435;&#x434;&#x443;&#x44E;&#x449;&#x435;&#x439; &#x441;&#x441;&#x44B;&#x43B;&#x43A;&#x435; &#x438; &#x43D;&#x430;&#x439;&#x434;&#x438;&#x442;&#x435; &#x432;&#x430;&#x448; &#x433;&#x43B;&#x43E;&#x431;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; API-&#x43A;&#x43B;&#x44E;&#x447;: https://dash.cloudflare.com/profile/api-tokens
 


	Zone ID. &#x41F;&#x435;&#x440;&#x435;&#x439;&#x434;&#x438;&#x442;&#x435; &#x432; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x435; &#x432;&#x430;&#x448;&#x438;&#x43C; &#x434;&#x43E;&#x43C;&#x435;&#x43D;&#x43E;&#x43C; &#x43D;&#x430; Cloudflare &#x438; &#x43F;&#x440;&#x43E;&#x43A;&#x440;&#x443;&#x442;&#x438;&#x442;&#x435; &#x432;&#x43D;&#x438;&#x437; &#x441;&#x442;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x443;. &#x41D;&#x430;&#x439;&#x434;&#x438;&#x442;&#x435; &#x441;&#x442;&#x440;&#x43E;&#x43A;&#x443; Zone ID &#x438; &#x441;&#x43A;&#x43E;&#x43F;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x435;&#x451;.
 


	2. &#x41E;&#x442;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x438;&#x435; ECH &#x447;&#x435;&#x440;&#x435;&#x437; API Cloudflare
 


	&#x422;&#x435;&#x43F;&#x435;&#x440;&#x44C;, &#x43A;&#x43E;&#x433;&#x434;&#x430; &#x443; &#x432;&#x430;&#x441; &#x435;&#x441;&#x442;&#x44C; Global API Key &#x438; Zone ID, &#x432;&#x44B; &#x43C;&#x43E;&#x436;&#x435;&#x442;&#x435; &#x43E;&#x442;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x44C; ECH &#x441; &#x43F;&#x43E;&#x43C;&#x43E;&#x449;&#x44C;&#x44E; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x44B; curl. &#x412;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x438;&#x442;&#x435; &#x441;&#x43B;&#x435;&#x434;&#x443;&#x44E;&#x449;&#x443;&#x44E; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x443;, &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x438;&#x432; {ID_ZONE} &#x43D;&#x430; &#x432;&#x430;&#x448; Zone ID, &#x430; {ACCOUNT_EMAIL} &#x438; {GLOBAL_API_KEY} &#x43D;&#x430; &#x432;&#x430;&#x448; email &#x438; API-&#x43A;&#x43B;&#x44E;&#x447; &#x441;&#x43E;&#x43E;&#x442;&#x432;&#x435;&#x442;&#x441;&#x442;&#x432;&#x435;&#x43D;&#x43D;&#x43E;:
 

curl -X PATCH "https://api.cloudflare.com/client/v4/zones/{ID_ZONE}/settings/ech" \ -H "X-Auth-Email: {ACCOUNT_EMAIL}" \ -H "X-Auth-Key: {GLOBAL_API_KEY}" \ -H "Content-Type:application/json" --data '{"id":"ech","value":"off"}'


	&#x412;&#x430;&#x440;&#x438;&#x430;&#x43D;&#x442; 2: &#x41E;&#x442;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x438;&#x435; ECH &#x447;&#x435;&#x440;&#x435;&#x437; Postman
 


	&#x412;&#x44B; &#x442;&#x430;&#x43A;&#x436;&#x435; &#x43C;&#x43E;&#x436;&#x435;&#x442;&#x435; &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x438;&#x442;&#x44C; &#x43E;&#x442;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x438;&#x435; &#x447;&#x435;&#x440;&#x435;&#x437; Postman:
 


	1. &#x412; Postman &#x432;&#x44B;&#x431;&#x435;&#x440;&#x438;&#x442;&#x435; &#x43C;&#x435;&#x442;&#x43E;&#x434; PATCH &#x438; &#x432;&#x432;&#x435;&#x434;&#x438;&#x442;&#x435; URL: 
	https://api.cloudflare.com/client/v4/zones/{ID_ZONE}/settings/ech
 


	2. &#x412; Headers &#x434;&#x43E;&#x431;&#x430;&#x432;&#x44C;&#x442;&#x435; &#x441;&#x43B;&#x435;&#x434;&#x443;&#x44E;&#x449;&#x438;&#x435; &#x43F;&#x43E;&#x43B;&#x44F;:
 

X-Auth-Email: &#x432;&#x430;&#x448; email-&#x430;&#x434;&#x440;&#x435;&#x441; Cloudflare.

X-Auth-Key: &#x432;&#x430;&#x448; Global API Key.

Content-Type: application/json


	&#x412; Body &#x432;&#x44B;&#x431;&#x435;&#x440;&#x438;&#x442;&#x435; raw &#x438; &#x432;&#x432;&#x435;&#x434;&#x438;&#x442;&#x435; &#x441;&#x43B;&#x435;&#x434;&#x443;&#x44E;&#x449;&#x438;&#x439; JSON:
 

{"id": "ech", "value": "off"}</description><pubDate>Wed, 06 Nov 2024 08:40:49 +0000</pubDate></item><item><title>&#x420;&#x430;&#x437;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x43A;&#x430; &#x441;&#x442;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x44B; &#x43F;&#x43E;&#x434;&#x43F;&#x438;&#x441;&#x43A;&#x438;</title><link><![CDATA[https://openode.xyz/topic/1339-razrabotka-stranitsy-podpiski/?do=findComment&comment=5372]]></link><description>&#x412;&#x441;&#x435;&#x43C; &#x43F;&#x440;&#x438;&#x432;&#x435;&#x442;!
 


	&#x41F;&#x440;&#x435;&#x434;&#x43B;&#x430;&#x433;&#x430;&#x44E;:
 


	&#x421;&#x43A;&#x438;&#x43D;&#x443;&#x442;&#x44C;&#x441;&#x44F; &#x43D;&#x430; &#x437;&#x430;&#x43A;&#x430;&#x437;&#x43D;&#x443;&#x44E; &#x440;&#x430;&#x437;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x43A;&#x443; &#x434;&#x438;&#x437;&#x430;&#x439;&#x43D;&#x430; &#x441;&#x442;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x44B; &#x43F;&#x43E;&#x434;&#x43F;&#x438;&#x441;&#x43A;&#x438; &#x434;&#x43B;&#x44F; &#x442;&#x435;&#x445; &#x43A;&#x442;&#x43E; &#x441;&#x43A;&#x438;&#x43D;&#x443;&#x43B;&#x441;&#x44F;
 


	&#x421;&#x43E;&#x432;&#x43C;&#x435;&#x441;&#x442;&#x43D;&#x43E;&#x435; &#x444;&#x43E;&#x440;&#x43C;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x435; &#x422;&#x417;.
 


	&#x41F;&#x440;&#x435;&#x434;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x44F; &#x43F;&#x43E; &#x434;&#x438;&#x437;&#x430;&#x439;&#x43D;&#x435;&#x440;&#x443; &#x438; &#x432;&#x435;&#x440;&#x441;&#x442;&#x430;&#x43B;&#x44C;&#x449;&#x438;&#x43A;&#x443; &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x442;&#x43E;&#x436;&#x435; &#x441;&#x44E;&#x434;&#x430; &#x432;&#x44B;&#x43B;&#x43E;&#x436;&#x438;&#x442;&#x44C;.
 


	 
 


	&#x417;&#x430;&#x434;&#x430;&#x447;&#x430;:
 


	
		&#x423;&#x43D;&#x438;&#x43A;&#x430;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; &#x441;&#x442;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x430; &#x434;&#x43B;&#x44F; &#x443;&#x447;&#x430;&#x441;&#x442;&#x43D;&#x438;&#x43A;&#x43E;&#x432; &#x441;&#x43E;&#x43E;&#x431;&#x449;&#x435;&#x441;&#x442;&#x432;&#x430;
	
	
		&#x41B;&#x435;&#x433;&#x43A;&#x438;&#x439; &#x43A;&#x440;&#x430;&#x441;&#x438;&#x432;&#x44B;&#x439; &#x434;&#x438;&#x437;&#x430;&#x439;&#x43D;
	
	
		&#x41F;&#x440;&#x43E;&#x441;&#x442;&#x43E;&#x435; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x435;
	
	
		3-4 &#x432;&#x438;&#x434;&#x430; &#x446;&#x432;&#x435;&#x442;&#x430; &#x438; &#x437;&#x430;&#x433;&#x43E;&#x43B;&#x43E;&#x432;&#x43A;&#x430;.
	



	&#x411;&#x443;&#x434;&#x435;&#x43C; &#x43C;&#x443;&#x442;&#x438;&#x442;&#x44C;?
 


	&#x412;&#x43C;&#x435;&#x441;&#x442;&#x435; &#x431;&#x443;&#x434;&#x435;&#x442; &#x44F;&#x432;&#x43D;&#x43E; &#x434;&#x435;&#x448;&#x435;&#x432;&#x43B;&#x435;.
 


	&#x41F;&#x440;&#x430;&#x439;&#x441; &#x43F;&#x43E;&#x43A;&#x430; &#x43D;&#x435;&#x438;&#x437;&#x432;&#x435;&#x441;&#x442;&#x43D;&#x44B;&#x439;, &#x431;&#x443;&#x434;&#x435;&#x43C; &#x444;&#x43E;&#x440;&#x43C;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x438;&#x441;&#x445;&#x43E;&#x434;&#x44F; &#x438;&#x437; &#x422;&#x417; &#x438; &#x43A;&#x43E;&#x43B;&#x438;&#x447;&#x435;&#x441;&#x442;&#x432;&#x430; &#x443;&#x447;&#x430;&#x441;&#x442;&#x43D;&#x438;&#x43A;&#x43E;&#x432;.</description><enclosure url="https://openode.xyz/uploads/monthly_2023_11/photo_2023-11-02_16-41-40.jpg.598d66760e16c146fa6bd601e84e3c3e.jpg" length="26898" type="image/jpeg"/><pubDate>Mon, 28 Oct 2024 12:09:38 +0000</pubDate></item><item><title>&#x410;&#x43D;&#x43E;&#x43D;&#x441; &#x441;&#x442;&#x430;&#x442;&#x44C;&#x438; - &#x423;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43A;&#x430; Marzban &#x437;&#x430; Caddy (&#x441; MySQL &#x441;&#x440;&#x430;&#x437;&#x443;) &#x418;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x435;&#x43C; Marzban.socket &#x434;&#x43B;&#x44F; &#x43F;&#x43E;&#x434;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x438;&#x439;</title><link><![CDATA[https://openode.xyz/topic/1323-anons-stati-ustanovka-marzban-za-caddy-s-mysql-srazu-ispolzuem-marzbansocket-dlya-podklyucheniy/?do=findComment&comment=5225]]></link><description>&#x412;&#x441;&#x435;&#x43C; &#x43F;&#x440;&#x438;&#x432;&#x435;&#x442;!
 


	&#x410;&#x43A;&#x442;&#x443;&#x430;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; &#x438; &#x441;&#x430;&#x43C;&#x430;&#x44F; &#x441;&#x432;&#x435;&#x436;&#x430;&#x44F; &#x438;&#x43D;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x446;&#x438;&#x44F; &#x43F;&#x43E; &#x443;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43A;&#x435; Marzban 0.7.0 &#x441;&#x43E; &#x432;&#x441;&#x435;&#x43C;&#x438; &#x430;&#x441;&#x43F;&#x435;&#x43A;&#x442;&#x430;&#x43C;&#x438; &#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x43E;&#x441;&#x442;&#x438;
 


	
		&#x420;&#x430;&#x437;&#x431;&#x435;&#x440;&#x435;&#x43C;&#x441;&#x44F; &#x43E;&#x43F;&#x44F;&#x442;&#x44C; &#x432; &#x442;&#x435;&#x43E;&#x440;&#x438;&#x438;
	
	
		&#x423;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x43C; Caddy
	
	
		&#x423;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x43C; Marzban
	
	
		&#x41D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x438;&#x43C; ENV
	
	
		&#x421;&#x43F;&#x440;&#x44F;&#x447;&#x435;&#x43C; &#x437;&#x430; &#x43E;&#x431;&#x440;&#x430;&#x442;&#x43D;&#x44B;&#x43C; &#x43F;&#x440;&#x43E;&#x43A;&#x441;&#x438; &#x43D;&#x430;&#x448;&#x443; &#x43F;&#x430;&#x43D;&#x435;&#x43B;&#x44C; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x44F; Marzban.socket
	
	
		&#x420;&#x430;&#x437;&#x434;&#x435;&#x43B;&#x438;&#x43C; &#x43D;&#x430;&#x448;&#x438; &#x43F;&#x43E;&#x434;&#x43F;&#x438;&#x441;&#x43A;&#x438; &#x438; &#x43F;&#x430;&#x43D;&#x435;&#x43B;&#x44C; &#x43D;&#x430; &#x440;&#x430;&#x437;&#x43D;&#x44B;&#x435; &#x43F;&#x43E;&#x434;&#x434;&#x43E;&#x43C;&#x435;&#x43D;&#x44B;
	



	&#x421;&#x442;&#x430;&#x442;&#x44C;&#x44F; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x43D;&#x430; &#x43F;&#x43E; &#x43F;&#x43E;&#x434;&#x43F;&#x438;&#x441;&#x43A;&#x435;: https://openode.xyz/subscriptions/</description><pubDate>Fri, 18 Oct 2024 23:18:09 +0000</pubDate></item><item><title>&#x423;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43A;&#x430; Marzban &#x437;&#x430; Caddy (&#x441; MySQL &#x441;&#x440;&#x430;&#x437;&#x443;) [&#x427;&#x430;&#x441;&#x442;&#x44C; 1] - &#x418;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x435;&#x43C; Marzban.socket &#x434;&#x43B;&#x44F; &#x43F;&#x43E;&#x434;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x438;&#x439;</title><link><![CDATA[https://openode.xyz/topic/1322-ustanovka-marzban-za-caddy-s-mysql-srazu-chast-1-ispolzuem-marzbansocket-dlya-podklyucheniy/?do=findComment&comment=5224]]></link><description><![CDATA[Всем привет!
 


	Уже опубликовав статью про установку MarzNeshin, понял что старая версия моей инструкции устарела и морально и технически, учитывая что вышла свежая версия Marzban, которая привнесла большое количество изменений.
 


	С момента написания моей статьи по ФэнШую прошло больше полугода, а она остается актуальной. И этой концепции я придерживаюсь.
 


	Сегодня мы разберем установку с нуля.
 


	0. Вводная.
 


	На момент написания статьи, мой PR к скриптам установки находится на рассмотрении, ждем пока Saint сам протестирует установку и примет PR.
 


	https://github.com/Gozargah/Marzban-scripts/pull/29
 


	Что изменилось в скрипте:
 


	
		Добавлена возможность выбора версии --dev
	
	
		Добавлена возможность установки сразу с базой данных --database mysql или --database mariadb
	
	
		Обновлена функцию обновления ядра Xray, сделал также красиво как и обновление в marzban-node, без лишних текстов и уведомлений.
	
	
		Изменился формат выбора версии для установки:  --version v0.5.2
	



	Пока ждем обновления офф скриптов, можно воспользоваться моей репой: 
	https://github.com/DigneZzZ/Marzban-scripts-beta
 


	Что изменилось в Marzban начиная с версии 0.7.0 я расписывал здесь: 
 


	 
 



	Что изменилось в концепции установки:
 


	
		Теперь все свои сборки  я ставлю в сеть Docker, а доступ к ним организовываю через Caddy. В целом это легко и просто. А главное быстро.
	
	
		Каждой ноде свой инбаунд
	
	
		Мэйн панель - только для администрирования
	
	
		БД только MySQL/MariaDB
	



	Данная статья и данное решение не позволит вам подключаться к Main серверу через прокси-подключения! 
	Эта статья и эта реализация только для ситуаций когда у вас подключение идет ТОЛЬКО К НОДАМ!
 


	1. Подготовка сервера 
 


	1.1. Аренда сервера
 


	Если ваш сервер Marzban уже приносит, или планирует приносить хороший доход, тогда вам нужно обеспечить достаточный уровень надежности вашей инфраструктуры. 
	1. Не нужно экономить на хороших и надежных серверах 
	2. Не нужно экономить на ресурсах для хорошей нагрузки 
	3. Не нужно экономить на стоимости ваш серверов для НОД - стабильность подключений и качество связи - это обязательное условия роста вашего "бизнеса"/"проекта" 
	 
	1. Брать сервера под Мэйн в идеале нужно у крупных провайдеров, ориентированных на корпоративных клиентов. Примеры: Selectel, Cloud.Vk.Com, Yandex Cloud, Cloud.ru и др.. 
	Также можно рассматривать крупных провайдеров типа: AWS, Vultr, Kamatera, Hetzner, но опять же - тарифы выбираем с выделенными ядрами, не Шэред, и главное - должна быть 100% гарантия что ваш сервер не удалят и вы сможете всегда его оплачивать. 
	2. Ситуации с сайтами могут быть самыми разными, начиная от ДДоС атак, заканчивая наплывом клиентов. Но конечно про экономику забывать не нужно. 
	3. Чем лучше провайдер и каналы - тем довольнее будут клиенты. Не нужно стараться дать им 30 стран на выбор, уверяю вас, они не оценят. Отталкивайтесь от географии ваших клиентов. Для РФ это сервер в Европе. ОООЧень редко кому нужна локация в США.. и тем более где нибудь в Чили или Австралии.. Нахрена им? 
	Поэтому, провайдер должен быть стабильный, компания иностранная. Своими рекомендациями я уже поделился в канале VPS Insider (но по причине отсутствия заинтересованности я перестал его поддерживать, оставив всю историю там) вступить можно по ссылке за 170 Звёзд ТГ: https://t.me/+lQBQTGym57hmOTAy 
	Скорость должна быть 10Гбс - минимум 2-5Гбс. Трафика от 3-5Тб (суммарного). Конечно лучше безлимит, но качественный сервер обычно имеет лимитированный трафик.
 


	Давайте возьмем сервер здесь: https://procloud.ru?referral_id=274473
 


	Или возьмем здесь: https://selectel.ru/?ref_code=8d43638548
 


	
		Локацию берите Москва (для Мэйн сервера - без разницы)
	
	
		ОСь берите Ubuntu 24.04
	
	
		ЦП - 2 ядра
	
	
		Память - 4 Гб.
	
	
		Диск - 30 Гб. Желательно максимально быстрый.
	



	 
 


	1.2. Взяли? Теперь подключаемся.
 


	Как и раньше я использую Termius для работы с серверами.
 


	1.3. Первым делом запускаем обновление системы:
 

apt update &amp;&amp; apt upgrade -yqq


	1.4. Запускаем установку Caddy
 


	 
 


	 Ставим Caddy
 

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy


	1.5. Ставим мой сервис CADD:
 

sudo nano /usr/local/bin/cadd


	1.6. Заполняем в открытом редакторе файл:
 

#!/bin/bash

CONFIG_FILE="/etc/caddy/Caddyfile" # Путь к файлу конфигурации Caddy
LOG_LINES=20 # Количество строк журнала для вывода

# Цвета для вывода в консоль
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # Без цвета (сброс)

case "$1" in
    e) # Редактирование конфигурации
        nano "$CONFIG_FILE"
        ;;
    r) # Рестарт сервиса Caddy
        systemctl restart caddy
        echo -e "${GREEN}Caddy restarted.${NC}"
        ;;
    v) # Валидация конфигурационного файла
        caddy validate --config "$CONFIG_FILE"
        ;;
    s) # Статус сервиса Caddy
        systemctl status caddy | head -n 10
        ;;
    l) # Логи сервиса Caddy
        journalctl -u caddy.service -n "$LOG_LINES"
        ;;
    f) # Форматирование Caddyfile
        caddy fmt --overwrite "$CONFIG_FILE"
        echo -e "${GREEN}File ${YELLOW} $CONFIG_FILE ${GREEN}has been formatted.${NC}"
        ;;
    h) # Вывод помощи
        echo -e "${YELLOW}Usage:${NC}"
        echo -e "${BLUE}cadd e${NC} - edit Caddyfile"
        echo -e "${BLUE}cadd r${NC} - restart Caddy"
        echo -e "${BLUE}cadd v${NC} - validate Caddyfile"
        echo -e "${BLUE}cadd s${NC} - check status of Caddy"
        echo -e "${BLUE}cadd l${NC} - show last ${LOG_LINES} lines from Caddy log"
        echo -e "${BLUE}cadd f${NC} - format file ${CONFIG_FILE}"
        echo -e "${BLUE}cadd h${NC} - display this help"
        ;;
    *) # Неправильный ввод команды
        echo -e "${RED}Invalid option!${NC} Usage: cadd {e|r|v|s|l|h|f}"
        ;;
esac


	Сохранили и закрыли
 


	1.7. Выдаем права файлу на исполнение:
 

sudo chmod +x /usr/local/bin/cadd


	1.8. Теперь поставим Docker
 

curl -fsSL https://get.docker.com | sh


	1.9. Теперь создадим нашу докер-сеть:
 


	 Назовем ее caddy_net:
 

docker network create \
  --driver bridge \
  --subnet 10.0.0.0/16 \
  --gateway 10.0.0.1 \
  caddy_net


	Диапазон у нас будет адресов 10.0.[0-255].[1-255]
 


	Но это с запасом.
 


	2. Ставим Marzban. 
 


	Ставить будем вариант сразу с MariaDB:
 

sudo bash -c "$(curl -sL https://github.com/DigneZzZ/Marzban-scripts-beta/raw/main/marzban.sh)" @ install --database mariadb


	
 


	2.1. Останавливаем Marzban:
 

marzban down


	2.2. Редактируем docker-compose:
 

nano /opt/marzban/docker-compose.yml


	2.3. Смотрим внимательно.
 


	Исходный вид:
 

services:
  marzban:
    image: gozargah/marzban:latest
    restart: always
    env_file: .env
    network_mode: host
    volumes:
      - /var/lib/marzban:/var/lib/marzban
      - /var/lib/marzban/logs:/var/lib/marzban-node
    depends_on:
      mariadb:
        condition: service_healthy

  mariadb:
    image: mariadb:lts
    env_file: .env
    network_mode: host
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_ROOT_HOST: '%'
      MYSQL_DATABASE: marzban
      MYSQL_USER: marzban
      MYSQL_PASSWORD: password
    command:
      - --bind-address=127.0.0.1
      - --character_set_server=utf8mb4
      - --collation_server=utf8mb4_unicode_ci
      - --host-cache-size=0
      - --innodb-open-files=1024
      - --innodb-buffer-pool-size=268435456
      - --binlog_expire_logs_seconds=5184000 # 60 days
    volumes:
      - /var/lib/marzban/mysql:/var/lib/mysql
    healthcheck:
      test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
      start_period: 10s
      start_interval: 3s
      interval: 10s
      timeout: 5s
      retries: 3


	Приводим содержимое к нужному виду:
 

services:
  marzban:
    image: gozargah/marzban:latest
    restart: always
    env_file: .env
#    network_mode: host
    volumes:
      - /var/lib/marzban:/var/lib/marzban
      - /var/lib/marzban/logs:/var/lib/marzban-node
    depends_on:
      mariadb:
        condition: service_healthy
    networks:
      caddy_net:
        ipv4_address: 10.0.10.2

  mariadb:
    image: mariadb:lts
    env_file: .env
#    network_mode: host
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_ROOT_HOST: '%'
      MYSQL_DATABASE: marzban
      MYSQL_USER: marzban
      MYSQL_PASSWORD: password
    command:
#      - --bind-address=127.0.0.1
      - --character_set_server=utf8mb4
      - --collation_server=utf8mb4_unicode_ci
      - --host-cache-size=0
      - --innodb-open-files=1024
      - --innodb-buffer-pool-size=268435456
      - --binlog_expire_logs_seconds=5184000 # 60 days
    volumes:
      - /var/lib/marzban/mysql:/var/lib/mysql
    healthcheck:
      test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
      start_period: 10s
      start_interval: 3s
      interval: 10s
      timeout: 5s
      retries: 3
    networks:
      caddy_net:
        ipv4_address: 10.0.10.3

networks:
  caddy_net:
    external: true


	
		комментируем строку #    network_mode: host
	
	
		Добавляем адреса в сети докер (хотя они нам не понадобятся уже)
	
	
		Gtht
	



	2.4. Заходим в .env и приводим к виду:
 

#UVICORN_HOST = "0.0.0.0"
#UVICORN_PORT = 8000
# ALLOWED_ORIGINS=http://localhost,http://localhost:8000,http://example.com

## We highly recommend add admin using `marzban cli` tool and do not use
## the following variables which is somehow hard codded infrmation.
# SUDO_USERNAME = "admin"
# SUDO_PASSWORD = "admin"

UVICORN_UDS: "/var/lib/marzban/marzban.socket"
# UVICORN_SSL_CERTFILE = "/var/lib/marzban/certs/example.com/fullchain.pem"
# UVICORN_SSL_KEYFILE = "/var/lib/marzban/certs/example.com/key.pem"

 DASHBOARD_PATH = "/d-dash/"

XRAY_JSON = "/var/lib/marzban/xray_config.json"
 XRAY_SUBSCRIPTION_URL_PREFIX = "https://sub.domain.com"
 XRAY_SUBSCRIPTION_PATH = "yourSub"
# XRAY_EXECUTABLE_PATH = "/usr/local/bin/xray"
# XRAY_ASSETS_PATH = "/usr/local/share/xray"
# XRAY_EXCLUDE_INBOUND_TAGS = "INBOUND_X INBOUND_Y"
# XRAY_FALLBACKS_INBOUND_TAG = "INBOUND_X"


 TELEGRAM_API_TOKEN = 511414455:AsdgSDGsHfhFDbdfbFDFDFbdfCgw
 TELEGRAM_ADMIN_ID = 1111111111
 TELEGRAM_LOGGER_CHANNEL_ID = -1234567890123
 TELEGRAM_DEFAULT_VLESS_FLOW = "xtls-rprx-vision"
# TELEGRAM_PROXY_URL = "http://localhost:8080"

# DISCORD_WEBHOOK_URL = "https://discord.com/api/webhooks/xxxxxxx"

 CUSTOM_TEMPLATES_DIRECTORY="/var/lib/marzban/templates/"
# CLASH_SUBSCRIPTION_TEMPLATE="clash/my-custom-template.yml"
 SUBSCRIPTION_PAGE_TEMPLATE="subscription/index.html"
# HOME_PAGE_TEMPLATE="home/index.html"

# V2RAY_SUBSCRIPTION_TEMPLATE="v2ray/default.json"
# V2RAY_SETTINGS_TEMPLATE="v2ray/settings.json"

# SINGBOX_SUBSCRIPTION_TEMPLATE="singbox/default.json"
# SINGBOX_SETTINGS_TEMPLATE="singbox/settings.json"

# MUX_TEMPLATE="mux/default.json"

## Enable JSON config for compatible clients to use mux, fragment, etc. Default False.
# USE_CUSTOM_JSON_DEFAULT=True
## Your preferred config type for different clients
## If USE_CUSTOM_JSON_DEFAULT is set True, all following programs will use the JSON config
# USE_CUSTOM_JSON_FOR_V2RAYN=False
# USE_CUSTOM_JSON_FOR_V2RAYNG=True
# USE_CUSTOM_JSON_FOR_STREISAND=False

## Set headers for subscription
 SUB_PROFILE_TITLE = "Susbcription"
 SUB_SUPPORT_URL = "https://t.me/support"
 SUB_UPDATE_INTERVAL = "2"

## External config to import into v2ray format subscription
# EXTERNAL_CONFIG = "config://..."

# SQLALCHEMY_DATABASE_URL = "sqlite:///db.sqlite3"
# SQLALCHEMY_POOL_SIZE = 10
# SQLIALCHEMY_MAX_OVERFLOW = 30

## Custom text for STATUS_TEXT variable
# ACTIVE_STATUS_TEXT = "Active"
# EXPIRED_STATUS_TEXT = "Expired"
# LIMITED_STATUS_TEXT = "Limited"
# DISABLED_STATUS_TEXT = "Disabled"
# ONHOLD_STATUS_TEXT = "On-Hold"

### Use negative values to disable auto-delete by default
 USERS_AUTODELETE_DAYS = -1
 USER_AUTODELETE_INCLUDE_LIMITED_ACCOUNTS = false

## Customize all notifications
# NOTIFY_STATUS_CHANGE = True
# NOTIFY_USER_CREATED = True
# NOTIFY_USER_UPDATED = True
# NOTIFY_USER_DELETED = True
# NOTIFY_USER_DATA_USED_RESET = True
# NOTIFY_USER_SUB_REVOKED = True
# NOTIFY_IF_DATA_USAGE_PERCENT_REACHED = True
# NOTIFY_IF_DAYS_LEF_REACHED = True
# NOTIFY_LOGIN = True

## Whitelist of IPs/hosts to disable login notifications
# LOGIN_NOTIFY_WHITE_LIST = '1.1.1.1,127.0.0.1'

### for developers
# DOCS=True
# DEBUG=True

# If You Want To Send Webhook To Multiple Server Add Multi Address
# WEBHOOK_ADDRESS = "http://127.0.0.1:9000/,http://127.0.0.1:9001/"
# WEBHOOK_SECRET = "something-very-very-secret"

# VITE_BASE_API="https://example.com/api/"
 JWT_ACCESS_TOKEN_EXPIRE_MINUTES = 0

# JOB_CORE_HEALTH_CHECK_INTERVAL = 10
# JOB_RECORD_NODE_USAGES_INTERVAL = 30
# JOB_RECORD_USER_USAGES_INTERVAL = 10
# JOB_REVIEW_USERS_INTERVAL = 10
# JOB_SEND_NOTIFICATIONS_INTERVAL = 30
SQLALCHEMY_DATABASE_URL = "mysql+pymysql://marzban:password@10.0.10.3:3306/marzban"


	Собственно мы корректируем параметры:
 


	
		Отключаем параметры:
		
			
				#UVICORN_HOST = "0.0.0.0"
			
			
				#UVICORN_PORT = 8000
			
		
	
	
		Создаем параметры:
		
			
				UVICORN_UDS: "/var/lib/marzban/marzban.socket"
			
			
				 XRAY_SUBSCRIPTION_URL_PREFIX = "https://sub.domain.com"
			
			
				 XRAY_SUBSCRIPTION_PATH = "yourSub"
			
			
				 DASHBOARD_PATH = "/d-dash/"
			
			
				 TELEGRAM_API_TOKEN = 511414455:AsdgSDGsHfhFDbdfbFDFDFbdfCgw
			
			
				TELEGRAM_ADMIN_ID = 1111111111
			
			
				TELEGRAM_LOGGER_CHANNEL_ID = -1234567890123
			
			
				TELEGRAM_DEFAULT_VLESS_FLOW = "xtls-rprx-vision"
			
			
				 CUSTOM_TEMPLATES_DIRECTORY="/var/lib/marzban/templates/"
			
			
				 SUBSCRIPTION_PAGE_TEMPLATE="subscription/index.html"
			
			
				 SUB_PROFILE_TITLE = "Susbcription"
			
			
				SUB_SUPPORT_URL = "https://t.me/support"
			
			
				SUB_UPDATE_INTERVAL = "2"
			
			
				 USERS_AUTODELETE_DAYS = -1
			
			
				USER_AUTODELETE_INCLUDE_LIMITED_ACCOUNTS = false
			
		
	
	
		Корректируем IP адрес подключения к нашей БД:
		
			
				SQLALCHEMY_DATABASE_URL = "mysql+pymysql://marzban:password@10.0.10.3:3306/marzban"
			
		
	



	 
 


	Фуф.
 


	Ура.
 


	Теперь все.
 


	2.5.  Перезагружаем marzban
 

marzban restart


	выглядеть должно вот так:
 


	
 


	3.1.. Заходим в редактирование файла Caddy:
 

cadd e


	3.8. Файл будет предзаполнен. Удаляем все в файле и заполняем файл:
 

{
        storage file_system {
                root /var/lib/caddy
        }
        email YourEmail@gmail.com
        acme_ca https://acme-v02.api.letsencrypt.org/directory


        log {
                output file /var/log/caddy/server.log {
                        roll_size 30mb
                        roll_keep 10
                        roll_keep_for 720h
                }
                level INFO
        }
}

sub.domain.com {
        # Логирование запросов
        log {
                output file /var/log/caddy/link-access.log
        }

        # Определение разрешённых путей с использованием matchers
        @allowed path /yourSub*

        # Прокси для разрешённых путей
        handle @allowed {
                reverse_proxy unix//var/lib/marzban/marzban.socket {
                        header_up Host {host}
                        header_up X-Real-IP {remote}
                }
        }
        # Для всех остальных запросов — 403 Forbidden
        handle {
                respond "403 Get the FUCK OUT!" 403
        }
}
panel.domain.com {
        # Логирование запросов
        log {
                output file /var/log/caddy/panel-access.log
        }
        # Определение разрешённых путей с использованием matchers 
        @allowed path /statics* /d-dash* /d-dash/#/login* /api* /docs* /redoc* /openapi.json

        # Прокси для разрешённых путей
        handle @allowed {
                reverse_proxy unix//var/lib/marzban/marzban.socket {
                        header_up Host {host}
                        header_up X-Real-IP {remote}
                }
        }
        # Для всех остальных запросов — 403 Forbidden
        handle {
                respond "403 Get the FUCK OUT!" 403
        }
}


	Сохраняем файл.
 


	4. Проверяем и Перезапускаем Caddy
 


	проверяем файл:
 

cadd v


	Если ошибок нет, тогда перезапускаем:
 

cadd r


	 
 


	Дальше все настройки как и всегда 🙂]]></description><enclosure url="https://openode.xyz/uploads/monthly_2024_10/image.png.db91301c0ce088dc51b851e116cb495d.png" length="117882" type="image/png"/><pubDate>Fri, 18 Oct 2024 23:14:40 +0000</pubDate></item><item><title>&#x413;&#x440;&#x44F;&#x434;&#x443;&#x449;&#x438;&#x435; &#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F; Marzban Latest &#x438; &#x442;&#x435;&#x43A;&#x443;&#x449;&#x438;&#x439; Marzban DEV</title><link><![CDATA[https://openode.xyz/topic/1320-gryaduschie-obnovleniya-marzban-latest-i-tekuschiy-marzban-dev/?do=findComment&comment=5201]]></link><description>&#x421;&#x435;&#x433;&#x43E;&#x434;&#x43D;&#x44F; &#x431;&#x44B;&#x43B;&#x43E; &#x43E;&#x43F;&#x443;&#x431;&#x43B;&#x438;&#x43A;&#x43E;&#x432;&#x430;&#x43D;&#x43E; &#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x435; &#x434;&#x43B;&#x44F; Marzban Dev.
 


	&#x41E;&#x43D;&#x43E; &#x43A;&#x430;&#x441;&#x430;&#x43B;&#x43E;&#x441;&#x44C; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x439; &#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x43E;&#x441;&#x442;&#x438;.
 




	 
 


	&#x412; &#x43E;&#x431;&#x449;&#x435;&#x43C;.
 


	&#x421;&#x435;&#x439;&#x447;&#x430;&#x441; &#x44D;&#x442;&#x43E; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x43A;&#x43E;&#x441;&#x43D;&#x443;&#x43B;&#x438;&#x441;&#x44C; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; DEV &#x432;&#x435;&#x442;&#x43A;&#x438;, &#x43D;&#x43E; &#x432; &#x431;&#x43B;&#x438;&#x436;&#x430;&#x439;&#x448;&#x443;&#x44E; 1-2 &#x43D;&#x435;&#x434;&#x435;&#x43B;&#x438; &#x431;&#x443;&#x434;&#x443;&#x442; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x438; &#x43D;&#x430; Latest. &#x41F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; &#x43F;&#x440;&#x438;&#x43D;&#x438;&#x43C;&#x430;&#x439;&#x442;&#x435; &#x432;&#x43E; &#x432;&#x43D;&#x438;&#x43C;&#x430;&#x43D;&#x438;&#x435; - &#x43A;&#x430;&#x43A; &#x441;&#x435;&#x440;&#x44C;&#x435;&#x437;&#x43D;&#x44B;&#x439; &#x430;&#x440;&#x433;&#x443;&#x43C;&#x435;&#x43D;&#x442;.
 


	&#x41F;&#x43E;&#x434;&#x432;&#x435;&#x434;&#x443; &#x438;&#x442;&#x43E;&#x433;, &#x43D;&#x430; &#x43F;&#x43E;&#x43D;&#x44F;&#x442;&#x43D;&#x43E;&#x43C; &#x44F;&#x437;&#x44B;&#x43A;&#x435;.
 


	1. &#x422;&#x435;&#x43F;&#x435;&#x440;&#x44C; &#x43F;&#x43E; &#x443;&#x43C;&#x43E;&#x43B;&#x447;&#x430;&#x43D;&#x438;&#x44E;, &#x43F;&#x430;&#x43D;&#x435;&#x43B;&#x44C; &#x43D;&#x435; &#x431;&#x443;&#x434;&#x435;&#x442; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x43D;&#x430; &#x434;&#x43E; &#x442;&#x435;&#x445; &#x43F;&#x43E;&#x440;, &#x43F;&#x43E;&#x43A;&#x430; &#x434;&#x43B;&#x44F; &#x414;&#x44D;&#x448;&#x431;&#x43E;&#x440;&#x434;&#x430; &#x43D;&#x435; &#x431;&#x443;&#x434;&#x435;&#x442; &#x43E;&#x431;&#x435;&#x441;&#x43F;&#x435;&#x447;&#x435;&#x43D;&#x430; &#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x43E;&#x441;&#x442;&#x44C;, &#x430; &#x438;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; - &#x43D;&#x435; &#x431;&#x443;&#x434;&#x443;&#x442; &#x43F;&#x43E;&#x434;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x44B; &#x441;&#x435;&#x440;&#x442;&#x438;&#x444;&#x438;&#x43A;&#x430;&#x442;&#x44B;.
 


	2. &#x422;&#x435;&#x43F;&#x435;&#x440;&#x44C; (&#x43D;&#x430;&#x43A;&#x43E;&#x43D;&#x435;&#x446;&#x442;&#x43E;!) &#x43C;&#x44B; &#x43C;&#x43E;&#x436;&#x435;&#x43C; &#x43C;&#x435;&#x43D;&#x44F;&#x442;&#x44C; &#x43F;&#x443;&#x442;&#x44C; &#x434;&#x43E; &#x43F;&#x430;&#x43D;&#x435;&#x43B;&#x438;.
 


	3. &#x422;&#x435;&#x43F;&#x435;&#x440;&#x44C; &#x43F;&#x440;&#x43E;&#x43A;&#x441;&#x438;&#x440;&#x443;&#x44F; &#x438;&#x437; &#x414;&#x43E;&#x43A;&#x435;&#x440;-&#x441;&#x435;&#x442;&#x438; &#x43D;&#x430;&#x448; Marzban (&#x43A;&#x430;&#x43A; &#x44F; &#x434;&#x435;&#x43B;&#x430;&#x44E; &#x432; &#x441;&#x432;&#x43E;&#x438;&#x445; &#x441;&#x43E;&#x431;&#x441;&#x442;&#x432;&#x435;&#x43D;&#x43D;&#x44B;&#x445; &#x441;&#x431;&#x43E;&#x440;&#x43A;&#x430;&#x445;) - &#x43C;&#x44B; &#x43D;&#x435; &#x441;&#x43C;&#x43E;&#x436;&#x435;&#x43C; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x44C; &#x43A; &#x43D;&#x438;&#x43C; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F; &#x43F;&#x43E; &#x410;&#x439;&#x43F;&#x438;, &#x438; &#x43D;&#x430;&#x43C; &#x43D;&#x443;&#x436;&#x43D;&#x43E; &#x431;&#x443;&#x434;&#x435;&#x442; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x432;&#x430;&#x442;&#x44C; unix socket &#x438; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x435;&#x433;&#x43E; &#x434;&#x43B;&#x44F; &#x43F;&#x43E;&#x434;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x438;&#x44F;.
 


	4. &#x422;&#x435;&#x43F;&#x435;&#x440;&#x44C; &#x440;&#x430;&#x437;&#x440;&#x435;&#x448;&#x430;&#x44F; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x435; &#x43F;&#x443;&#x442;&#x438; &#x434;&#x43B;&#x44F; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x430; &#x43A; &#x43F;&#x430;&#x43D;&#x435;&#x43B;&#x438;, &#x442;&#x430;&#x43A;&#x438;&#x435; &#x43A;&#x430;&#x43A; /dashboard /login &#x438; &#x442;.&#x43F;., &#x43F;&#x43E;&#x43F;&#x43E;&#x43B;&#x43D;&#x44F;&#x442;&#x441;&#x44F; &#x435;&#x449;&#x435; &#x43F;&#x430;&#x440;&#x43E;&#x447;&#x43A;&#x43E;&#x439; &#x43D;&#x43E;&#x432;&#x44B;&#x445;: /statics* &#x438; /dashboard/#/login* - &#x44D;&#x442;&#x43E; &#x442;&#x430; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x430; &#x441; &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x43E;&#x439; &#x44F; &#x441;&#x435;&#x433;&#x43E;&#x434;&#x43D;&#x44F; &#x431;&#x43E;&#x440;&#x43E;&#x43B;&#x441;&#x44F; &#x43F;&#x43E;&#x43B; &#x443;&#x442;&#x440;&#x430;.  
	&#x442;&#x430;&#x43A; &#x43A;&#x430;&#x43A; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430; Marzban &#x43C;&#x43E;&#x43B;&#x447;&#x430; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x43B;&#x430; &#x440;&#x430;&#x441;&#x43F;&#x43E;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x435; &#x441;&#x442;&#x430;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x445; &#x444;&#x430;&#x439;&#x43B;&#x43E;&#x432; &#x438; &#x442;&#x435;&#x43F;&#x435;&#x440;&#x44C; &#x43E;&#x43D;&#x438; &#x433;&#x440;&#x443;&#x437;&#x44F;&#x442;&#x441;&#x44F; &#x43D;&#x435; &#x441; &#x430;&#x434;&#x440;&#x435;&#x441;&#x430; /dashboard, &#x430; &#x441; &#x430;&#x434;&#x440;&#x435;&#x441;&#x430; /statics*.
 


	5. &#x41F;&#x440;&#x43E;&#x440;&#x43E;&#x447;&#x430;&#x442; &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x438;&#x435; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x438; &#x442;&#x440;&#x435;&#x431;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x44F; &#x43A; &#x44F;&#x434;&#x440;&#x443; Xray (&#x43D;&#x43E; &#x43E;&#x431; &#x44D;&#x442;&#x43E;&#x43C; &#x43C;&#x44B; &#x431;&#x443;&#x434;&#x435;&#x43C; &#x433;&#x43E;&#x432;&#x43E;&#x440;&#x438;&#x442;&#x44C; &#x443;&#x436;&#x435; &#x43F;&#x43E;&#x442;&#x43E;&#x43C;, &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;).
 


	6. &#x422;&#x435;&#x43F;&#x435;&#x440;&#x44C; &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x435; &#x43D;&#x435;&#x43B;&#x44C;&#x437;&#x44F; &#x431;&#x443;&#x434;&#x435;&#x442; &#x43F;&#x440;&#x43E;&#x43F;&#x438;&#x441;&#x430;&#x442;&#x44C; &#x432; .env &#x43F;&#x430;&#x440;&#x430;&#x43C;&#x435;&#x442;&#x440;&#x44B;: SUDO_ADMIN &#x438; SUDO_PASSWORD. &#x41E;&#x43D;&#x438; &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x435; &#x43D;&#x435; &#x431;&#x443;&#x434;&#x443;&#x442; &#x447;&#x438;&#x442;&#x430;&#x442;&#x44C;&#x441;&#x44F;.  
	&#x41F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; &#x435;&#x441;&#x43B;&#x438; &#x432;&#x44B; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x435;&#x442;&#x435; &#x442;&#x430;&#x43A;&#x43E;&#x439; &#x444;&#x43E;&#x440;&#x43C;&#x430;&#x442; &#x432;&#x437;&#x430;&#x438;&#x43C;&#x43E;&#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x44F; &#x434;&#x43B;&#x44F; SHM, &#x442;&#x43E; &#x440;&#x435;&#x43A;&#x43E;&#x43C;&#x435;&#x43D;&#x434;&#x443;&#x44E; &#x432;&#x43D;&#x435;&#x441;&#x442;&#x438; &#x43D;&#x435;&#x43E;&#x431;&#x445;&#x43E;&#x434;&#x438;&#x43C;&#x44B;&#x435; &#x43A;&#x43E;&#x440;&#x440;&#x435;&#x43A;&#x442;&#x438;&#x440;&#x43E;&#x432;&#x43A;&#x438; &#x432; &#x432;&#x430;&#x448;&#x438; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x44B;.
 


	 
 


	&#x410; &#x432;&#x441;&#x435; &#x442;&#x435; &#x43A;&#x442;&#x43E; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x43B;&#x441;&#x44F; &#x43C;&#x43E;&#x438;&#x43C;&#x438; &#x438;&#x43D;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x446;&#x438;&#x44F;&#x43C;&#x438;, &#x438; &#x43D;&#x435; &#x43B;&#x435;&#x43D;&#x438;&#x43B;&#x438;&#x441;&#x44C; &#x432;&#x44B;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x442;&#x44C; &#x441;&#x435;&#x440;&#x442;&#x438;&#x444;&#x438;&#x43A;&#x430;&#x442;&#x44B; - &#x443; &#x432;&#x430;&#x441; &#x432;&#x441;&#x435; &#x431;&#x443;&#x434;&#x435;&#x442; &#x432; &#x43F;&#x43E;&#x440;&#x44F;&#x434;&#x43A;&#x435;, &#x43D;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x436;&#x438;&#x432;&#x430;&#x439;&#x442;&#x435; &#x1F642;
 


	&#x411;&#x430;&#x437;&#x43E;&#x432;&#x44B;&#x435; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x435; &#x43F;&#x43E;&#x442;&#x440;&#x435;&#x431;&#x443;&#x44E;&#x442;&#x441;&#x44F; &#x434;&#x43B;&#x44F; &#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F; &#x434;&#x43E; &#x441;&#x432;&#x435;&#x436;&#x435;&#x439; &#x432;&#x435;&#x440;&#x441;&#x438;&#x438; Marzban, &#x44F; &#x441;&#x432;&#x43E;&#x435;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x43D;&#x430;&#x43F;&#x438;&#x448;&#x443; &#x1F642; &#x41D;&#x41E; &#x43E;&#x43D;&#x438; &#x431;&#x443;&#x434;&#x443;&#x442; &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x442;&#x44C; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x432; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x438; &#x43F;&#x430;&#x440;&#x430;&#x43C;&#x435;&#x442;&#x440;&#x430; &#x432; .env.
 


	 
 


	&#x41F;&#x43E;&#x441;&#x442;&#x430;&#x440;&#x430;&#x44E;&#x441;&#x44C; &#x43D;&#x430;&#x43F;&#x438;&#x441;&#x430;&#x442;&#x44C; &#x432; &#x431;&#x43B;&#x438;&#x436;&#x430;&#x439;&#x448;&#x438;&#x435; &#x434;&#x43D;&#x438;, &#x441;&#x432;&#x43E;&#x44E; &#x432;&#x435;&#x440;&#x441;&#x438;&#x44E; &#x440;&#x435;&#x430;&#x43B;&#x438;&#x437;&#x430;&#x446;&#x438;&#x438; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x430; &#x43A; &#x43F;&#x430;&#x43D;&#x435;&#x43B;&#x438; &#x447;&#x435;&#x440;&#x435;&#x437; Caddy (&#x43F;&#x43E; &#x430;&#x43D;&#x430;&#x43B;&#x43E;&#x433;&#x438;&#x438; &#x43A;&#x430;&#x43A; &#x44F; &#x443;&#x436;&#x435; &#x43D;&#x430;&#x43F;&#x438;&#x441;&#x430;&#x43B; &#x434;&#x43B;&#x44F; Marzneshin) &#x43D;&#x43E; &#x441; &#x432;&#x44B;&#x43D;&#x435;&#x441;&#x435;&#x43D;&#x438;&#x435;&#x43C; &#x43F;&#x43E;&#x434;&#x43F;&#x438;&#x441;&#x43A;&#x438;.
 


	 
 


	 
 


	&#x41F;&#x43E;&#x43C;&#x438;&#x43C;&#x43E; &#x44D;&#x442;&#x43E;&#x433;&#x43E; &#x43E;&#x437;&#x43D;&#x430;&#x43A;&#x43E;&#x43C;&#x44C;&#x442;&#x435;&#x441;&#x44C; &#x441; &#x43F;&#x435;&#x440;&#x435;&#x447;&#x43D;&#x435;&#x43C; &#x43D;&#x43E;&#x432;&#x44B;&#x445; &#x43F;&#x430;&#x440;&#x430;&#x43C;&#x435;&#x442;&#x440;&#x43E;&#x432;:
 


	https://github.com/Gozargah/Marzban/blob/master/.env.example
 


	 
 


	&#x410; &#x435;&#x449;&#x451; &#x441;&#x43A;&#x43E;&#x440;&#x43E; &#x432;&#x44B;&#x439;&#x434;&#x435;&#x442; &#x432; &#x441;&#x432;&#x435;&#x442; &#x43D;&#x43E;&#x432;&#x430;&#x44F; &#x441;&#x442;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x430; &#x43F;&#x43E;&#x434;&#x43F;&#x438;&#x441;&#x43A;&#x438;
 


	
 


	&#x41E;&#x43F;&#x438;&#x441;&#x430;&#x43D;&#x438;&#x435; &#x438;&#x437; &#x43D;&#x43E;&#x432;&#x43E;&#x441;&#x442;&#x438; &#x441; &#x43F;&#x435;&#x440;&#x435;&#x432;&#x43E;&#x434;&#x43E;&#x43C; &#x43D;&#x430; &#x420;&#x443;&#x441;&#x441;&#x43A;&#x438;&#x439;:</description><enclosure url="https://openode.xyz/uploads/monthly_2024_10/image.png.8e27a45dc14197fa53e449f636316a95.png" length="557472" type="image/png"/><pubDate>Tue, 15 Oct 2024 13:45:13 +0000</pubDate></item><item><title>OperaVPS &#x43D;&#x435; &#x438;&#x43C;&#x435;&#x435;&#x442; &#x43D;&#x438;&#x43A;&#x430;&#x43A;&#x438;&#x445; &#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x435;&#x43D;&#x438;&#x439; &#x434;&#x43B;&#x44F; &#x441;&#x432;&#x43E;&#x438;&#x445; &#x440;&#x43E;&#x441;&#x441;&#x438;&#x439;&#x441;&#x43A;&#x438;&#x445; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x435;&#x439; &#x438; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x435;&#x442; &#x43E;&#x43F;&#x43B;&#x430;&#x442;&#x443; &#x43A;&#x440;&#x438;&#x43F;&#x442;&#x43E;&#x432;&#x430;&#x43B;&#x44E;&#x442;&#x43E;&#x439;.</title><link><![CDATA[https://openode.xyz/topic/1319-operavps-ne-imeet-nikakih-ogranicheniy-dlya-svoih-rossiyskih-polzovateley-i-podderzhivaet-oplatu-kriptovalyutoy/?do=findComment&comment=5198]]></link><description>**&#x423;&#x447;&#x438;&#x442;&#x44B;&#x432;&#x430;&#x44F;, &#x447;&#x442;&#x43E; &#x442;&#x430;&#x43A;&#x438;&#x435; &#x441;&#x430;&#x439;&#x442;&#x44B;, &#x43A;&#x430;&#x43A; Hetzner &#x438; Vultr, &#x43D;&#x435; &#x43F;&#x440;&#x435;&#x434;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x43B;&#x44F;&#x44E;&#x442; &#x443;&#x441;&#x43B;&#x443;&#x433;&#x438; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44F;&#x43C; &#x438;&#x437; &#x420;&#x43E;&#x441;&#x441;&#x438;&#x438;, &#x43C;&#x44B; &#x440;&#x435;&#x448;&#x438;&#x43B;&#x438; &#x43F;&#x440;&#x435;&#x434;&#x43B;&#x430;&#x433;&#x430;&#x442;&#x44C; &#x443;&#x441;&#x43B;&#x443;&#x433;&#x438; &#x434;&#x43B;&#x44F; &#x44D;&#x442;&#x43E;&#x439; &#x441;&#x442;&#x440;&#x430;&#x43D;&#x44B; &#x431;&#x435;&#x437; &#x43A;&#x430;&#x43A;&#x438;&#x445;-&#x43B;&#x438;&#x431;&#x43E; &#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x435;&#x43D;&#x438;&#x439;.
				 

				
					&#x41F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x438; &#x438;&#x437; &#x420;&#x43E;&#x441;&#x441;&#x438;&#x438; &#x43C;&#x43E;&#x433;&#x443;&#x442; &#x43F;&#x440;&#x438;&#x43E;&#x431;&#x440;&#x435;&#x442;&#x430;&#x442;&#x44C; &#x443;&#x441;&#x43B;&#x443;&#x433;&#x438; &#x432;&#x438;&#x440;&#x442;&#x443;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x445; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x43E;&#x432; &#x441; &#x440;&#x430;&#x437;&#x43B;&#x438;&#x447;&#x43D;&#x44B;&#x43C;&#x438; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x446;&#x438;&#x43E;&#x43D;&#x43D;&#x44B;&#x43C;&#x438; &#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x430;&#x43C;&#x438;, &#x430; &#x442;&#x430;&#x43A;&#x436;&#x435; &#x432;&#x44B;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x43D;&#x44B;&#x435; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x44B; &#x438;&#x437; &#x431;&#x43E;&#x43B;&#x435;&#x435; &#x447;&#x435;&#x43C; 20 &#x440;&#x430;&#x437;&#x43B;&#x438;&#x447;&#x43D;&#x44B;&#x445; &#x43B;&#x43E;&#x43A;&#x430;&#x446;&#x438;&#x439; &#x43D;&#x430; OperaVPS.
				 

				
					&#x412;&#x44B; &#x43C;&#x43E;&#x436;&#x435;&#x442;&#x435; &#x432; &#x43B;&#x44E;&#x431;&#x43E;&#x435; &#x432;&#x440;&#x435;&#x43C;&#x44F; &#x441;&#x443;&#x442;&#x43E;&#x43A; &#x441;&#x432;&#x44F;&#x437;&#x430;&#x442;&#x44C;&#x441;&#x44F; &#x441; &#x43D;&#x430;&#x448;&#x435;&#x439; &#x441;&#x43B;&#x443;&#x436;&#x431;&#x43E;&#x439; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x43A;&#x438; &#x43E;&#x43D;&#x43B;&#x430;&#x439;&#x43D;, &#x447;&#x442;&#x43E;&#x431;&#x44B; &#x440;&#x435;&#x448;&#x438;&#x442;&#x44C; &#x441;&#x432;&#x43E;&#x44E; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x443;.
				 

				
					OperaVPS &#x442;&#x430;&#x43A;&#x436;&#x435; &#x43F;&#x43E;&#x434;&#x433;&#x43E;&#x442;&#x43E;&#x432;&#x438;&#x43B;&#x430; &#x434;&#x43B;&#x44F; &#x432;&#x430;&#x441; &#x441;&#x43A;&#x438;&#x434;&#x43A;&#x438; &#x2014; &#x43F;&#x440;&#x438; &#x43F;&#x43E;&#x43A;&#x443;&#x43F;&#x43A;&#x435; &#x443;&#x441;&#x43B;&#x443;&#x433;&#x438; &#x43E;&#x442;&#x43F;&#x440;&#x430;&#x432;&#x44C;&#x442;&#x435; &#x441;&#x441;&#x44B;&#x43B;&#x43A;&#x443; &#x43D;&#x430; &#x44D;&#x442;&#x443; &#x442;&#x435;&#x43C;&#x443; &#x432; &#x441;&#x43B;&#x443;&#x436;&#x431;&#x443; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x43A;&#x438;, &#x438; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x435; &#x43F;&#x440;&#x43E;&#x43C;&#x43E;&#x43A;&#x43E;&#x434; &#x43D;&#x430; 15% &#x441;&#x43A;&#x438;&#x434;&#x43A;&#x443;.**</description><pubDate>Tue, 15 Oct 2024 10:18:17 +0000</pubDate></item><item><title>&#x421;&#x442;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x430; &#x43F;&#x43E;&#x434;&#x43F;&#x438;&#x441;&#x43A;&#x438; &#x434;&#x43B;&#x44F; Marzneshin - &#x431;&#x430;&#x437;&#x43E;&#x432;&#x44B;&#x439; &#x432;&#x430;&#x440;&#x438;&#x430;&#x43D;&#x442; &#x441; SingBox</title><link><![CDATA[https://openode.xyz/topic/1316-stranitsa-podpiski-dlya-marzneshin-bazovyy-variant-s-singbox/?do=findComment&comment=5179]]></link><description>&#x41D;&#x430;&#x448;&#x435;&#x43B; &#x448;&#x430;&#x431;&#x43B;&#x43E;&#x43D; &#x43F;&#x43E;&#x434;&#x43F;&#x438;&#x441;&#x43A;&#x438;.
 


	&#x412; &#x43F;&#x440;&#x438;&#x43D;&#x446;&#x438;&#x43F;&#x435; &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x438; &#x41C;&#x44D;&#x440;&#x446;&#x411;&#x430;&#x43D;&#x43E;&#x432;&#x441;&#x43A;&#x438;&#x439; &#x432;&#x430;&#x440;&#x438;&#x430;&#x43D;&#x442; &#x43F;&#x43E;&#x434;&#x43F;&#x438;&#x441;&#x43A;&#x438;.
 


	
 


	&#x420;&#x443;&#x441;&#x441;&#x43A;&#x430;&#x44F; &#x432;&#x435;&#x440;&#x441;&#x438;&#x44F;:
 


	https://github.com/DigneZzZ/marzneshin-template-ru
 


	 
 


	&#x41E;&#x440;&#x438;&#x433;&#x438;&#x43D;&#x430;&#x43B;:
 


	https://github.com/MatinDehghanian/marzneshin-template/</description><pubDate>Sun, 13 Oct 2024 21:15:39 +0000</pubDate></item><item><title>&#x410;&#x43D;&#x43E;&#x43D;&#x441; &#x441;&#x442;&#x430;&#x442;&#x435;&#x439; &#x43F;&#x43E; Marzneshin &#x43D;&#x430; &#x420;&#x443;&#x441;&#x441;&#x43A;&#x43E;&#x43C; &#x44F;&#x437;&#x44B;&#x43A;&#x435;</title><link><![CDATA[https://openode.xyz/topic/1315-anons-statey-po-marzneshin-na-russkom-yazyke/?do=findComment&comment=5159]]></link><description>&#x412;&#x441;&#x435;&#x43C; &#x43F;&#x440;&#x438;&#x432;&#x435;&#x442;! 
	&#x41A;&#x430;&#x43A; &#x43E;&#x431;&#x435;&#x449;&#x430;&#x43B; &#x443;&#x436;&#x435; &#x434;&#x430;&#x432;&#x43D;&#x43E;, &#x432;&#x44B;&#x43A;&#x43B;&#x430;&#x434;&#x44B;&#x432;&#x430;&#x44E; &#x441;&#x442;&#x430;&#x442;&#x44C;&#x44E; &#x43F;&#x43E; &#x443;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43A;&#x435; &#x438; &#x43D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x43A;&#x435; &#x441;&#x430;&#x43C;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x433;&#x43E; &#x444;&#x43E;&#x440;&#x43A;&#x430; Marzban'a - MARZNESHIN
 


	&#x42D;&#x442;&#x43E; &#x43F;&#x435;&#x440;&#x432;&#x430;&#x44F; &#x441;&#x442;&#x430;&#x442;&#x44C;&#x44F; &#x432; &#x420;&#x443;&#x441;&#x441;&#x43A;&#x43E;&#x43C; &#x441;&#x435;&#x433;&#x43C;&#x435;&#x43D;&#x442;&#x435; &#x441; &#x43F;&#x43E;&#x43B;&#x43D;&#x43E;&#x446;&#x435;&#x43D;&#x43D;&#x43E;&#x439; &#x438;&#x43D;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x446;&#x438;&#x435;&#x439; &#x43F;&#x43E; &#x443;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43A;&#x435;.
 


	&#x414;&#x432;&#x435; &#x441;&#x442;&#x430;&#x442;&#x44C;&#x438; &#x43F;&#x43E; &#x43D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x43A;&#x435; &#x438; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x443; Marzneshin &#x441; &#x43E;&#x431;&#x440;&#x430;&#x442;&#x43D;&#x44B;&#x43C; &#x43F;&#x440;&#x43E;&#x43A;&#x441;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x435;&#x43C; &#x447;&#x435;&#x440;&#x435;&#x437; Caddy:
 



	&#x418; &#x43F;&#x43E; &#x443;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43A;&#x435; &#x438; &#x43F;&#x43E;&#x434;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x438;&#x438; &#x43D;&#x43E;&#x434;&#x44B; Marznode &#x43A; Marzneshin:
 



	 
 


	&#x421;&#x442;&#x430;&#x442;&#x44C;&#x438; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x43D;&#x44B; &#x43F;&#x43E; &#x43F;&#x43E;&#x434;&#x43F;&#x438;&#x441;&#x43A;&#x435; &#x43A; &#x43A;&#x43B;&#x443;&#x431;&#x430;&#x43C;: https://openode.xyz/subscriptions/</description><pubDate>Sat, 12 Oct 2024 21:37:44 +0000</pubDate></item></channel></rss>
