نحوه پیکربندی NordLayer WireGuard روی iPhone و Android
یک راهنمای عملی برای درونریزی تونل NordLayer WireGuard روی دستگاههای iOS و اندروید، بررسی handshake و نشانی خروجی، و رفع مشکلات مخصوص موبایل که اتصالات WireGuard را مختل میکنند.
مرور کلی
NordLayer WireGuard تونلهای WireGuard در سطح تجاری را روی گیتویهای اختصاصی با صورتحساب ماهانه ثابت ارائه میدهد، که برای تیمهایی مناسب است که نیاز دارند چند کارمند از گوشیها و تبلتها متصل شوند، نه از لپتاپهای مدیریتشده. چون WireGuard یک پروتکل استاندارد است، روند کار روی موبایل یکسان است، چه تونلها از NordLayer بیایند چه از ارائهدهنده دیگری که از WireGuard پشتیبانی میکند: یک پیکربندی peer را درونریزی میکنید، تونل را بالا میآورید، و تأیید میکنید که ترافیک واقعاً از طریق گیتوی خارج میشود.
این آموزش کلاینتهای رسمی WireGuard روی iOS و اندروید، روشهای درونریزی که هر پلتفرم پشتیبانی میکند، و مراحل بررسی و عیبیابی که شایعترین خطاهای موبایل را شناسایی میکند، پوشش میدهد.
پیشنیازها
- یک seat فعال NordLayer یا حساب که توسط مدیر سازمان شما صادر شده باشد، همراه با یک peer WireGuard که برای همین دستگاه خاص ایجاد شده است.
- جزئیات تونل: یک کلید خصوصی interface، یک نشانی تونل، یک resolver DNS، کلید عمومی گیتوی، و endpoint گیتوی (host و پورت UDP).
- یا یک کد QR یا یک فایل
.confکه توسط کسی که گیتوی را مدیریت میکند ارائه شده است. - کلاینت رسمی WireGuard که از App Store یا Google Play نصب شده است.
- مجوز افزودن یک پیکربندی VPN به دستگاه. روی گوشیهای مدیریتشده با MDM ممکن است این کار تا زمانی که مدیر شما آن را تأیید نکند مسدود باشد.
هر فیلد چه کاری انجام میدهد
| فیلد | مثال | هدف |
|---|---|---|
PrivateKey |
رشته base64 | این دستگاه را به گیتوی معرفی میکند. هرگز آن را به اشتراک نگذارید. |
Address |
10.8.0.14/32 |
IP تونل تخصیصیافته به این دستگاه. |
DNS |
10.8.0.1 |
resolver قابل دسترس از طریق تونل. |
PublicKey |
رشته base64 | کلید گیتوی، که برای رمزنگاری ترافیک به سمت آن استفاده میشود. |
Endpoint |
gateway.example.com:51820 |
جایی که دستگاه بستههای handshake را میفرستد. |
AllowedIPs |
0.0.0.0/0, ::/0 یا 10.8.0.0/24 |
کدام ترافیک به داخل تونل مسیریابی میشود. |
یک قالب تونل به شکل .conf به این صورت است:
[Interface]
PrivateKey = <this-device-private-key>
Address = 10.8.0.14/32
DNS = 10.8.0.1
[Peer]
PublicKey = <gateway-public-key>
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = <gateway-host>:51820
PersistentKeepalive = 25
AllowedIPs را روی 0.0.0.0/0, ::/0 تنظیم کنید تا همه ترافیک از طریق گیتوی مسیریابی شود، یا فقط روی زیرشبکه داخلی اگر مدیر شما تونل تقسیمشده (split tunnel) میخواهد. مقدار 25 برای PersistentKeepalive انتخاب رایجی در شبکههای موبایل است، چون در غیر این صورت NAT اپراتور جلسات بیکار را قطع میکند.
مراحل
- تأیید کنید که تونل برای این دستگاه در نظر گرفته شده است. هر گوشی باید جفتکلید peer مخصوص به خود را داشته باشد. درونریزی همان پیکربندی روی دو دستگاه باعث نوسان handshakeها و قطع اتصال روی هر دو میشود.
- کلاینت رسمی WireGuard را نصب کنید. در iOS، App Store را برای WireGuard جستجو کنید و اپلیکیشنی را نصب کنید که توسط WireGuard Development Team منتشر شده است. در اندروید، اپلیکیشن معادل را از Google Play نصب کنید. از کلاینتهای VPN شخص ثالث که فقط WireGuard را بستهبندی میکنند پرهیز کنید.
- درونریزی در iOS. اپلیکیشن را باز کنید، دکمه بهعلاوه را بزنید، سپس Create from QR code را انتخاب کنید و کدی را که مدیرتان ارائه کرده اسکن کنید، یا Create from file or archive را انتخاب کنید و فایل
.confرا از Files انتخاب کنید. به تونل یک نام قابل شناسایی مثلNordLayer-Gateway-EUبدهید، Save را بزنید، و اعلان سیستم برای افزودن پیکربندی VPN را بپذیرید. - درونریزی در اندروید. اپلیکیشن را باز کنید، دکمه بهعلاوه را بزنید، سپس Scan from QR code یا Import from file or archive را انتخاب کنید. فایل
.confرا در انتخابگر فایل انتخاب کنید، به اپلیکیشن اجازه دهید یک پروفایل VPN اضافه کند، و نام تونل را تأیید کنید. - قبل از اتصال، تنظیمات درونریزیشده را بررسی کنید. ورودی تونل را باز کنید و بررسی کنید که
Endpoint،AllowedIPsوDNSبا آنچه مدیرتان ارائه کرده مطابقت داشته باشد. یک کد QR ناقص یا یک فایل قدیمی، شایعترین دلیل تونلی است که هرگز handshake را کامل نمیکند. - تونل را متصل کنید. کلید کنار تونل را روشن کنید. وضعیت باید در عرض چند ثانیه به Active تغییر کند، و سیستمعامل یک نشانگر VPN در نوار وضعیت نمایش میدهد.
- handshake و نشانی خروج را بررسی کنید. از بررسیهای بخش بعدی استفاده کنید. فرض نکنید که تونل فقط به خاطر روشن بودن کلید کار میکند.
- در صورت مناسب بودن، رفتار on-demand را تنظیم کنید. در iOS، تونل را باز کنید، Edit را بزنید، و On-Demand را با قاعدهای که برای دستگاه مناسب است فعال کنید. در اندروید، از تنظیمات سیستم زیر Settings → Network & internet → VPN → WireGuard برای فعال کردن Always-on VPN و بهصورت اختیاری Block connections without VPN استفاده کنید. در دسترس بودن این گزینهها بسته به نسخه سیستمعامل و سیاست MDM متفاوت است.
- تونل را هم روی Wi-Fi و هم روی شبکه سلولی تست کنید. شبکههای موبایل اغلب UDP را مسدود یا محدود میکنند، بنابراین تونلی که روی Wi-Fi اداری کار میکند ممکن است روی شبکه اپراتور شکست بخورد.
- پیکربندی را ذخیره و چرخش دهید. یک نسخه آفلاین از
.confرا در یک مدیر رمز عبور یا گاوصندوق رمزنگاریشده نگه دارید، و وقتی دستگاهی از رده خارج شد، peerهای قدیمی را از گیتوی حذف کنید. اگر گوشی گم شد، کلیدها را بچرخانید.
بررسی تونل
اپلیکیشن WireGuard قابل اعتمادترین ابزار تشخیصی روی موبایل است. تونل فعال را باز کنید و Latest handshake و شمارندههای انتقال را بررسی کنید:
- Latest handshake باید وقتی تونل با keepalive فعال بیکار است، مقداری در دو دقیقه اخیر نشان دهد.
- Transfer باید نشان دهد که بایتهای دریافتی و ارسالی هنگام مرور وب افزایش مییابند.
- handshake که روی Never میماند یعنی دستگاه نمیتواند به endpoint برسد، نه اینکه تونل متصل اما بیکار است.
برای تأیید اینکه اینترنت چه نشانیای را میبیند، یک صفحه echo IP را در مرورگر گوشی باز کنید و نتیجه را با نشانیای که مدیرتان برای آن گیتوی اختصاصی انتظار دارد مقایسه کنید. اگر لپتاپی روی همان گیتوی دارید، ابتدا میتوانید مقدار مورد انتظار را تأیید کنید:
# Run from a device already using the same gateway.
# Whatever this prints is the address a phone on the same gateway should also report.
curl -s https://ifconfig.me
خروجی مورد انتظار یک نشانی IP واحد بدون متن اضافی است:
203.0.113.42
چون NordLayer از گیتویهای اختصاصی بهجای یک استخر مشترک استفاده میکند، آن نشانی باید بین جلسات پایدار بماند، که وقتی سرویسهای داخلی یا شرکا یک IP خاص را در allowlist قرار میدهند مفید است.
عیبیابی
| نشانه | علت احتمالی | راهحل |
|---|---|---|
| وضعیت متصل را نشان میدهد، handshake روی Never میماند | UDP توسط اپراتور موبایل یا یک captive portal مسدود شده است | به شبکه دیگری بروید، از captive portal قطع شوید، یا از مدیرتان یک گیتوی روی پورت متفاوت بخواهید |
| handshake کامل میشود، هیچ سایتی بارگذاری نمیشود | DNS از طریق تونل قابل دسترس نیست، یا AllowedIPs اشتباه پیکربندی شده است |
تأیید کنید که resolver از نظر توپولوژیکی داخل تونل است؛ یک پیکربندی تازه دوباره درونریزی کنید |
| ابزارهای داخلی کار میکنند، سایتهای عمومی کار نمیکنند | تونل تقسیمشده با AllowedIPs محدود به زیرشبکه داخلی |
رفتار مورد انتظار؛ 0.0.0.0/0, ::/0 را فقط اگر مسیریابی full-tunnel مورد نظر است اضافه کنید |
| روی Wi-Fi کار میکند، روی شبکه سلولی شکست میخورد | NAT اپراتور یا فیلتر UDP | PersistentKeepalive = 25 را فعال کنید، دوباره امتحان کنید، و در صورت نیاز از اپراتور دیگری تست بگیرید |
| تونل پس از چند دقیقه بیکاری قطع میشود | نبود keepalive، یا مدیریت تهاجمی باتری سیستمعامل | keepalive را تنظیم کنید، و اپلیکیشن WireGuard را در اندروید از بهینهسازی باتری مستثنا کنید |
| دو دستگاه یکدیگر را قطع میکنند | کلید peer یکسان روی هر دو درونریزی شده است | از مدیرتان یک peer جداگانه برای هر دستگاه درخواست کنید |
| درونریزی شکست میخورد یا اپلیکیشن کلید نامعتبر گزارش میدهد | کد QR ناقص یا فایل .conf خراب |
پیکربندی را دوباره درخواست کنید و بهجای کد QR از فایل درونریزی کنید |
| باتری بهطور محسوسی خالی میشود | قاعده on-demand تونل را روی هر شبکهای فعال نگه میدارد | قاعده on-demand را به شبکههای غیرقابلاعتماد محدود کنید، یا اگر سیاست اجازه میدهد از تونل تقسیمشده استفاده کنید |
خلاصه
- WireGuard روی iOS و اندروید از یک روند استاندارد درونریزی-سپس-بررسی پیروی میکند؛ NordLayer جزئیات تونل را ارائه میدهد، و کلاینت رسمی بقیه کار را انجام میدهد.
- همیشه پیکربندیای را درونریزی کنید که برای همان دستگاه واحد در نظر گرفته شده است، و هرگز یک کلید peer را روی دو گوشی بازاستفاده نکنید.
- شمارنده handshake را ملاک قرار دهید، نه کلید روشن/خاموش را، بهعنوان مدرکی بر کارکرد تونل.
- روی دستگاههای موبایل
PersistentKeepalive = 25را تنظیم کنید تا NAT اپراتور جلسات بیکار را بیصدا از بین نبرد. - هم روی شبکه سلولی و هم Wi-Fi تست کنید، و یک نسخه آفلاین از پیکربندی نگه دارید تا گوشی گمشده یا پاکشده سریع جایگزین شود.