تست نشت WebRTC: آیا VPN شما آدرس IP واقعی را فاش میکند؟
این ابزار تست نشت WebRTC دقیقاً از همان مکانیزم اتصال همتا به همتا (peer-to-peer) استفاده میکند که اسکریپتهای ردیابی به کار میگیرند، تا مشخص کند آیا آدرسهای جمعآوری شده شامل IP واقعی است که VPN شما باید آن را مخفی میکرد یا خیر. این تست یک RTCPeerConnection با کانال داده خالی باز میکند — بدون نیاز به دوربین، میکروفون یا تأیید دسترسی —، از دو سرور STUN عمومی وضعیت اتصال را از بیرون جویا میشود و آن را با IP درخواستهای معمول HTTPS شما مقایسه میکند.
نحوه خواندن کاندیداهای ICE نمایش داده شده در این تست
پروتکل WebRTC باید تمامی مسیرهای شبکهای را که طرف مقابل میتواند با شما ارتباط برقرار کند کشف کند؛ بنابراین فهرستی از کاندیداهای ICE تولید میکند. این صفحه لیست خام را همراه با نوع و پروتکل انتقال نمایش میدهد و پس از پنج ثانیه اسکن را متوقف میکند.
در بخش بالایی، آدرسهای IPv4 و IPv6 معمولی شما که از طریق HTTP مشاهده شدهاند قرار دارند — مقادیری مشابه آنچه در صفحه آی پی من چیست گزارش میشود. این ارقام مبنای مقایسه قرار میگیرند و حکم نهایی بر اساس تطبیق مستقیم این دو منبع صادر میشود.
host، srflx و relay — مفهوم برچسبها
- محلی (host) — آدرسی متعلق به کارت شبکه خود شما: یک IP شبکه داخلی مانند
192.168.1.14یا نام تصادفی.local. - عمومی (از طریق STUN) — کاندیدای
srflx، یعنی آدرس عمومی که سرور STUN پکت را از آن دریافت کرده است. مهمترین معیار هنگام استفاده از VPN. - رله (TURN) — ترافیکی که از سرور واسط عبور داده شده است؛ این تست فقط از STUN استفاده میکند، بنابراین ردیف relay بسیار نادر است.
مفهوم هر نتیجه بررسی
- نشت شناسایی شد — کاندیدای عمومی STUN با IP پروتکل HTTP مغایرت دارد؛ در حالت VPN یعنی پکت WebRTC از خارج تونل امن عبور کرده است.
- عدم نشت — هر دو آدرس کاملاً با یکدیگر مطابقت دارند.
- IP محلی فاش شده — یک آدرس خام شبکه LAN به جای نام مبهم mDNS نمایش داده شده است.
- محافظت شده — آدرس محلی شما در پشت یک نام هاست تصادفی
.localپنهان شده است. - بدون IP عمومی / WebRTC مسدود است — سرورهای STUN در دسترس نبودند یا WebRTC در مرورگر خاموش است.
چرا WebRTC آدرسی را که VPN مخفی میکند لو میدهد
پروتکل WebRTC برای برقراری تماس تصویری، صوتی و انتقال مستقیم فایل میان مرورگرها ایجاد شد. اتصال دو سیستم در پشت روترهای مستقل نیازمند عبور از NAT است، و این به پاسخی از بیرون نیاز دارد: این اتصال از چه آدرسی آغاز شده است؟ سرور STUN این پاسخ را میدهد و هر وبسایتی میتواند این فرایند را بدون جلب توجه از طریق جاوااسکریپت اجرا کند.
این ویژگی زمانی به آسیبپذیری تبدیل میشود که بخواهید IP واقعی را پنهان کنید. VPN ترافیک وب معمولی HTTP را از تونل رمزنگاری شده رد میکند، اما WebRTC پکتهای UDP اختصاصی به STUN میفرستد که در صورت وجود تونل تفکیکشده (split-tunneling)، از مسیر عادی اینترنت شما عبور میکنند. اکستنشنهای VPN مرورگر نمونه بارز آن هستند: آنها فقط درخواستهای وب را پروکسی میکنند و پکتهای UDP سیستم را پوشش نمیدهند — بنابراین نتیجه آن ممکن است با یک تست VPN در بستر HTTP مغایرت داشته باشد.
نام هاست تصادفی .local نشانه نشت اطلاعات نیست
اگر در ردیف host نامی شبیه به 7b3f9c21-4d0a-48e7.local به جای 192.168.1.14 مشاهده میکنید، سیستم امنیتی کاملاً سالم است. این قابلیت پنهانسازی mDNS نام دارد: مرورگر یک نام موقت چندپخشی DNS برای کارت شبکه میسازد و آن را به جای IP داخلی ارسال میکند. مرورگرهای کروم، اج، بریو، فایرفاکس و سافاری این ویژگی را به صورت پیشفرض فعال دارند — افزونه uBlock Origin نیز از نسخه v1.38 گزینه WebRTC خود را حذف کرد زیرا خود مرورگرها این کار را بر عهده گرفتند. دو نکته مهم: این قابلیت فقط از IP شبکه محلی محافظت میکند (مانع نشت IP عمومی VPN نمیشود)، و سایتی که دسترسی به دوربین یا میکروفون داشته باشد باز هم به IP واقعی LAN دسترسی خواهد داشت.
نحوه رفع نشت WebRTC در کروم و مایکروسافت اج
هیچکدام از این دو مرورگر کلید سادهای در منوی تنظیمات ندارند و گزینههای chrome://flags یا edge://flags نیز دیگر WebRTC را خاموش نمیکنند. سه روش کاربردی برای مقابله وجود دارد:
- از نرمافزار VPN کامل سیستمی (Full-Tunnel) استفاده کنید، نه افزونههای مرورگر. اگر همه بستههای UDP از تونل رد شوند، STUN فقط آدرس سرور VPN را میبیند.
- تنظیم خطمشی مدیریت IP از طریق افزونه. ابزارهایی مانند WebRTC Leak Prevent گزینه
chrome.privacy.network.webRTCIPHandlingPolicyرا رویdefault_public_interface_onlyیاdisable_non_proxied_udpتنظیم میکنند تا جلوی انتشار IP محلی را بگیرند. - اعمال پالیسیهای سیستمعامل (GPO/Registry). در ویندوز پالیسی
WebRtcIPHandlingبرای کروم یاWebRtcLocalhostIpHandlingدر مسیرSOFTWARE\Policies\Microsoft\Edgeرا برابرAllowPublicInterfaceOnlyیاDisableNonProxiedUdpقرار دهید. مرورگر را بازنشانی کرده و درedge://policyچک کنید.
نحوه غیرفعالسازی کامل WebRTC در فایرفاکس
فایرفاکس تنها مرورگر مطرح دسکتاپ است که کلید قطع کامل دارد. در نوار آدرس about:config را وارد کرده، هشدار را تایید کنید، media.peerconnection.enabled را جستجو کرده و با دوبار کلیک آن را روی false بگذارید. پروتکل WebRTC برای تمامی سایتها بدون نیاز به راهاندازی مجدد خاموش میشود و این تست آن را مسدود گزارش میکند.
این یک راهکار اساسی است: تماسهای تحت وب مثل Meet، Teams، Discord و Zoom تا زمان برگشت این تنظیم کار نخواهند کرد. اگر میخواهید تماسها برقرار بمانند، آن گزینه را فعال نگه دارید و به جای آن media.peerconnection.ice.default_address_only را برابر true قرار دهید — فایرفاکس تنها آدرس مسیر پیشفرض (یعنی اتصال VPN) را ارائه خواهد داد.
نحوه توقف نشت WebRTC در مرورگر Brave
مرورگر بریو کنترلهایی را که کروم مخفی میکند در اختیار شما میگذارد. به brave://settings/privacy رفته و بخش WebRTC IP handling policy را پیدا کنید. در زمان استفاده از VPN یا پروکسی دو حالت ایدهآل است:
- Default — ممکن است همه آداپتورها را پیمایش کرده و IP محلی را فاش کند.
- Default Public and Private Interfaces — از مسیر پیشفرض استفاده میکند ولی آدرس خصوصی را بازتاب میدهد.
- Default Public Interface Only — فقط مسیر پیشفرض بدون آدرس محلی؛ تماسها به خوبی کار میکنند. بهترین گزینه برای مصارف روزانه.
- Disable Non-Proxied UDP — اجبار به TCP از طریق پروکسی مگر آنکه پروکسی از UDP پشتیبانی کند. سختگیرانهترین حالت (پیشفرض تبهای Tor)، اما ممکن است تماس P2P را قطع کند.
نکات مهم برای سافاری، آیفون و دستگاههای اندروید
در دستگاههای موبایل و موتور WebKit توصیههای متداول رایانههای شخصی معمولاً کارایی ندارند.
سافاری در سیستمعامل macOS
نسخههای جدید سافاری فاقد کلید خاموشسازی کلی پایدار هستند. گزینههای منوی توسعهدهنده با بستن مرورگر ریست میشوند. از آنجا که سافاری به صورت پیشفرض IP محلی را پشت mDNS پنهان میکند، بهترین روش مدیریت مجوزها در Safari > Settings > Websites و فعالسازی VPN سیستمی است.
دستگاههای iPhone و iPad (iOS)
تمامی مرورگرها در iOS موظف به استفاده از موتور WebKit هستند. کروم یا فایرفاکس در آیفون صفحه about:config یا اکستنشن ندارند؛ افزونههای بلاکر محتوا نیز امکان مسدودسازی WebRTC را ندارند. برای جلوگیری از نشت، از پروفایل VPN در Settings > VPN که ترافیک UDP را هدایت میکند استفاده کرده و تست را در سافاری تکرار کنید.
سیستمعامل اندروید
کروم اندروید قابلیت یا افزونهای برای WebRTC ندارد. بریو در اندروید همین لیست سیاستهای مدیریت IP را در منوی حریم خصوصی قرار داده است. در فایرفاکس اندروید دسترسی به about:config فقط در نسخههای Beta و Nightly ممکن است. راهکار کلی فعالسازی Always-on VPN و گزینه Block connections without VPN در تنظیمات گوشی است.
مواردی که این تست نشت قادر به تشخیص آنها نیست
این صفحه تنها اطلاعاتی را بررسی میکند که مرورگر شما در اختیار اسکریپتهای اجرا شده در این وبسایت قرار میدهد. این ابزار قادر به کشف نشتهای زیر لایه مرورگر — نظیر خطاهای مسیریابی سیستمعامل یا ترافیک IPv6 پوشش داده نشده توسط VPN — نیست و نشتهای پرسوجوی DNS را ارزیابی نمیکند. اگر فایروال STUN را مسدود کند وضعیت „بدون IP عمومی“ نمایش مییابد که صرفاً به معنای بیپاسخ ماندن است. به علاوه، IP تنها یکی از شناسههاست: مشخصات مانیتور، فونتها و هدرهای فهرستشده در صفحه مرورگر من چیست حتی با یک IP امن VPN میتوانند دستگاه شما را تشخیص دهند.
پرسشهای متداول (FAQ)
آیا ممکن است حتی در صورت اتصال به VPN، پروتکل WebRTC آدرس واقعی را لو دهد؟
بله، این اتفاق بسیار رایج است. پروتکل WebRTC بستههای UDP خود را مستقیماً به سرورهای STUN ارسال میکند. هنگام استفاده از اکستنشنهای مرورگر یا تقسیم تونل، این بستهها خارج از تونل از اتصال اینترنت عادی عبور میکنند. سرور STUN آدرس واقعی اینترنت شما را میبیند و وبسایتها با یک کد JS آن را میخوانند. استفاده از نرمافزار کامل VPN سیستم این مشکل را کاملاً رفع میکند.
آیا راهی برای خاموش کردن کامل WebRTC در مایکروسافت اج وجود دارد؟
از طریق منوی تنظیمات عادی خیر: اج کلید خاموش ندارد و فلگ قدیمی در about:flags نیز برداشته شده است. در ویندوز میتوانید با تعریف پالیسی WebRtcLocalhostIpHandling برابر با AllowPublicInterfaceOnly یا DisableNonProxiedUdp در رجیستری زیر شاخه SOFTWARE\Policies\Microsoft\Edge این مورد را مدیریت کنید. مرورگر را ببندید و در edge://policy چک کنید.
از کجا میتوان WebRTC و PeerConnection را در فایرفاکس خاموش کرد؟
در نوار آدرس about:config را باز کنید: گزینه media.peerconnection.enabled را پیدا کرده و با دوبار کلیک آن را روی false قرار دهید. با این کار WebRTC بدون نیاز به ریست فایرفاکس مسدود میشود، ولی تماسهای ویدیویی تحت وب قطع خواهند شد. برای فعال ماندن تماسها، آن را true نگه دارید و media.peerconnection.ice.default_address_only را true کنید.
چگونه میتوان WebRTC را در مرورگر Safari به طور دائمی غیرفعال کرد؟
در نسخههای جدید سافاری امکان غیرفعالسازی دائمی وجود ندارد. منوی آزمایشی قدیمی حذف شده و گزینههای منوی Develop با خروج از برنامه ریست میشوند. از آنجا که سافاری IPهای داخلی را با mDNS میپوشاند، بهترین اقدام محدود کردن دسترسی سایتها در Safari > Settings > Websites و اجرای یک VPN سراسری روی سیستم است.
بهترین تنظیمات در مرورگر Brave برای جلوگیری از نشت WebRTC چیست؟
به brave://settings/privacy رفته و هنگام استفاده از VPN یا پروکسی گزینه WebRTC IP handling policy را روی «Disable Non-Proxied UDP» بگذارید. بدین صورت ارتباطات WebRTC از طریق TCP پروکسی انجام شده و STUN هرگز آدرس اصلی را نخواهد دید. گزینه «Default Public Interface Only» راهحل منعطفی است که تماسهای صوتی را حفظ میکند.
کدام خطمشی مدیریت IP در WebRTC را باید انتخاب کنم؟
گزینه «Default Public Interface Only» برای عموم افراد مناسب است: رابطهای محلی را پنهان کرده، تبادل UDP را حفظ میکند و به جلسات ویدیویی اجازه فعالیت میدهد. گزینه «Disable Non-Proxied UDP» را تنها در شرایطی انتخاب کنید که نیاز به ناشناسی مطلق در بستر پروکسی یا VPN دارید. گزینههای پیشفرض همچنان آدرسهای محلی را افشا میکنند.
چرا آدرس IP خصوصی من از طریق WebRTC در اینترنت فاش میشود؟
در مرورگرهای مدرن این مسئله دیگر به شکل باز رخ نمیدهد. کروم، اج، بریو، فایرفاکس و سافاری آدرس شبکه محلی را با یک نام میزبان تصادفی یکبارمصرف mDNS با پسوند .local جایگزین میکنند. وبسایتها به جای 192.168.1.14 فقط آن نام را میبینند. اگر در تست یک آدرس LAN مستقیم میبینید، این حفاظت غیرفعال است.