نشت WebRTC چیست؟ تست و رفع نمایش IP واقعی در مرورگر
نشت WebRTC زمانی مهم است که مرورگر، همزمان با روشنبودن VPN، IP عمومی اتصال مستقیم شما را بهعنوان ICE candidate در اختیار صفحه بگذارد. دیدن 192.168.x.x، 10.x.x.x یا یک نام تصادفی .local بهتنهایی ثابت نمیکند IP عمومی واقعی نشت کرده است.
این تفاوت مهم است، چون بسیاری از تستها هر candidate را با رنگ هشدار نشان میدهند و کاربر آدرس محلی را با نشت عمومی اشتباه میگیرد.
WebRTC چرا IP جمعآوری میکند؟
WebRTC برای تماس صوتی و تصویری مستقیم باید مسیرهای ممکن بین دو دستگاه را پیدا کند. مرورگر با فرایند ICE candidate آدرسهای محلی، عمومی یا relay را بررسی میکند. راهنمای اتصال WebRTC در MDN نقش ICE، STUN و TURN را توضیح میدهد.
مرورگرهای جدید برای کاهش افشای آدرس محلی ممکن است بهجای IP شبکه، نام mDNS با پسوند .local نمایش دهند. ویژگی address در مستندات RTCIceCandidate نیز به این رفتار حریم خصوصی اشاره میکند.
تست درست قبل و بعد از VPN
- همهٔ proxyها و VPNهای اضافی را خاموش کنید.
- IP عمومی مستقیم را با یک ابزار نمایش IP یادداشت کنید.
- VPN را روشن و IP خروجی جدید را ثبت کنید.
- تست WebRTC را در همان مرورگر اجرا کنید.
- candidateها را با دو IP ثبتشده مقایسه کنید.
نتیجهها:
| چیزی که تست نشان میدهد | تفسیر |
|---|---|
| فقط IP عمومی VPN | مسیر مورد انتظار است |
| IP عمومی مستقیم کنار IP VPN | نشت یا split route محتمل است |
192.168.*، 10.* یا 172.16–31.* |
آدرس خصوصی شبکهٔ محلی است |
نام تصادفی با .local |
mDNS؛ IP محلی پنهان شده است |
| فقط IP relay/TURN | تماس از relay عبور میکند |
برای مقایسهٔ کامل IP، DNS و WebRTC از هاب ابزارهای تست VPN استفاده کنید. آن صفحه ابزارها را معرفی میکند؛ این مقاله فقط تفسیر و رفع WebRTC را پوشش میدهد.
اگر IP عمومی واقعی دیده شد
ابتدا مطمئن شوید VPN در حالت سراسری/TUN است، نه فقط proxy مرورگر یا چند برنامهٔ انتخابی. اگر split tunneling فعال است، مرورگر باید در فهرست برنامههای داخل تونل باشد.
سپس این ترتیب را اجرا کنید:
- افزونههای VPN یا proxy اضافی را خاموش کنید.
- مرورگر را کامل ببندید و پس از اتصال VPN دوباره باز کنید.
- یک پنجرهٔ Private بدون افزونههای غیرضروری آزمایش کنید.
- Kill Switch یا گزینهٔ جلوگیری از bypass را در client بررسی کنید.
- تست قبل/بعد را دوباره با همان ابزار انجام دهید.
اگر فقط یک مرورگر نشت دارد و دیگری نه، تنظیم یا افزونهٔ همان مرورگر محتمل است. اگر همهٔ مرورگرها IP مستقیم را نشان میدهند، routing سیستم یا client را بررسی کنید.
Chrome و Edge
ابتدا افزونههای شبکه، تماس و privacy را موقتاً غیرفعال کنید و در Guest/Profile تازه تست بگیرید. flagهای قدیمی اینترنت ممکن است حذف شده یا رفتارشان تغییر کرده باشد؛ یک flag ناشناخته را راهحل دائمی فرض نکنید.
اگر سازمان یا client شما policy رسمی برای محدودکردن WebRTC به interface پیشفرض دارد، همان policy پشتیبانیشده را بهکار ببرید. خاموشکردن کامل WebRTC میتواند تماس ویدیویی، اشتراک صفحه و ابزارهای جلسه را خراب کند.
Firefox
در Troubleshoot Mode یا پروفایل تازه تست کنید تا اثر extensionها مشخص شود. تغییر media.peerconnection.enabled به false WebRTC را بهطور کامل خاموش میکند و تماس مرورگری را میشکند؛ این گزینه فقط برای آزمون تشخیصی یا زمانی مناسب است که اصلاً WebRTC نیاز ندارید.
اگر با خاموشکردن WebRTC هشدار ناپدید شد، هنوز باید علت route بیرون تونل را در VPN یا split tunneling پیدا کنید؛ پنهانکردن علامت جای اصلاح مسیر را نمیگیرد.
Safari و مرورگر موبایل
در iPhone و iPad کنترل شبکه بیشتر در اختیار iOS و client VPN است. از خاموشکردن permission دوربین یا میکروفون انتظار اصلاح route IP نداشته باشید؛ permission رسانه و مسیر شبکه دو موضوع متفاوتاند.
VPN را پیش از باز کردن مرورگر وصل کنید، Safari را ببندید و دوباره تست بگیرید. در Android نیز client باید مرورگر را در تونل پوشش دهد؛ اگر per-app VPN فعال است، نام مرورگر را بررسی کنید.
آیا باید WebRTC را کامل خاموش کنیم؟
معمولاً نه. WebRTC برای Google Meet، تماس وب، اشتراک صفحه و بسیاری از ابزارهای پشتیبانی لازم است. هدف درست این است که candidate عمومی از مسیر VPN یا relay بیاید، نه اینکه قابلیت را بدون نیاز حذف کنیم.
خاموشکردن کامل فقط یک تست تشخیصی است. بعد از اصلاح routing، تماس آزمایشی برقرار کنید تا صدا، تصویر و screen share سالم باشند.
تفاوت WebRTC leak و DNS leak
WebRTC candidateهای ارتباط بلادرنگ را بررسی میکند؛ DNS leak یعنی درخواست تبدیل نام دامنه بیرون تونل رفته است. یکی ممکن است وجود داشته باشد و دیگری نه. صفحهٔ Kill Switch و DNS Leak Protection تفاوت DNS و قطع تونل را توضیح میدهد.
پس از هر تغییر، سه تست مستقل بگیرید: IP عمومی، DNS resolver و WebRTC. اتصال دارای مسیر سراسری و تست اولیه را پیش از استفادهٔ طولانی روی همان دستگاه بسنجید؛ ادعای «leak protection» بدون تست نتیجه کافی نیست.
سؤالات متداول
دیدن 192.168.1.10 یعنی IP واقعی من لو رفته؟
این یک آدرس خصوصی شبکهٔ محلی است و از اینترنت route نمیشود. آن را با IP عمومی مستقیم خود مقایسه کنید.
نام عجیب با پسوند local چیست؟
مرورگر ممکن است با mDNS آدرس محلی را پشت نام .local پنهان کند. این بهتنهایی نشت IP عمومی نیست.
بستن permission دوربین WebRTC leak را رفع میکند؟
نه لزوماً. permission رسانه با جمعآوری candidate شبکه یک موضوع واحد نیست. routing VPN را جدا بررسی کنید.
چرا فقط یک مرورگر IP مستقیم را نشان میدهد؟
افزونه، profile، policy یا تنظیم همان مرورگر محتمل است. Guest/Private و مرورگر دوم را برای مقایسه آزمایش کنید.
راهحلهای بالا را انجام دادید و هنوز مشکل باقی است؟
اول با یک کانفیگ سالم رایگان مقایسه کنید؛ اگر مشکل حل شد، بعد پلن مناسب را بخرید