VPN در مک روی «قطع اتصال» گیر کرده: چه چیزی واقعاً در حال اجراست
قطع اتصال یک گذار است، نه تونل متوقف. بررسی کنید کدام مؤلفه مالک برچیدن تونل است، مسیرها و DNS را بخوانید و از کشتار گسترده فرایندها بپرهیزید.
«قطع اتصال» وضعیتی است که کلاینت هنگام برچیدن تونل گزارش میکند، نه حکمی بر اینکه ترافیک متوقف شده است. در مک آن برچیدن بهصورت دنبالهای کوتاه اجرا میشود و برچسب فقط پس از آن تغییر میکند که مؤلفه مالک اتصال بازخورد بدهد. وقتی یک گام منتظر یک کمککننده، یک افزونه یا یک تصمیم سیاستی میماند، برچسب ممکن است پس از رفتن رابط سر جایش بماند، یا تونل در حالی که منو هنوز آن را نشان میدهد به ارسال ادامه دهد. متن را «برچیدن در جریان، نتیجه نامعلوم» بدانید و روشن کنید کدام نیم درست است.
دو خرابی از نوار منو یکسان به نظر میرسند و پاسخهای متضاد میخواهند. در یکی تونل هنوز بستهها را حمل میکند و تنها نمایش کهنه است. در دیگری تونل رفته اما سیاستی جداگانه ترافیک را مسدود نگه میدارد، که اغلب عمدی است. مسیرها و وضعیت DNS آنها را سریعتر از هر تعاملی با منو جدا میکنند.
برچسب چه چیزی را دنبال میکند
کلاینت VPN یک ماشین حالت کوچک نگه میدارد و نوار منو فرافکنی آن است. در اتصالی که خود macOS مدیریت میکند، آن ماشین در چارچوب VPN سیستم قرار دارد. در تونلی که برنامه مدیریت میکند، در برنامه و کمککننده دارای امتیازش قرار دارد. گام آخر یک توقف بستن سوکت نیست. رها کردن چیزی است که تونل را کارا میکرد: رابط utun، مسیرهایی که به آن اشاره میکردند، ورودیهای تحلیلگر که کلاینت تزریق کرد، و هر قاعده فایروال یا سیاستی که هنگام اتصال ترافیک را مسدود میکرد.
این گامها جدا از هماند، پس توقف میتواند در هر یک از آنها گیر کند. کمککنندهای که پاسخدادن را قطع میکند، مسیری که رابط دومی هم مدعی آن است، یا ورودی تحلیلگری که پروفایل دیگری مالک آن است میتوانند کلاینت را منتظر بگذارند. برچسب گزارشی از پیشرفت خود کلاینت است، که آن را درباره قصد معتبر و درباره شبکه غیرقابل اعتماد میکند.
مؤلفه مالک اتصال را پیدا کنید
در پیکربندیهای بومی، scutil --nc list سرویسهایی را که سیستم میشناسد و وضعیتشان را چاپ میکند و scutil --nc status "Work VPN" جزئیات یک سرویس را میدهد. تونلی که برنامهای شخص ثالث آن را نگه میدارد ممکن است اصلاً در آن فهرست ظاهر نشود، پس نتیجه خالی مدرکی بر نبود اتصال نیست.
وقتی پروفایل متعلق به برنامهای است، به نمای وضعیت آن برنامه و کنترل مستند «قطع اتصال» تکیه کنید. بستن پنجره درخواست توقف نیست اگر کمککنندهای در پسزمینه مالک تونل باشد؛ نماد ناپدید میشود و کمککننده رابط را زنده نگه میدارد. مرجع تنظیمات VPN اپل کنترلهای بومی و منشأ تنظیمات مدیریتشده را پوشش میدهد.
رابطها، مسیرها و DNS را بخوانید
سه بررسی بیشتر پرسش را بدون دست زدن به اتصال پاسخ میدهد. تفسیر آنها با هم مهم است، چون هر یک بهتنهایی گمراهکننده است.
scutil --nc list
netstat -rn -f inet | head -20
ifconfig | grep -A 3 '^utun'
scutil --dns | head -30
- رابط utun موجود است، مسیر پیشفرض یا تفکیکشده از آن میگذرد، تحلیلگر به ارائهدهنده اشاره میکند: تونل هنوز برپاست و برچسب کهنه است.
- بدون utun، مسیر پیشفرض عادی، DNS از DHCP، بدون اینترنت: سیاستی که هنگام قطع اتصال مسدود میکند کار خود را میکند.
- بدون utun، بدون مسیر، تحلیلگر هنوز به ارائهدهنده اشاره میکند: برچیدن نیمهکاره متوقف شد و DNS باقیماندهای است که باید پاک شود.
سپس یک درخواست به میزبان داخلی که فقط باید از راه تونل پاسخ دهد و یکی به میزبان عمومی بفرستید. دسترسپذیری سیاست را از وضعیت باقیمانده جدا میکند بدون آنکه بررسی را به تمرین اندازهگیری تبدیل کند. اگر مسیر هنوز پاسخ میدهد اول کار راه دور را ذخیره کنید و پیش از تغییر شبکه روی ماشینی که از راه دور مدیریت میکنید راه دومی برای ورود فراهم کنید.
چرا کشتار گسترده و حذف پروفایل گمراه میکند
نام فرایندهایی مانند pppd، racoon و configd به پیادهسازیهای خاصی تعلق دارند. کشتن آنها میتواند اتصالهای دیگر را تحت تأثیر بگذارد، مسیرها و رابطهای utun را جا میگذارد و هیچ سابقهای از اینکه کدام گام گیر کرده به شما نمیدهد. نام فرایند قدیمی هم مدرکی بر مالکیت پروفایل کنونی نیست.
حذف و بازسازی پروفایل تغییر بزرگتری از پاک کردن یک گذار گیرکرده است. میتواند تنظیمات مدیریتشده و مواد هویتی محلی را بدون توضیح اینکه چه شکست خورد دور بریزد، و روی مک تحت نظارت ممکن است بهسادگی بازگردانده شود. حذف را برای پیکربندی واقعاً منسوخ نگه دارید و در عوض گذار را عیبیابی کنید.
دنباله توقفی که رد پا باقی میگذارد
ترتیب زیر کنترلهای خود اتصال را مسئول نگه میدارد و اگر گیر دوباره برگردد سابقه تولید میکند. همچنین مانع میشود که مشکل نمایش را به تغییر شبکه تبدیل کنید.
- کار راه دور را ذخیره کنید و اگر مک دور است تأیید کنید که از راه دیگری به آن میرسید.
- نام کلاینت، نسخه و پروفایل را یادداشت کنید. با
log show --last 5m --predicate 'subsystem == "com.apple.networkextension"'یک پنجره کوتاه ثبت کنید؛ نسخههای قدیمیتر تاریخچه کمتری نگه میدارند، پس آن را بلافاصله پس از گیر اجرا کنید. - از کنترل مستند «قطع اتصال» استفاده کنید، صبر کنید و سپس بررسیهای رابط و مسیر را تکرار کنید.
- اگر برچسب کهنه است اما تونل پایین است، رهایش کنید و بگذارید کلاینت تازه شود، بهجای آنکه فرایندها را به زور ببندید.
- اگر برچیدن واقعاً گیر کرده است، کلاینت را دوباره راهاندازی کنید و سپس پس از ذخیره کار، راهاندازی دوباره مک را برنامهریزی کنید. ماشینهای مدیریتشده به رویه مدیر نیاز دارند.
پس از بازیابی تأیید کنید که مسیر پیشفرض عادی و تحلیلگر DHCP برگشتهاند و ترافیک مسدودشده یا بازگردانده شده یا عمداً همچنان مسدود است. پروفایل و نسخه کلاینت را همراه نشانه ثبت کنید تا رخداد بعدی از شواهد شروع شود نه از حدس نوار منو.