Cloudflare WARP به سرور شما یک آدرس خروجی Cloudflare میدهد که برای دسترسی به منابع فقط IPv6 یا تغییر IP خروجیِ ظاهری مفید است. روی یک ماشین راه دور، تلهی کلاسیک این است که حالت پیشفرض WARP جدول مسیریابی را در اختیار میگیرد و نشست SSH شما را قطع میکند. این راهنما دو روش امن را روی VPS Linux Infrawire نشان میدهد: کلاینت رسمی در حالت پروکسی، و wgcf همراه با WireGuard و مسیریابی جزئی.
📋 پیشنیازها
- یک VPS با Ubuntu 24.04 یا Debian 12 و دسترسی SSH با کاربر root (از بخش مشتری خود، IP و گذرواژهی root ماشین را پیدا میکنید).
- آیپی عمومی VPS که جداگانه یادداشت شده باشد (
VPS_IP). - راهی برای باز کردن کنسول VPS، اگر تغییر شبکه شما را بیرون انداخت.
- بستههای
curl،gpgوlsb-releaseنصب شده باشند.
📦 نصب کلاینت رسمی
مخزن Cloudflare را اضافه و بسته را نصب کنید:
Bashapt update && apt install -y curl gpg lsb-release curl -fsSL https://pkg.cloudflareclient.com/pubkey.gpg | gpg --yes --dearmor --output /usr/share/keyrings/cloudflare-warp-archive-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/cloudflare-client.list apt update && apt install -y cloudflare-warp systemctl enable --now warp-svc
🛡️ حالت پروکسی: SSH را زنده نگه دارید
در حالت پروکسی، WARP به جدول مسیریابی دست نمیزند و فقط یک پورت SOCKS5 محلی باز میکند که هر وقت لازم بود از آن استفاده میکنید. حالت را پیش از اتصال تنظیم کنید، نه بعد از آن.
Bashwarp-cli --accept-tos registration new warp-cli mode proxy warp-cli proxy port 40000 warp-cli connect warp-cli status
پروکسی فقط روی 127.0.0.1:40000 گوش میدهد. برای عبور دادن یک دستور از آن:
Bashcurl -x socks5h://127.0.0.1:40000 https://www.cloudflare.com/cdn-cgi/trace
طرح socks5h مهم است: باعث میشود تفسیر DNS هم از پروکسی عبور کند. برای توقف، دستور warp-cli disconnect را اجرا کنید.
🔀 روش جایگزین: wgcf و WireGuard
اگر رابط WireGuard در سطح هسته را ترجیح میدهید، wgcf یک حساب WARP میسازد و پیکربندی استاندارد تولید میکند. نسخهی مناسب معماری خود را از صفحهی انتشارهای GitHub این پروژه دانلود کنید و سپس:
Bashapt install -y wireguard-tools chmod +x wgcf_linux_amd64 && mv wgcf_linux_amd64 /usr/local/bin/wgcf cd /root && wgcf register && wgcf generate cp wgcf-profile.conf /etc/wireguard/wgcf.conf
هنوز آن را راهاندازی نکنید: پروفایل تولیدشده همهچیز را از تونل رد میکند و SSH را قطع میکند.
✂️ مسیریابی جزئی و فقط IPv6
فایل /etc/wireguard/wgcf.conf را ویرایش کنید. برای عبور دادن فقط ترافیک IPv6 از WARP و دستنخورده ماندن IPv4 (و نشست SSH شما)، مقدار AllowedIPs را محدود کنید، خط DNS را حذف کنید و MTU را کاهش دهید:
INI1[Interface] 2MTU = 1280 3PostUp = ip rule add from VPS_IP lookup main 4PostDown = ip rule del from VPS_IP lookup main 5 6[Peer] 7AllowedIPs = ::/0 8Endpoint = engage.cloudflareclient.com:2408
خطوط کلید و Address تولیدشده توسط wgcf را نگه دارید. جفت ip rule تضمین میکند پاسخهایی که از VPS_IP خارج میشوند همیشه از جدول اصلی بروند و اتصالهای ورودی محافظت شوند. اگر فقط با IPv4 وصل میشوید، بعداً میتوانید ::/0 را با 0.0.0.0/0, ::/0 جایگزین کنید تا همهچیز تونل شود. رابط را فعال کنید:
Bashsystemctl enable --now wg-quick@wgcf
✅ بررسی
مطمئن شوید WARP روی مسیر درست فعال است:
Bashcurl -s https://www.cloudflare.com/cdn-cgi/trace | grep warp curl -6 -s https://www.cloudflare.com/cdn-cgi/trace | grep -E 'ip=|warp=' wg show wgcf
نمایش warp=on در درخواست IPv6 همراه با یک handshake تازه در wg show یعنی تونل کار میکند. درخواست سادهی IPv4 باید همچنان warp=off نشان دهد.
🛠️ عیبیابی
دسترسی SSH بلافاصله پس از اتصال قطع شد. WARP در حالت تونل کامل بود. کنسول VPS را باز کنید و warp-cli disconnect (یا systemctl stop wg-quick@wgcf) را اجرا کنید، سپس پیش از اتصال دوباره به warp-cli mode proxy بروید. اگر از طریق IPv6 به سرور وصل میشوید، در AllowedIPs از ::/0 استفاده نکنید.
DNS دیگر تفسیر نمیکند. وقتی خط DNS وجود داشته باشد، wg-quick تنظیمات resolver را بازنویسی میکند. این خط را از پروفایل حذف کنید یا از پروکسی socks5h استفاده کنید تا تفسیر در سمت Cloudflare انجام شود.
صفحههای بزرگ گیر میکنند یا TLS متوقف میشود. تقریباً همیشه مشکل MTU است. مقدار MTU = 1280 را در پروفایل WireGuard نگه دارید و با ping -M do -s 1200 1.1.1.1 آزمایش کنید.
🎉 حالا VPS شما هر زمان لازم باشد میتواند از Cloudflare WARP استفاده کند، بدون اینکه نشست SSH قطع شود.