چرا VPN ویندوز چاپگر محلی را از کار میاندازد و چگونه آن را متوقف کنیم
کارخواه تونل کامل مسیر پیشفرض را در اختیار دارد، بنابراین چاپگر و NAS پاسخ نمیدهند. آن مسیر را حذف کنید و سپس پیشوندهای کاری مورد نیازتان را دوباره اضافه کنید.
VPN را وصل کنید و چاپگر ناپدید میشود، اشتراک NAS باز نمیشود و نشست دسکتاپ دور به رایانه کنار شما به پایان میرسد. هیچ چیزی نشکسته است. کارخواه یک مسیر پیشفرض اضافه کرده و اکنون مالک هر مقصدی است که لپتاپ میتواند نام ببرد، از جمله آنهایی که سه متر دورتر هستند. این تمام سازوکار است، و نامیدن آن نقص VPN همان چیزی است که یک اصلاح یکخطی را به یک پرونده پشتیبانی تبدیل میکند.
اول جدول مسیرها را بخوانید
پیش از تغییر هر چیزی، جدول IPv4 را با route print -4 بگیرید و خروجی را نگه دارید. وصل شوید، دوباره بگیرید و خطوط 0.0.0.0 را مقایسه کنید: مسیر پیشفرض فعال یک رابط را نام میبرد، و اگر آن رابط تونل باشد، چاپ و مرور محلی ابتدا به دفتر فرستاده میشود.
شماره رابط در ستون دوم همان چیزی است که یک مسیر پایدار باید بعداً به آن ارجاع دهد، پس تا زمانی که تونل بالاست آن را یادداشت کنید. این همچنین مقداری است که با بازسازی آداپتور تغییر میکند، و به همین دلیل مسیرهای سنجاقشده به آن میتوانند بیصدا از سودمندی خود دوام بیاورند.
مسیر پیشفرض را به سه روش حذف کنید
در یک پروفایل توکار ویندوز، کنترل یک جعبه انتخاب است. ویژگیهای اتصال را باز کنید، سپس IPv4، سپس پیشرفته، و Use default gateway on remote network را بردارید؛ برنامه تنظیمات جدیدتر همان گفتوگو را یک لایه پایینتر پنهان میکند. از یک خط فرمان ارتقایافته همان تغییر یک cmdlet است:
Set-VpnConnection -Name "Corp" -SplitTunneling $true
یک پروفایل OpenVPN متفاوت کار میکند و به همین دلیل رفتارش کسانی را که انتظار جعبه انتخاب دارند گیج میکند. دستور redirect-gateway def1 آن اصلاً مسیر پیشفرض را جایگزین نمیکند؛ دو مسیر نیمبازه نصب میکند، 0.0.0.0/1 و 128.0.0.0/1، که با هم بر مسیر پیشفرض پیروز میشوند بدون آنکه آن را حذف کنند. چون پیشفرض اصلی زنده میماند، افزودن یک پیشوند اشارهشده به net_gateway فقط همان پیشوند را به مسیریاب محلی برمیگرداند. این جزئیات توضیح میدهد چرا اصلاح برای پروفایل def1 یک مسیر پیشوند است و نه جعبهای که هیچکس پیدا نمیکند.
فقط آنچه به کار مربوط است را برگردانید
با رفتن مسیر پیشفرض، تونل چیزی حمل نمیکند، پس پیشوندهای کاری باید صریح نام برده شوند. cmdletی که یک پیشوند را به اتصال میبندد از یک مسیر پایدار امنتر است، زیرا تنها تا زمانی که آن اتصال بالاست نصب میشود و به شماره رابط وابسته نیست:
Add-VpnConnectionRoute -ConnectionName "Corp" -DestinationPrefix 172.20.0.0/16
روش قدیمیتر هنوز کار میکند و هنوز در هر فهرست بررسی هست: route -p add 172.20.0.0 mask 255.255.0.0 172.20.0.1 if 14، با شاخص رابط و نشانی دروازه خود تونل. در بازراهاندازیها دوام میآورد، که هم هدف است و هم خطر، چون شاخص ممکن است در بوت بعدی به چیز دیگری تعلق داشته باشد.
بقیه را متریکها تعیین میکنند. اگر هم آداپتور فیزیکی و هم آداپتور تونل برای همان پیشوند مسیر بخواهند، متریک پایینتر برنده است، و بالا بردن متریک تونل یک کنترل مشروع از سمت کارخواه است نه یک هک.
وقتی سرور بهجای شما تصمیم میگیرد
کارخواهی که جعبه انتخاب شما را نادیده میگیرد معمولاً از یک سیاست پیروی میکند. پروفایلهای Cisco تنظیم Allow Local LAN Access را دارند، و یک headend میتواند سیاست tunnel-all را هل بدهد که هر چیزی را که کارخواه ترجیح میدهد باطل میکند؛ در استقرار تونل اجباری هیچ کلید محلی برای تغییر نیست. بهجای بازبینی دوباره همان گفتوگو، گزارش کارخواه را برای مسیرها و خطوط سیاست هلشده بخوانید.
سپس به تفکیک نام نگاه کنید، که کلیدی جدا از مسیریابی است. یک تونل شکافته هنوز میتواند یک resolver داخلی و یک پسوند جستوجو دریافت کند، بنابراین یک دستگاه محلی با نشانی قابل دسترسی است و با نام یافتنی نیست تا زمانی که سمت DNS هم اصلاح شود.
همپوشانیها مشکلی دیگر هستند
اگر LAN خانه و LAN دفتر پیشوندی مانند 192.168.0.0/24 را شریک باشند، هیچ مسیری نمیتواند آنها را از هم تشخیص دهد. هر بسته برای آن بازه یک نتیجه جستوجو دارد، و راهحل شمارهگذاری دوباره یک طرف است یا رسیدن به دفتر از طریق نشانی ترجمهشده از استخر. افزودن مسیرهای مشخصتر فقط جابهجا میکند کدام نیمه شبکه میشکند.
با یک بازبینی بهجای پنج تا تمام کنید: وصل شوید، سپس tracert را در برابر یک میزبان داخلی و یک میزبان عمومی اجرا کنید. اولین گام باید متفاوت باشد، و اگر نیست، شکاف برقرار نیست هر چه کارخواه گزارش دهد. سپس یک بار دوباره وصل شوید و تکرار کنید، چون مسیرهای هلشده با هر نشست برمیگردند.