VPN у Windows: збережений профіль проти стану активного інтерфейсу
Одне подання — це конфігурація, інше — те, що застосував стек. Порівнюйте індекси, родини й маршрути, поки тунель піднятий, і припиніть видаляти адаптери.
VPN у Windows з'являється у двох місцях, які відповідають на різні питання, і їх змішування дає впевнений, але хибний діагноз. Збережений профіль каже, що налаштувала людина; активний інтерфейс каже, що стек застосував щойно. Коли з'єднання встановлено, а трафік усе ще йде не туди, треба прочитати обидва подання, саме в такому порядку. Жодне з них окремо не скаже, чи пакет застосунку вийшов через тунель.
Два подання одного тунелю
Подання профілю — це конфігурація: адреса сервера, тип тунелю, метод автентифікації, параметри розділеного тунелю. Він може бути правильним, поки з'єднання його ігнорує, і може бути застарілим, поки з'єднання працює бездоганно, бо клієнт, який перепідключається, може не перечитати те, що ви змінили. Подання інтерфейсу — це застосований стан: які адаптери існують, які родини адрес вони несуть, їхні метрики та стан з'єднання. Воно змінюється в міру появи й зникнення тунелів, що робить його правильним місцем для питання про живу маршрутизацію і неправильним для питання про конфігурацію.
Читати їх разом — це весь метод, а читати будь-яке з них окремо — це шлях, яким люди зрештою видаляють здоровий адаптер. Команди нижче дають обидва подання, нічого не змінюючи.
Прочитайте обидва подання, нічого не змінюючи
Почніть зі збережених профілів, бо це найдешевший факт для підтвердження. Зверніть увагу на тип тунелю й значення розділеного тунелю, оскільки обидва вирішують, які призначення взагалі мають потрапити в тунель. Якщо профіль хибний, виправте його через підтримувану поверхню конфігурації, бо ніщо у списку інтерфейсів не виправляє профіль, що вказує на хибний шлюз.
Get-VpnConnection | Select-Object Name,ServerAddress,TunnelType,SplitTunneling,ConnectionStatusПодання інтерфейсу має іншу форму: один тунель може займати два рядки, коли несе обидві родини адрес. Читайте індекс як ідентичність, а псевдонім як мітку, яку хтось обрав, і очікуйте, що псевдонім зміниться між версіями клієнта.
Get-NetIPInterface | Select-Object InterfaceIndex,InterfaceAlias,AddressFamily,ConnectionState,InterfaceMetricПрисутність не є доказом використання, бо інтерфейс може існувати, бути підключеним і все ж не бути тим, який обирає маршрут до вашого призначення. Тримайте це на увазі, перш ніж вважати незнайомий адаптер причиною. Ці дві несправності виглядають ззовні однаково: правильний профіль із маршрутом, який ніколи його не використовує, і хибний профіль із маршрутом, який його використовує. У них зовсім різні виправлення, і тому існує наступний розділ.
Пройдіть маршрутом до призначення
Запитайте стек, який шлях він обере для адреси, з якою застосунок справді зв'язується. Це питання, на яке список інтерфейсів не може відповісти сам.
Find-NetRoute -RemoteIPAddress 10.60.20.10 | Select-Object -First 1
Get-NetIPAddress -InterfaceIndex 37 | Select-Object IPAddress,AddressFamily,PrefixLengthПерша команда повідомляє два варті читання поля: псевдонім інтерфейсу обраного джерела і наступний стрибок для цього призначення. Індекс 37 у другій команді — це те, що надрукував перший вивід, а не константа для копіювання, і адреса 10.60.20.10 наведена для прикладу. Якщо обране джерело належить фізичному адаптеру, а призначення має бути всередині тунелю, ви знайшли проблему вибору, бо інтерфейс VPN може бути цілком здоровим і просто не мати переваги. Метрика — лише частина цього рішення, оскільки специфічність маршруту, політика й стан інтерфейсу всі беруть участь.
Порівняйте три стани в однакових умовах
Запишіть список інтерфейсів і обраний маршрут до підключення, під час підключення та після відключення, щоразу з тим самим призначенням і тими самими командами. Це порівняння відокремлює поточний тунельний інтерфейс від старого прихованого адаптера, залишеного видаленням, і від другого клієнта, який теж працює. Воно також скаже, чи зникає тунельний інтерфейс чисто, бо адаптер, що залишається після відключення, — це інша проблема, ніж той, який так і не з'явився. Без трьох знімків кожен незнайомий псевдонім виглядає винуватцем.
Зберігайте три виводи разом із заявкою, бо два виводи команд кращі за абзац опису. Колега може порівняти їх, зовсім не повторюючи вашу сесію.
Не видаляйте те, що ви не визначили
Незнайомі адаптери зазвичай комусь належать: керованому клієнту, віртуальному комутатору, мережі контейнерів або агенту безпеки. Видалення одного може прибрати робочий компонент і залишити початковий симптом рівно там, де він був. Якщо маршрут застарів, знайдіть власника маршруту й виправте його там; якщо профіль хибний, відредагуйте профіль. Документація Get-NetIPInterface перелічує використані вище поля, включно зі стовпцями метрики й стану, які роблять порівняння осмисленим.
Назвіть об'єкт, знайдіть його власника, потім дійте щодо цього власника. Усе інше — це перейменування проблеми замість її читання.