{"id":2476,"date":"2026-08-05T11:10:19","date_gmt":"2026-08-05T11:10:19","guid":{"rendered":"https:\/\/sepno.net\/?p=2476"},"modified":"2026-08-05T12:01:44","modified_gmt":"2026-08-05T12:01:44","slug":"tailscale-vpn-docker-swarm-secure-remote-access","status":"publish","type":"post","link":"https:\/\/sepno.net\/?p=2476","title":{"rendered":"\u0627\u062a\u0635\u0627\u0644 \u0627\u0645\u0646 Docker Swarm \u0628\u0627 Tailscale VPN\u061b \u0628\u062f\u0648\u0646 IP \u0639\u0645\u0648\u0645\u06cc \u0648 Port Forwarding"},"content":{"rendered":"<style>\nbody.single-post .content.blog-wrapper.post-style-1{padding-top:30px!important}body.single-post .blog-wrapper .entry-title{margin-bottom:8px!important}body.single-post .blog-wrapper .wp-post-image{margin-top:24px!important;margin-bottom:18px!important;max-height:520px;object-fit:cover}body.single-post article.hentry>.spc-20{height:0!important}\n.sepno-article{--ink:#dbeafe;--muted:#94a3b8;--panel:#0f1d35;--panel2:#132746;--line:#274264;--cyan:#22d3ee;--blue:#60a5fa;--violet:#a78bfa;max-width:960px;margin:0 auto;color:#dbeafe;font-family:inherit;line-height:2;background:#071225;border-radius:28px;overflow:hidden;box-shadow:0 30px 80px rgba(2,8,23,.22)}\n.sepno-article *{box-sizing:border-box}.sepno-article a{color:#67e8f9}.sepno-article h2,.sepno-article h3{color:#fff;line-height:1.55}.sepno-article h2{font-size:clamp(1.55rem,3vw,2.2rem);margin:0 0 18px}.sepno-article h3{font-size:1.15rem;margin:0 0 8px}.sepno-article p{margin:0 0 18px;color:#cbd5e1}.sepno-hero{padding:clamp(22px,4vw,42px);background:radial-gradient(circle at 15% 10%,rgba(34,211,238,.18),transparent 34%),radial-gradient(circle at 90% 35%,rgba(167,139,250,.14),transparent 34%),#071225}.sepno-eyebrow{display:inline-flex;align-items:center;gap:9px;padding:7px 14px;border:1px solid rgba(103,232,249,.28);border-radius:999px;color:#67e8f9;font-size:.82rem;font-weight:800;letter-spacing:.05em}.sepno-lead{font-size:clamp(1.05rem,2vw,1.32rem)!important;color:#e2e8f0!important;max-width:800px;margin:18px 0 22px!important}.sepno-hero img{width:100%;display:block;border-radius:22px;border:1px solid rgba(148,163,184,.2);box-shadow:0 24px 65px rgba(0,0,0,.38)}.sepno-meta{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}.sepno-pill{padding:7px 12px;border-radius:10px;background:rgba(15,29,53,.82);border:1px solid var(--line);color:#bae6fd;font-size:.82rem}.sepno-body{padding:clamp(22px,4vw,42px)}.sepno-summary{padding:22px;border:1px solid rgba(34,211,238,.32);background:linear-gradient(135deg,rgba(34,211,238,.1),rgba(96,165,250,.05));border-radius:20px;margin-bottom:30px}.sepno-summary strong{color:#67e8f9}.sepno-section{padding:28px 0;border-top:1px solid rgba(39,66,100,.75)}.sepno-section:first-of-type{border-top:0}.sepno-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:20px 0}.sepno-card{padding:20px;background:linear-gradient(145deg,var(--panel),var(--panel2));border:1px solid var(--line);border-radius:18px}.sepno-card b{display:block;color:#fff;margin-bottom:5px}.sepno-card span{color:var(--muted);font-size:.9rem}.sepno-number{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,var(--cyan),var(--blue));color:#061224;font-weight:900;margin-bottom:12px}.sepno-code{direction:ltr;text-align:left;white-space:pre-wrap;padding:20px 22px;margin:18px 0;background:#020817;color:#a5f3fc;border:1px solid #1e3a5f;border-radius:16px;overflow:auto;font:500 .92rem\/1.8 ui-monospace,SFMono-Regular,Menlo,monospace}.sepno-note{padding:20px 22px;border-right:4px solid var(--violet);background:rgba(167,139,250,.08);border-radius:14px;margin:20px 0;color:#ddd6fe}.sepno-warning{padding:20px 22px;border-right:4px solid #f59e0b;background:rgba(245,158,11,.08);border-radius:14px;margin:20px 0;color:#fde68a}.sepno-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:18px;margin:20px 0}.sepno-table{width:100%;border-collapse:collapse;min-width:620px}.sepno-table th,.sepno-table td{padding:14px 16px;border-bottom:1px solid var(--line);text-align:right}.sepno-table th{background:#10223e;color:#67e8f9}.sepno-table td{color:#cbd5e1}.sepno-table tr:last-child td{border-bottom:0}.sepno-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0;margin:20px 0;list-style:none}.sepno-checks li{position:relative;padding:14px 46px 14px 16px;background:var(--panel);border:1px solid var(--line);border-radius:14px;color:#cbd5e1}.sepno-checks li:before{content:'\u2713';position:absolute;right:15px;top:13px;color:#5eead4;font-weight:900}.sepno-faq details{background:var(--panel);border:1px solid var(--line);border-radius:14px;margin:10px 0;padding:0 18px}.sepno-faq summary{cursor:pointer;color:#fff;font-weight:800;padding:17px 0}.sepno-faq details p{padding-bottom:16px}.sepno-outro{padding:24px;border-radius:22px;background:linear-gradient(135deg,rgba(34,211,238,.16),rgba(167,139,250,.14));border:1px solid rgba(103,232,249,.25)}\n@media(max-width:760px){.sepno-grid{grid-template-columns:1fr}.sepno-checks{grid-template-columns:1fr}.sepno-article{border-radius:18px}.sepno-hero,.sepno-body{padding:24px}.sepno-table th,.sepno-table td{padding:11px}}\n<\/style>\n<article class=\"sepno-article\" dir=\"rtl\">\n<header class=\"sepno-hero\">\n    <span class=\"sepno-eyebrow\">\u062a\u062c\u0631\u0628\u0647 \u0648\u0627\u0642\u0639\u06cc DevOps \u00b7 \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u0639\u0645\u0644\u06cc<\/span><\/p>\n<p class=\"sepno-lead\">\u0633\u0647 \u0633\u0631\u0648\u0631 \u0644\u06cc\u0646\u0648\u06a9\u0633\u06cc\u060c \u0633\u0647 \u0634\u0628\u06a9\u0647 \u0645\u062a\u0641\u0627\u0648\u062a \u0648 \u06cc\u06a9 Docker Swarm\u061b \u0628\u062f\u0648\u0646 IP \u0639\u0645\u0648\u0645\u06cc\u060c \u0628\u062f\u0648\u0646 Port Forwarding \u0648 \u0628\u062f\u0648\u0646 \u0627\u06cc\u0646\u06a9\u0647 \u067e\u0648\u0631\u062a\u200c\u0647\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a\u06cc \u0631\u0627 \u0631\u0648\u06cc \u0627\u06cc\u0646\u062a\u0631\u0646\u062a \u0628\u0627\u0632 \u06a9\u0646\u0645.<\/p>\n<div class=\"sepno-meta\">\n      <span class=\"sepno-pill\">Tailscale VPN<\/span><span class=\"sepno-pill\">Docker Swarm<\/span><span class=\"sepno-pill\">WireGuard<\/span><span class=\"sepno-pill\">Zero Trust<\/span>\n    <\/div>\n<\/header>\n<div class=\"sepno-body\">\n<div class=\"sepno-summary\"><strong>\u062e\u0644\u0627\u0635\u0647 \u062a\u062c\u0631\u0628\u0647:<\/strong> Tailscale \u0628\u0631\u0627\u06cc \u0645\u0646 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u062c\u0627\u062f\u0648\u06cc\u06cc \u0627\u0645\u0646\u06cc\u062a \u0646\u0628\u0648\u062f\u061b \u0627\u0645\u0627 \u067e\u06cc\u0686\u06cc\u062f\u0647\u200c\u062a\u0631\u06cc\u0646 \u0628\u062e\u0634 \u0634\u0628\u06a9\u0647 \u0631\u0627 \u0627\u0632 \u06cc\u06a9 \u067e\u0631\u0648\u0698\u0647 \u0686\u0646\u062f\u0631\u0648\u0632\u0647 \u0628\u0647 \u0686\u0646\u062f \u0646\u0635\u0628 \u0633\u0627\u062f\u0647 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u062f. \u0646\u0648\u062f\u0647\u0627 IP \u062e\u0635\u0648\u0635\u06cc \u067e\u0627\u06cc\u062f\u0627\u0631 \u06af\u0631\u0641\u062a\u0646\u062f\u060c \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u06cc\u06a9\u062f\u06cc\u06af\u0631 \u0631\u0627 \u062f\u06cc\u062f\u0646\u062f \u0648 \u062a\u0631\u0627\u0641\u06cc\u06a9 Swarm \u0627\u0632 \u06cc\u06a9 Mesh \u0631\u0645\u0632\u0646\u06af\u0627\u0631\u06cc\u200c\u0634\u062f\u0647 \u0639\u0628\u0648\u0631 \u06a9\u0631\u062f.<\/div>\n<section class=\"sepno-section\">\n<h2>\u0645\u0633\u0626\u0644\u0647 \u0627\u0632 Docker \u0646\u0628\u0648\u062f\u061b \u0627\u0632 \u0634\u0628\u06a9\u0647 \u0628\u0648\u062f<\/h2>\n<p>\u062f\u0631 \u0622\u0632\u0645\u0627\u06cc\u0634\u06af\u0627\u0647 \u0645\u0646 \u06cc\u06a9 Linux Mint \u0646\u0642\u0634 Manager \u0631\u0627 \u062f\u0627\u0634\u062a\u060c Rocky Linux \u06cc\u06a9 Worker \u0628\u0648\u062f \u0648 Worker \u062f\u0648\u0645 \u0631\u0648\u06cc Debian \u0648 \u062f\u0631 \u0634\u0628\u06a9\u0647\u200c\u0627\u06cc \u06a9\u0627\u0645\u0644\u0627\u064b \u0645\u062a\u0641\u0627\u0648\u062a \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u0634\u062f. Docker \u0631\u0648\u06cc \u0647\u0631 \u0633\u0647 \u0645\u0627\u0634\u06cc\u0646 \u0622\u0645\u0627\u062f\u0647 \u0628\u0648\u062f\u061b \u0627\u0645\u0627 Swarm \u0628\u062f\u0648\u0646 \u06cc\u06a9 \u0645\u0633\u06cc\u0631 \u0642\u0627\u0628\u0644\u200c\u0627\u0639\u062a\u0645\u0627\u062f \u0645\u06cc\u0627\u0646 \u0646\u0648\u062f\u0647\u0627 \u0634\u06a9\u0644 \u0646\u0645\u06cc\u200c\u06af\u06cc\u0631\u062f.<\/p>\n<div class=\"sepno-grid\">\n<div class=\"sepno-card\"><span class=\"sepno-number\">1<\/span><b>Manager<\/b><span>Linux Mint \u062f\u0631 \u0634\u0628\u06a9\u0647 \u0645\u062d\u0644\u06cc<\/span><\/div>\n<div class=\"sepno-card\"><span class=\"sepno-number\">2<\/span><b>Worker<\/b><span>Rocky Linux \u067e\u0634\u062a NAT<\/span><\/div>\n<div class=\"sepno-card\"><span class=\"sepno-number\">3<\/span><b>Worker<\/b><span>Debian \u062f\u0631 \u06cc\u06a9 \u0634\u0628\u06a9\u0647 \u062f\u06cc\u06af\u0631<\/span><\/div>\n<\/p><\/div>\n<p>Swarm \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0644\u0627\u0633\u062a\u0631 \u0628\u0647 TCP\/2377\u060c \u0628\u0631\u0627\u06cc \u06a9\u0634\u0641 \u0646\u0648\u062f\u0647\u0627 \u0628\u0647 TCP \u0648 UDP\/7946 \u0648 \u0628\u0631\u0627\u06cc Overlay Network \u0628\u0647 UDP\/4789 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u062f. \u0628\u0627\u0632\u06a9\u0631\u062f\u0646 \u0627\u06cc\u0646 \u067e\u0648\u0631\u062a\u200c\u0647\u0627 \u0631\u0648\u06cc \u0627\u06cc\u0646\u062a\u0631\u0646\u062a \u0639\u0645\u0648\u0645\u06cc\u2014\u0628\u0647\u200c\u062e\u0635\u0648\u0635 VXLAN\u2014\u0631\u0627\u0647\u200c\u062d\u0644 \u0642\u0627\u0628\u0644\u200c\u0642\u0628\u0648\u0644\u06cc \u0628\u0631\u0627\u06cc \u0645\u0646 \u0646\u0628\u0648\u062f.<\/p>\n<div class=\"sepno-warning\"><strong>\u0647\u062f\u0641:<\/strong> \u0646\u0648\u062f\u0647\u0627 \u0628\u0627\u06cc\u062f \u0645\u062b\u0644 \u0627\u0639\u0636\u0627\u06cc \u06cc\u06a9 LAN \u062e\u0635\u0648\u0635\u06cc \u0628\u0627 \u0647\u0645 \u0635\u062d\u0628\u062a \u06a9\u0646\u0646\u062f\u060c \u062f\u0631\u062d\u0627\u0644\u06cc\u200c\u06a9\u0647 \u0647\u06cc\u0686 \u0633\u0631\u0648\u06cc\u0633 \u0645\u062f\u06cc\u0631\u06cc\u062a\u06cc \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u0631\u0648\u06cc \u0627\u06cc\u0646\u062a\u0631\u0646\u062a \u062f\u06cc\u062f\u0647 \u0646\u0634\u0648\u062f.<\/div>\n<\/section>\n<section class=\"sepno-section\">\n<h2>Tailscale \u062f\u0642\u06cc\u0642\u0627\u064b \u0686\u0647 \u06a9\u0627\u0631\u06cc \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u062f\u0647\u062f\u061f<\/h2>\n<p>Tailscale \u06cc\u06a9 Tailnet \u062e\u0635\u0648\u0635\u06cc \u0631\u0648\u06cc WireGuard \u0645\u06cc\u200c\u0633\u0627\u0632\u062f. \u0647\u0631 \u062f\u0633\u062a\u06af\u0627\u0647 \u0647\u0648\u06cc\u062a \u0648 IP \u062e\u0635\u0648\u0635\u06cc \u062e\u0648\u062f\u0634 \u0631\u0627 \u062f\u0627\u0631\u062f \u0648 \u062f\u0631 \u0635\u0648\u0631\u062a \u0627\u0645\u06a9\u0627\u0646\u060c \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0647\u200c\u0634\u06a9\u0644 \u0645\u0633\u062a\u0642\u06cc\u0645 \u0648 Peer-to-Peer \u0628\u0631\u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u0634\u0648\u062f. Tailscale \u062a\u0648\u0632\u06cc\u0639 \u06a9\u0644\u06cc\u062f\u060c NAT Traversal\u060c DNS\u060c \u0645\u0639\u0631\u0641\u06cc \u062f\u0633\u062a\u06af\u0627\u0647\u200c\u0647\u0627 \u0648 Access Policy \u0631\u0627 \u0647\u0645\u0627\u0647\u0646\u06af \u0645\u06cc\u200c\u06a9\u0646\u062f\u061b \u0627\u0645\u0627 \u0645\u062d\u062a\u0648\u0627\u06cc \u062a\u0631\u0627\u0641\u06cc\u06a9 \u0645\u0633\u062a\u0642\u06cc\u0645 \u0645\u06cc\u0627\u0646 \u062f\u0648 \u0646\u0648\u062f \u0645\u0646\u062a\u0642\u0644 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<div class=\"sepno-grid\">\n<div class=\"sepno-card\"><b>Control Plane<\/b><span>\u0647\u0648\u06cc\u062a\u060c \u06a9\u0644\u06cc\u062f\u0647\u0627\u060c Route\u0647\u0627 \u0648 Policy\u0647\u0627 \u0631\u0627 \u0647\u0645\u0627\u0647\u0646\u06af \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/span><\/div>\n<div class=\"sepno-card\"><b>Data Plane<\/b><span>\u062a\u0631\u0627\u0641\u06cc\u06a9 \u0648\u0627\u0642\u0639\u06cc \u0631\u0627 \u062f\u0631 \u062a\u0648\u0646\u0644 WireGuard \u062c\u0627\u0628\u0647\u200c\u062c\u0627 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/span><\/div>\n<div class=\"sepno-card\"><b>Relay<\/b><span>\u0641\u0642\u0637 \u0648\u0642\u062a\u06cc \u0627\u0631\u062a\u0628\u0627\u0637 \u0645\u0633\u062a\u0642\u06cc\u0645 \u0645\u0645\u06a9\u0646 \u0646\u0628\u0627\u0634\u062f\u060c DERP \u06cc\u0627 Peer Relay \u0648\u0627\u0631\u062f \u0645\u0633\u06cc\u0631 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/span><\/div>\n<\/p><\/div>\n<pre class=\"sepno-code\">Laptop \u2500\u2500\u2500\u2500\u2500 WireGuard encrypted tunnel \u2500\u2500\u2500\u2500\u2500 Server\n        direct when possible \u00b7 relay when necessary<\/pre>\n<p>\u062d\u062a\u06cc \u062f\u0631 \u062d\u0627\u0644\u062a Relay\u060c \u0631\u0645\u0632\u0646\u06af\u0627\u0631\u06cc \u0633\u0631\u062a\u0627\u0633\u0631\u06cc \u0628\u0627\u0642\u06cc \u0645\u06cc\u200c\u0645\u0627\u0646\u062f\u061b \u062a\u0641\u0627\u0648\u062a \u0627\u0635\u0644\u06cc \u062f\u0631 Latency \u0648 Throughput \u0627\u0633\u062a.<\/p>\n<\/section>\n<section class=\"sepno-section\">\n<h2>\u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc Swarm \u0631\u0648\u06cc IP \u062e\u0635\u0648\u0635\u06cc Tailscale<\/h2>\n<p>\u067e\u0633 \u0627\u0632 \u0646\u0635\u0628 Tailscale \u0631\u0648\u06cc \u0647\u0631 \u0633\u0647 \u0645\u0627\u0634\u06cc\u0646\u060c \u0627\u062a\u0635\u0627\u0644 \u0631\u0627 \u0628\u0627 <code>tailscale status<\/code> \u0648 <code>tailscale ping<\/code> \u0628\u0631\u0631\u0633\u06cc \u06a9\u0631\u062f\u0645. \u0633\u067e\u0633 \u0628\u0647 Docker \u06af\u0641\u062a\u0645 \u0622\u062f\u0631\u0633 Tailscale \u0645\u0627\u0634\u06cc\u0646 Manager \u0631\u0627 \u0628\u0647 \u0646\u0648\u062f\u0647\u0627\u06cc \u062f\u06cc\u06af\u0631 \u0645\u0639\u0631\u0641\u06cc \u06a9\u0646\u062f.<\/p>\n<h3>\u06f1. \u0627\u06cc\u062c\u0627\u062f Swarm \u0631\u0648\u06cc Manager<\/h3>\n<pre class=\"sepno-code\">docker swarm init \\\n  --advertise-addr &lt;TAILSCALE_MANAGER_IP&gt;<\/pre>\n<h3>\u06f2. \u0627\u0636\u0627\u0641\u0647\u200c\u06a9\u0631\u062f\u0646 Worker\u0647\u0627<\/h3>\n<pre class=\"sepno-code\">docker swarm join \\\n  --token &lt;WORKER_TOKEN&gt; \\\n  &lt;TAILSCALE_MANAGER_IP&gt;:2377<\/pre>\n<h3>\u06f3. \u0628\u0631\u0631\u0633\u06cc \u0645\u0633\u06cc\u0631 \u0648\u0627\u0642\u0639\u06cc \u0627\u0631\u062a\u0628\u0627\u0637<\/h3>\n<pre class=\"sepno-code\">tailscale ping swarm-manager-mint\ndocker node ls<\/pre>\n<div class=\"sepno-note\">\u0627\u06af\u0631 \u062e\u0631\u0648\u062c\u06cc Tailscale \u0639\u0628\u0627\u0631\u062a <strong>direct<\/strong> \u0631\u0627 \u0646\u0634\u0627\u0646 \u062f\u0647\u062f\u060c \u062f\u0648 \u0646\u0648\u062f \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u0645\u062a\u0635\u0644\u200c\u0627\u0646\u062f. \u0646\u0645\u0627\u06cc\u0634 <strong>relay<\/strong> \u0628\u0647 \u0645\u0639\u0646\u06cc \u0639\u0628\u0648\u0631 \u0645\u0633\u06cc\u0631 \u0627\u0632 DERP \u0627\u0633\u062a\u2014\u0628\u0627 \u0631\u0645\u0632\u0646\u06af\u0627\u0631\u06cc \u06a9\u0627\u0645\u0644\u060c \u0627\u0645\u0627 \u0627\u062d\u062a\u0645\u0627\u0644\u0627\u064b \u06a9\u0645\u06cc \u06a9\u0646\u062f\u062a\u0631.<\/div>\n<\/section>\n<section class=\"sepno-section\">\n<h2>\u0646\u062a\u06cc\u062c\u0647\u200c\u0627\u06cc \u06a9\u0647 \u062f\u0631 \u0639\u0645\u0644 \u06af\u0631\u0641\u062a\u0645<\/h2>\n<ul class=\"sepno-checks\">\n<li>Port Forwarding \u0627\u0632 \u0633\u0646\u0627\u0631\u06cc\u0648 \u062d\u0630\u0641 \u0634\u062f.<\/li>\n<li>\u0628\u0647 IP \u0639\u0645\u0648\u0645\u06cc \u062b\u0627\u0628\u062a \u0648\u0627\u0628\u0633\u062a\u0647 \u0646\u0628\u0648\u062f\u0645.<\/li>\n<li>SSH \u0641\u0642\u0637 \u0631\u0648\u06cc \u0634\u0628\u06a9\u0647 \u062e\u0635\u0648\u0635\u06cc \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0628\u0648\u062f.<\/li>\n<li>MagicDNS \u062c\u0627\u06cc IP\u0647\u0627\u06cc \u062d\u0641\u0638\u200c\u06a9\u0631\u062f\u0646\u06cc \u0631\u0627 \u06af\u0631\u0641\u062a.<\/li>\n<li>\u0646\u0648\u062f\u0647\u0627\u06cc \u0633\u0647 \u0634\u0628\u06a9\u0647 \u0645\u0627\u0646\u0646\u062f \u06cc\u06a9 LAN \u0631\u0641\u062a\u0627\u0631 \u06a9\u0631\u062f\u0646\u062f.<\/li>\n<li>\u062f\u0633\u062a\u0631\u0633\u06cc\u200c\u0647\u0627 \u0628\u0627 ACL \u0648 Tag \u0645\u062d\u062f\u0648\u062f \u0634\u062f\u0646\u062f.<\/li>\n<\/ul>\n<p>\u0628\u0631\u0627\u06cc SSH \u062f\u0648 \u0627\u0646\u062a\u062e\u0627\u0628 \u062f\u0627\u0634\u062a\u0645: OpenSSH \u0645\u0639\u0645\u0648\u0644\u06cc \u0631\u0648\u06cc IP \u062e\u0635\u0648\u0635\u06cc Tailscale\u060c \u06cc\u0627 Tailscale SSH \u06a9\u0647 \u0647\u0648\u06cc\u062a \u0648 Policy\u0647\u0627\u06cc Tailnet \u0631\u0627 \u0648\u0627\u0631\u062f \u0641\u0631\u0627\u06cc\u0646\u062f \u0645\u062c\u0648\u0632\u062f\u0647\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<pre class=\"sepno-code\">sudo tailscale set --ssh\nssh sepehr@swarm-manager-mint<\/pre>\n<\/section>\n<section class=\"sepno-section\">\n<h2>Tailscale \u06cc\u0627 VPN \u0633\u0646\u062a\u06cc\u061f<\/h2>\n<div class=\"sepno-table-wrap\">\n<table class=\"sepno-table\">\n<thead>\n<tr>\n<th>\u0645\u0648\u0636\u0648\u0639<\/th>\n<th>VPN \u0633\u0646\u062a\u06cc<\/th>\n<th>Tailscale<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u0645\u0639\u0645\u0627\u0631\u06cc<\/td>\n<td>\u0627\u063a\u0644\u0628 Gateway \u0645\u0631\u06a9\u0632\u06cc<\/td>\n<td>Mesh \u0648 \u0645\u0633\u062a\u0642\u06cc\u0645 \u062f\u0631 \u0635\u0648\u0631\u062a \u0627\u0645\u06a9\u0627\u0646<\/td>\n<\/tr>\n<tr>\n<td>NAT Traversal<\/td>\n<td>\u062a\u0646\u0638\u06cc\u0645 \u062f\u0633\u062a\u06cc \u0628\u06cc\u0634\u062a\u0631<\/td>\n<td>\u062e\u0648\u062f\u06a9\u0627\u0631 \u062f\u0631 \u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u0634\u0628\u06a9\u0647\u200c\u0647\u0627<\/td>\n<\/tr>\n<tr>\n<td>\u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0644\u06cc\u062f<\/td>\n<td>\u062f\u0633\u062a\u06cc \u06cc\u0627 \u0648\u0627\u0628\u0633\u062a\u0647 \u0628\u0647 \u0633\u0631\u0648\u0631<\/td>\n<td>\u0628\u0631 \u067e\u0627\u06cc\u0647 \u0647\u0648\u06cc\u062a \u0648 \u062f\u0633\u062a\u06af\u0627\u0647<\/td>\n<\/tr>\n<tr>\n<td>DNS \u062f\u0627\u062e\u0644\u06cc<\/td>\n<td>\u0646\u06cc\u0627\u0632\u0645\u0646\u062f \u062a\u0646\u0638\u06cc\u0645 \u062c\u062f\u0627\u06af\u0627\u0646\u0647<\/td>\n<td>MagicDNS<\/td>\n<\/tr>\n<tr>\n<td>\u06a9\u0646\u062a\u0631\u0644 \u062f\u0633\u062a\u0631\u0633\u06cc<\/td>\n<td>\u0639\u0645\u062f\u062a\u0627\u064b \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u0634\u0628\u06a9\u0647<\/td>\n<td>\u06a9\u0627\u0631\u0628\u0631\u060c \u062f\u0633\u062a\u06af\u0627\u0647\u060c Tag \u0648 Policy<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>\u0627\u06af\u0631 \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0627\u0645\u0644 \u0631\u0648\u06cc Gateway \u0648 Route\u0647\u0627 \u0627\u0648\u0644\u0648\u06cc\u062a \u0627\u0648\u0644 \u0628\u0627\u0634\u062f\u060c VPN \u0633\u0646\u062a\u06cc \u0647\u0645\u0686\u0646\u0627\u0646 \u0627\u0646\u062a\u062e\u0627\u0628 \u062e\u0648\u0628\u06cc \u0627\u0633\u062a. \u0627\u0645\u0627 \u0628\u0631\u0627\u06cc Homelab\u060c \u062a\u06cc\u0645 \u06a9\u0648\u0686\u06a9 \u0648 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u067e\u0631\u0627\u06a9\u0646\u062f\u0647\u060c Tailscale \u0647\u0632\u06cc\u0646\u0647 \u0639\u0645\u0644\u06cc\u0627\u062a\u06cc \u0628\u0633\u06cc\u0627\u0631 \u06a9\u0645\u062a\u0631\u06cc \u062f\u0627\u0631\u062f.<\/p>\n<\/section>\n<section class=\"sepno-section\">\n<h2>\u0627\u0645\u0646\u06cc\u062a: \u0628\u062e\u0634 \u0645\u0647\u0645\u06cc \u06a9\u0647 \u0646\u0628\u0627\u06cc\u062f \u0633\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0634\u0648\u062f<\/h2>\n<p>\u0646\u0635\u0628 Tailscale \u0628\u0647\u200c\u062a\u0646\u0647\u0627\u06cc\u06cc \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0631\u0627 Zero Trust \u0646\u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u0645\u0646\u06cc\u062a \u0648\u0627\u0642\u0639\u06cc \u0632\u0645\u0627\u0646\u06cc \u0634\u06a9\u0644 \u0645\u06cc\u200c\u06af\u06cc\u0631\u062f \u06a9\u0647 \u062f\u0633\u062a\u0631\u0633\u06cc\u200c\u0647\u0627 \u0645\u062d\u062f\u0648\u062f\u060c \u0647\u0648\u06cc\u062a\u200c\u0647\u0627 \u0642\u0648\u06cc \u0648 Endpoint\u0647\u0627 \u0628\u0647\u200c\u0631\u0648\u0632 \u0628\u0627\u0634\u0646\u062f.<\/p>\n<ul class=\"sepno-checks\">\n<li>Policy \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0631\u0627 \u0628\u0627\u0632\u0628\u06cc\u0646\u06cc \u06a9\u0646\u06cc\u062f.<\/li>\n<li>\u0628\u0631\u0627\u06cc \u0646\u0642\u0634\u200c\u0647\u0627\u06cc \u0633\u0631\u0648\u0631 Tag \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f.<\/li>\n<li>SSH \u0631\u0627 \u0641\u0642\u0637 \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u06af\u0627\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a\u06cc \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f.<\/li>\n<li>MFA \u0631\u0627 \u0631\u0648\u06cc Identity Provider \u0641\u0639\u0627\u0644 \u06a9\u0646\u06cc\u062f.<\/li>\n<li>\u062f\u0633\u062a\u06af\u0627\u0647\u200c\u0647\u0627\u06cc \u0642\u062f\u06cc\u0645\u06cc \u0631\u0627 \u0627\u0632 Tailnet \u062d\u0630\u0641 \u06a9\u0646\u06cc\u062f.<\/li>\n<li>\u0641\u0627\u06cc\u0631\u0648\u0627\u0644 \u0633\u06cc\u0633\u062a\u0645\u200c\u0639\u0627\u0645\u0644 \u0631\u0627 \u0647\u0645\u0686\u0646\u0627\u0646 \u062d\u0641\u0638 \u06a9\u0646\u06cc\u062f.<\/li>\n<\/ul>\n<div class=\"sepno-warning\">\u0628\u0631\u0627\u06cc Swarm \u0641\u0642\u0637 \u067e\u0648\u0631\u062a\u200c\u0647\u0627\u06cc \u0636\u0631\u0648\u0631\u06cc \u0631\u0627 \u0628\u06cc\u0646 Tag\u0647\u0627\u06cc <code>tag:swarm-manager<\/code> \u0648 <code>tag:swarm-worker<\/code> \u0645\u062c\u0627\u0632 \u06a9\u0646\u06cc\u062f. Tailnet \u062e\u0635\u0648\u0635\u06cc \u0646\u0628\u0627\u06cc\u062f \u0628\u0647 \u0645\u0639\u0646\u06cc \u00ab\u0647\u0645\u0647 \u0628\u0647 \u0647\u0645\u0647\u00bb \u0628\u0627\u0634\u062f.<\/div>\n<\/section>\n<section class=\"sepno-section\">\n<h2>Subnet Router \u0686\u0647 \u0632\u0645\u0627\u0646\u06cc \u0645\u0641\u06cc\u062f \u0627\u0633\u062a\u061f<\/h2>\n<p>\u0627\u06af\u0631 \u0631\u0648\u06cc \u06cc\u06a9 \u067e\u0631\u06cc\u0646\u062a\u0631\u060c NAS\u060c \u0631\u0648\u062a\u0631 \u06cc\u0627 \u0633\u06cc\u0633\u062a\u0645 \u0642\u062f\u06cc\u0645\u06cc \u0627\u0645\u06a9\u0627\u0646 \u0646\u0635\u0628 Tailscale \u0648\u062c\u0648\u062f \u0646\u062f\u0627\u0631\u062f\u060c \u06cc\u06a9 \u0646\u0648\u062f Tailscale \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0645\u0633\u06cc\u0631 \u0622\u0646 Subnet \u0631\u0627 advertise \u06a9\u0646\u062f:<\/p>\n<pre class=\"sepno-code\">sudo tailscale set \\\n  --advertise-routes=192.168.56.0\/24<\/pre>\n<p>\u067e\u0633 \u0627\u0632 \u062a\u0623\u06cc\u06cc\u062f Route \u062f\u0631 \u067e\u0646\u0644 \u0645\u062f\u06cc\u0631\u06cc\u062a\u06cc\u060c \u0641\u0642\u0637 \u062f\u0633\u062a\u06af\u0627\u0647\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 Policy \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u0628\u0647 \u0622\u0646 \u0634\u0628\u06a9\u0647 \u062f\u0627\u062e\u0644\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u062e\u0648\u0627\u0647\u0646\u062f \u062f\u0627\u0634\u062a.<\/p>\n<\/section>\n<section class=\"sepno-section sepno-faq\">\n<h2>\u067e\u0631\u0633\u0634\u200c\u0647\u0627\u06cc \u0645\u062a\u062f\u0627\u0648\u0644<\/h2>\n<details>\n<summary>\u0622\u06cc\u0627 Tailscale \u0628\u0647 IP \u0639\u0645\u0648\u0645\u06cc \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u062f\u061f<\/summary>\n<p>\u062f\u0631 \u0628\u06cc\u0634\u062a\u0631 \u0633\u0646\u0627\u0631\u06cc\u0648\u0647\u0627 \u062e\u06cc\u0631. NAT Traversal \u0627\u0631\u062a\u0628\u0627\u0637 \u0645\u0633\u062a\u0642\u06cc\u0645 \u0631\u0627 \u0627\u0645\u062a\u062d\u0627\u0646 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u062f\u0631 \u0635\u0648\u0631\u062a \u0634\u06a9\u0633\u062a\u060c Relay \u0648\u0627\u0631\u062f \u0645\u0633\u06cc\u0631 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<\/details>\n<details>\n<summary>\u0622\u06cc\u0627 \u062a\u0631\u0627\u0641\u06cc\u06a9 \u0647\u0645\u06cc\u0634\u0647 \u0627\u0632 \u0633\u0631\u0648\u0631\u0647\u0627\u06cc Tailscale \u0639\u0628\u0648\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f\u061f<\/summary>\n<p>\u062e\u06cc\u0631. \u062f\u0631 \u0627\u062a\u0635\u0627\u0644 direct\u060c \u062a\u0631\u0627\u0641\u06cc\u06a9 \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u0628\u06cc\u0646 \u062f\u0633\u062a\u06af\u0627\u0647\u200c\u0647\u0627\u0633\u062a. DERP \u0641\u0642\u0637 \u0632\u0645\u0627\u0646\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f \u06a9\u0647 \u0645\u0633\u06cc\u0631 \u0645\u0633\u062a\u0642\u06cc\u0645 \u0645\u0645\u06a9\u0646 \u0646\u0628\u0627\u0634\u062f.<\/p>\n<\/details>\n<details>\n<summary>\u0622\u06cc\u0627 Tailscale \u0628\u0631\u0627\u06cc Docker Swarm \u0645\u0646\u0627\u0633\u0628 \u0627\u0633\u062a\u061f<\/summary>\n<p>\u0628\u0631\u0627\u06cc \u0622\u0632\u0645\u0627\u06cc\u0634\u06af\u0627\u0647 \u0648 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a\u200c\u0647\u0627\u06cc \u067e\u0631\u0627\u06a9\u0646\u062f\u0647 \u0628\u0633\u06cc\u0627\u0631 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0627\u0633\u062a\u061b \u0645\u0634\u0631\u0648\u0637 \u0628\u0647 \u0627\u06cc\u0646\u06a9\u0647 \u067e\u0648\u0631\u062a\u200c\u0647\u0627\u06cc Swarm \u0648 Policy\u0647\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0627 \u062f\u0642\u062a \u0637\u0631\u0627\u062d\u06cc \u0634\u0648\u0646\u062f.<\/p>\n<\/details>\n<details>\n<summary>\u062a\u0641\u0627\u0648\u062a Tailscale \u0648 WireGuard \u0686\u06cc\u0633\u062a\u061f<\/summary>\n<p>WireGuard \u067e\u0631\u0648\u062a\u06a9\u0644 \u062a\u0648\u0646\u0644\u200c\u0633\u0627\u0632\u06cc \u0627\u0633\u062a. Tailscale \u0645\u062f\u06cc\u0631\u06cc\u062a \u0647\u0648\u06cc\u062a\u060c \u06a9\u0644\u06cc\u062f\u060c Mesh\u060c NAT Traversal\u060c DNS \u0648 Policy \u0631\u0627 \u0631\u0648\u06cc \u0622\u0646 \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<\/details>\n<\/section>\n<section class=\"sepno-section\">\n<div class=\"sepno-outro\">\n<h2>\u062c\u0645\u0639\u200c\u0628\u0646\u062f\u06cc<\/h2>\n<p>\u0627\u0631\u0632\u0634 \u0627\u0635\u0644\u06cc Tailscale \u0628\u0631\u0627\u06cc \u0645\u0646 \u00abVPN \u062f\u06cc\u06af\u0631\u06cc\u00bb \u0646\u0628\u0648\u062f\u061b \u0628\u0644\u06a9\u0647 \u062d\u0630\u0641 \u0627\u0635\u0637\u06a9\u0627\u06a9 \u0634\u0628\u06a9\u0647 \u0628\u0648\u062f. \u0633\u0647 \u0646\u0648\u062f \u062f\u0631 \u0633\u0647 \u0645\u062d\u06cc\u0637 \u0645\u062a\u0641\u0627\u0648\u062a\u060c \u0628\u062f\u0648\u0646 \u067e\u0648\u0631\u062a \u0639\u0645\u0648\u0645\u06cc \u0648 \u0628\u062f\u0648\u0646 \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0633\u062a\u06cc \u062a\u0648\u0646\u0644\u200c\u0647\u0627\u060c \u0628\u0647 \u06cc\u06a9 Swarm \u062e\u0635\u0648\u0635\u06cc \u0648 \u0642\u0627\u0628\u0644\u200c\u06a9\u0646\u062a\u0631\u0644 \u062a\u0628\u062f\u06cc\u0644 \u0634\u062f\u0646\u062f. \u0647\u0645\u06cc\u0646 \u0633\u0627\u062f\u06af\u06cc \u0627\u062c\u0627\u0632\u0647 \u062f\u0627\u062f \u0632\u0645\u0627\u0646\u0645 \u0631\u0627 \u0628\u0647\u200c\u062c\u0627\u06cc \u0631\u0648\u062a\u0631 \u0648 NAT\u060c \u0631\u0648\u06cc \u062e\u0648\u062f \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0635\u0631\u0641 \u06a9\u0646\u0645.<\/p>\n<\/div>\n<\/section><\/div>\n<\/article>\n","protected":false},"excerpt":{"rendered":"<p>\u062a\u062c\u0631\u0628\u0647 \u0639\u0645\u0644\u06cc \u0627\u062a\u0635\u0627\u0644 \u0627\u0645\u0646 \u0646\u0648\u062f\u0647\u0627\u06cc Docker Swarm \u062f\u0631 \u0634\u0628\u06a9\u0647\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0628\u0627 Tailscale\u061b \u0628\u062f\u0648\u0646 IP \u0639\u0645\u0648\u0645\u06cc\u060c Port Forwarding \u06cc\u0627 \u0628\u0627\u0632\u06a9\u0631\u062f\u0646 \u067e\u0648\u0631\u062a\u200c\u0647\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a\u06cc \u0631\u0648\u06cc \u0627\u06cc\u0646\u062a\u0631\u0646\u062a.<\/p>\n","protected":false},"author":1,"featured_media":2480,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_themeisle_gutenberg_block_has_review":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-2476","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\u0627\u062a\u0635\u0627\u0644 \u0627\u0645\u0646 Docker Swarm \u0628\u0627 Tailscale VPN\u061b \u0628\u062f\u0648\u0646 IP \u0639\u0645\u0648\u0645\u06cc \u0648 Port Forwarding - Sepno Network<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/sepno.net\/?p=2476\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u0627\u062a\u0635\u0627\u0644 \u0627\u0645\u0646 Docker Swarm \u0628\u0627 Tailscale VPN\u061b \u0628\u062f\u0648\u0646 IP \u0639\u0645\u0648\u0645\u06cc \u0648 Port Forwarding - Sepno Network\" \/>\n<meta property=\"og:description\" content=\"\u062a\u062c\u0631\u0628\u0647 \u0639\u0645\u0644\u06cc \u0627\u062a\u0635\u0627\u0644 \u0627\u0645\u0646 \u0646\u0648\u062f\u0647\u0627\u06cc Docker Swarm \u062f\u0631 \u0634\u0628\u06a9\u0647\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0628\u0627 Tailscale\u061b \u0628\u062f\u0648\u0646 IP \u0639\u0645\u0648\u0645\u06cc\u060c Port Forwarding \u06cc\u0627 \u0628\u0627\u0632\u06a9\u0631\u062f\u0646 \u067e\u0648\u0631\u062a\u200c\u0647\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a\u06cc \u0631\u0648\u06cc \u0627\u06cc\u0646\u062a\u0631\u0646\u062a.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/sepno.net\/?p=2476\" \/>\n<meta property=\"og:site_name\" content=\"Sepno Network\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-05T11:10:19+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-05T12:01:44+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/sepno.net\/wp-content\/uploads\/2026\/08\/tailscale-docker-swarm-secure-mesh-web.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1600\" \/>\n\t<meta property=\"og:image:height\" content=\"900\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/sepno.net\\\/?p=2476#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sepno.net\\\/?p=2476\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\\\/\\\/sepno.net\\\/#\\\/schema\\\/person\\\/5edc6550ac1b27272ff9164e461a8461\"},\"headline\":\"\u0627\u062a\u0635\u0627\u0644 \u0627\u0645\u0646 Docker Swarm \u0628\u0627 Tailscale VPN\u061b \u0628\u062f\u0648\u0646 IP \u0639\u0645\u0648\u0645\u06cc \u0648 Port Forwarding\",\"datePublished\":\"2026-08-05T11:10:19+00:00\",\"dateModified\":\"2026-08-05T12:01:44+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/sepno.net\\\/?p=2476\"},\"wordCount\":176,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/sepno.net\\\/?p=2476#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/sepno.net\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/tailscale-docker-swarm-secure-mesh-web.jpg\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/sepno.net\\\/?p=2476#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/sepno.net\\\/?p=2476\",\"url\":\"https:\\\/\\\/sepno.net\\\/?p=2476\",\"name\":\"\u0627\u062a\u0635\u0627\u0644 \u0627\u0645\u0646 Docker Swarm \u0628\u0627 Tailscale VPN\u061b \u0628\u062f\u0648\u0646 IP \u0639\u0645\u0648\u0645\u06cc \u0648 Port Forwarding - Sepno Network\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sepno.net\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/sepno.net\\\/?p=2476#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/sepno.net\\\/?p=2476#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/sepno.net\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/tailscale-docker-swarm-secure-mesh-web.jpg\",\"datePublished\":\"2026-08-05T11:10:19+00:00\",\"dateModified\":\"2026-08-05T12:01:44+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/sepno.net\\\/#\\\/schema\\\/person\\\/5edc6550ac1b27272ff9164e461a8461\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/sepno.net\\\/?p=2476#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/sepno.net\\\/?p=2476\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/sepno.net\\\/?p=2476#primaryimage\",\"url\":\"https:\\\/\\\/sepno.net\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/tailscale-docker-swarm-secure-mesh-web.jpg\",\"contentUrl\":\"https:\\\/\\\/sepno.net\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/tailscale-docker-swarm-secure-mesh-web.jpg\",\"width\":1600,\"height\":900},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/sepno.net\\\/?p=2476#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/sepno.net\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u0627\u062a\u0635\u0627\u0644 \u0627\u0645\u0646 Docker Swarm \u0628\u0627 Tailscale VPN\u061b \u0628\u062f\u0648\u0646 IP \u0639\u0645\u0648\u0645\u06cc \u0648 Port Forwarding\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/sepno.net\\\/#website\",\"url\":\"https:\\\/\\\/sepno.net\\\/\",\"name\":\"Sepno Network\",\"description\":\"DevOps\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/sepno.net\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/sepno.net\\\/#\\\/schema\\\/person\\\/5edc6550ac1b27272ff9164e461a8461\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/00c2182714c0a81a06e0e6778a79794f969622bb79c398db5e5045e07d4d32b3?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/00c2182714c0a81a06e0e6778a79794f969622bb79c398db5e5045e07d4d32b3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/00c2182714c0a81a06e0e6778a79794f969622bb79c398db5e5045e07d4d32b3?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"https:\\\/\\\/sepno.net\"],\"url\":\"https:\\\/\\\/sepno.net\\\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u0627\u062a\u0635\u0627\u0644 \u0627\u0645\u0646 Docker Swarm \u0628\u0627 Tailscale VPN\u061b \u0628\u062f\u0648\u0646 IP \u0639\u0645\u0648\u0645\u06cc \u0648 Port Forwarding - Sepno Network","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/sepno.net\/?p=2476","og_locale":"en_US","og_type":"article","og_title":"\u0627\u062a\u0635\u0627\u0644 \u0627\u0645\u0646 Docker Swarm \u0628\u0627 Tailscale VPN\u061b \u0628\u062f\u0648\u0646 IP \u0639\u0645\u0648\u0645\u06cc \u0648 Port Forwarding - Sepno Network","og_description":"\u062a\u062c\u0631\u0628\u0647 \u0639\u0645\u0644\u06cc \u0627\u062a\u0635\u0627\u0644 \u0627\u0645\u0646 \u0646\u0648\u062f\u0647\u0627\u06cc Docker Swarm \u062f\u0631 \u0634\u0628\u06a9\u0647\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0628\u0627 Tailscale\u061b \u0628\u062f\u0648\u0646 IP \u0639\u0645\u0648\u0645\u06cc\u060c Port Forwarding \u06cc\u0627 \u0628\u0627\u0632\u06a9\u0631\u062f\u0646 \u067e\u0648\u0631\u062a\u200c\u0647\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a\u06cc \u0631\u0648\u06cc \u0627\u06cc\u0646\u062a\u0631\u0646\u062a.","og_url":"https:\/\/sepno.net\/?p=2476","og_site_name":"Sepno Network","article_published_time":"2026-08-05T11:10:19+00:00","article_modified_time":"2026-08-05T12:01:44+00:00","og_image":[{"width":1600,"height":900,"url":"https:\/\/sepno.net\/wp-content\/uploads\/2026\/08\/tailscale-docker-swarm-secure-mesh-web.jpg","type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"12 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/sepno.net\/?p=2476#article","isPartOf":{"@id":"https:\/\/sepno.net\/?p=2476"},"author":{"name":"admin","@id":"https:\/\/sepno.net\/#\/schema\/person\/5edc6550ac1b27272ff9164e461a8461"},"headline":"\u0627\u062a\u0635\u0627\u0644 \u0627\u0645\u0646 Docker Swarm \u0628\u0627 Tailscale VPN\u061b \u0628\u062f\u0648\u0646 IP \u0639\u0645\u0648\u0645\u06cc \u0648 Port Forwarding","datePublished":"2026-08-05T11:10:19+00:00","dateModified":"2026-08-05T12:01:44+00:00","mainEntityOfPage":{"@id":"https:\/\/sepno.net\/?p=2476"},"wordCount":176,"commentCount":0,"image":{"@id":"https:\/\/sepno.net\/?p=2476#primaryimage"},"thumbnailUrl":"https:\/\/sepno.net\/wp-content\/uploads\/2026\/08\/tailscale-docker-swarm-secure-mesh-web.jpg","inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/sepno.net\/?p=2476#respond"]}]},{"@type":"WebPage","@id":"https:\/\/sepno.net\/?p=2476","url":"https:\/\/sepno.net\/?p=2476","name":"\u0627\u062a\u0635\u0627\u0644 \u0627\u0645\u0646 Docker Swarm \u0628\u0627 Tailscale VPN\u061b \u0628\u062f\u0648\u0646 IP \u0639\u0645\u0648\u0645\u06cc \u0648 Port Forwarding - Sepno Network","isPartOf":{"@id":"https:\/\/sepno.net\/#website"},"primaryImageOfPage":{"@id":"https:\/\/sepno.net\/?p=2476#primaryimage"},"image":{"@id":"https:\/\/sepno.net\/?p=2476#primaryimage"},"thumbnailUrl":"https:\/\/sepno.net\/wp-content\/uploads\/2026\/08\/tailscale-docker-swarm-secure-mesh-web.jpg","datePublished":"2026-08-05T11:10:19+00:00","dateModified":"2026-08-05T12:01:44+00:00","author":{"@id":"https:\/\/sepno.net\/#\/schema\/person\/5edc6550ac1b27272ff9164e461a8461"},"breadcrumb":{"@id":"https:\/\/sepno.net\/?p=2476#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/sepno.net\/?p=2476"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/sepno.net\/?p=2476#primaryimage","url":"https:\/\/sepno.net\/wp-content\/uploads\/2026\/08\/tailscale-docker-swarm-secure-mesh-web.jpg","contentUrl":"https:\/\/sepno.net\/wp-content\/uploads\/2026\/08\/tailscale-docker-swarm-secure-mesh-web.jpg","width":1600,"height":900},{"@type":"BreadcrumbList","@id":"https:\/\/sepno.net\/?p=2476#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/sepno.net\/"},{"@type":"ListItem","position":2,"name":"\u0627\u062a\u0635\u0627\u0644 \u0627\u0645\u0646 Docker Swarm \u0628\u0627 Tailscale VPN\u061b \u0628\u062f\u0648\u0646 IP \u0639\u0645\u0648\u0645\u06cc \u0648 Port Forwarding"}]},{"@type":"WebSite","@id":"https:\/\/sepno.net\/#website","url":"https:\/\/sepno.net\/","name":"Sepno Network","description":"DevOps","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/sepno.net\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/sepno.net\/#\/schema\/person\/5edc6550ac1b27272ff9164e461a8461","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/00c2182714c0a81a06e0e6778a79794f969622bb79c398db5e5045e07d4d32b3?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/00c2182714c0a81a06e0e6778a79794f969622bb79c398db5e5045e07d4d32b3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/00c2182714c0a81a06e0e6778a79794f969622bb79c398db5e5045e07d4d32b3?s=96&d=mm&r=g","caption":"admin"},"sameAs":["https:\/\/sepno.net"],"url":"https:\/\/sepno.net\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/sepno.net\/index.php?rest_route=\/wp\/v2\/posts\/2476","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sepno.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sepno.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sepno.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sepno.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2476"}],"version-history":[{"count":4,"href":"https:\/\/sepno.net\/index.php?rest_route=\/wp\/v2\/posts\/2476\/revisions"}],"predecessor-version":[{"id":2486,"href":"https:\/\/sepno.net\/index.php?rest_route=\/wp\/v2\/posts\/2476\/revisions\/2486"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sepno.net\/index.php?rest_route=\/wp\/v2\/media\/2480"}],"wp:attachment":[{"href":"https:\/\/sepno.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2476"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sepno.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2476"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sepno.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2476"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}