Hai thiết lập Windows trông giống nhau trong Cài đặt và không hề hành xử giống nhau. Một là hồ sơ VPN được sao chép với trình kích hoạt ứng dụng, nên khởi chạy một tệp thực thi sẽ dựng đường hầm lên. Cái kia là hồ sơ chia tách đường hầm có danh sách tuyến tình cờ bao phủ thứ mà ứng dụng đó nói chuyện. Cái đầu trả lời khi nào đường hầm tồn tại. Cái sau trả lời gói nào đi vào nó, và chỉ cái sau để phần còn lại của máy trên liên kết vật lý trong khi ứng dụng vẫn kết nối.

Trình kích hoạt là quy tắc vòng đời, không phải quy tắc định tuyến

Add-VpnConnectionTriggerApplication liên kết một đường dẫn thực thi với tên hồ sơ. Khi tiến trình đó khởi động, Trình quản lý kết nối truy cập từ xa quay số hồ sơ, và khi điều kiện kích hoạt kết thúc, kết nối có thể rớt. Không có gì trong trao đổi đó kiểm tra socket. Lệnh ghép cần một shell nâng quyền, đường dẫn đầy đủ tới tệp nhị phân và -Force khi bạn thay thế một mục đã có. Xác nhận rằng liên kết vẫn còn bằng Get-VpnConnectionTrigger thay vì tin vào lời nhắc; tài liệu tham chiếu Add-VpnConnectionTriggerApplication liệt kê các tham số và ví dụ.

Hai giới hạn giải thích hầu hết các báo cáo rằng „trình kích hoạt không làm gì cả“. Trình kích hoạt được xây quanh hồ sơ cho tất cả người dùng, nên phạm vi hồ sơ là thứ đầu tiên cần làm rõ, và đường dẫn ứng dụng phải khớp với tệp nhị phân thực sự chạy, không phải lối tắt hay trình khởi chạy tạo ra tiến trình thứ hai. Giới hạn còn lại là cố ý: trên mạng mà Windows phân loại là đáng tin cậy, trình kích hoạt vẫn im lặng, vì hồ sơ được thiết kế để hoạt động ngoài văn phòng.

Add-VpnConnectionTriggerApplication -Name "APP_VPN" -ApplicationID "C:\Program Files\Vendor\app.exe" -Force
Get-VpnConnectionTrigger -Name "APP_VPN" | Format-List *
Get-VpnConnection -Name "APP_VPN" | Format-List Name,ConnectionStatus,SplitTunneling,AllUserConnection

Chia tách đường hầm quyết định cái gì đi qua đường hầm

Khi tắt chia tách đường hầm, Windows cài một tuyến mặc định dựa trên lớp với chỉ số thấp trên giao diện VPN. Mọi socket đều theo nó, kể cả trình duyệt và dịch vụ cập nhật, nên một trình kích hoạt trong cấu hình đó di chuyển toàn bộ máy chừng nào hồ sơ còn kết nối. Trình kích hoạt vẫn chỉ là quy tắc vòng đời; bán kính ảnh hưởng đến từ tuyến.

Khi bật chia tách đường hầm, hồ sơ chỉ mang các tiền tố mà cổng kết nối đẩy hoặc bạn thêm vào giao diện VPN. Mọi thứ khác tiếp tục dùng tuyến mặc định vật lý. Đó là cách sắp xếp mà người ta thường muốn nói bằng „một ứng dụng qua một lối ra riêng“, và đó là quyết định định tuyến từ đầu đến cuối.

Set-VpnConnection -Name "APP_VPN" -SplitTunneling $true
Get-VpnConnection -Name "APP_VPN" | Select-Object SplitTunneling
Get-NetRoute -InterfaceAlias "APP_VPN" | Sort-Object DestinationPrefix

Nơi một chia tách có định tuyến ngừng cô lập ứng dụng của bạn

Lỗi phổ biến là một đích không bao giờ xuất hiện trong danh sách tuyến của đường hầm. Một ứng dụng đăng nhập vào một địa chỉ rồi truyền phát từ CDN, hoặc phân giải hàng chục điểm cuối quay vòng, sẽ đặt một số kết nối lên giao diện VPN và phần còn lại lên Wi-Fi. IPv6 là một bảng riêng, nên một hồ sơ chỉ đẩy tiền tố IPv4 có thể trông đúng trong khi lưu lượng IPv6 của ứng dụng vẫn ở cục bộ.

Hai tác động nhỏ hơn cũng quan trọng ngang vậy. Khớp tiền tố dài nhất thắng, nên một tuyến on-link cụ thể hơn, một /32 được đẩy cho máy chủ quản trị hoặc mạng con của bộ điều hợp thứ hai có thể thắng đường hầm đúng cho địa chỉ bạn quan tâm. Phân giải tên cũng diễn ra trước định tuyến: trừ khi máy chủ DNS của hồ sơ hoặc một quy tắc NRPT bao phủ tên đó, ứng dụng có thể phân giải qua bộ điều hợp vật lý rồi quay số một địa chỉ chưa bao giờ nằm trong các tiền tố được đưa vào đường hầm.

Ba hình dạng, và mỗi cái mua được gì

Bảng là phần tôi sẽ dán lên tường, vì quyết định là về bán kính ảnh hưởng chứ không phải tính năng. Nếu đích của ứng dụng là các tiền tố ổn định bạn có thể liệt kê, chia tách có định tuyến cho khả năng cô lập với dấu chân nhỏ nhất. Nếu không, một hồ sơ tuyến mặc định sau một VM hoặc thiết bị thứ hai giữ sự tách biệt trung thực với cái giá phải di chuyển nhiều hơn một tiến trình.

ShapeWhat starts the tunnelWhat enters itPick it when
Trigger plus routed splitProcess startOnly pushed or added prefixesThe app's endpoints are stable prefixes and the host should stay direct
Trigger plus default routeProcess startEverything, machine-wideYou need one exit for all traffic and accept the wider scope
Separate VM or deviceGuest boot or loginEverything inside that guestThe app's destinations rotate, or the host must keep its own public address

Điều mà không cái nào trong số này cung cấp là ràng buộc ở mức socket trên máy chủ. Ứng dụng khách VPN cổ điển của Windows không có quy tắc nào nói rằng tiến trình này phải dùng bộ điều hợp đó; trình kích hoạt và bộ lọc tuyến sống ở các lớp khác nhau, và lớp chọn giao diện là bảng định tuyến. Nếu một hướng dẫn hứa hẹn thực thi theo từng ứng dụng chỉ từ một hồ sơ sao chép, hãy hỏi tuyến nào hoặc bộ lọc nào đang làm việc đó.

Xác minh cặp này trong một lượt

Kiểm tra vòng đời và định tuyến riêng rẽ, theo thứ tự đó. Đóng ứng dụng, xác nhận hồ sơ báo Disconnected, rồi khởi chạy ứng dụng và kiểm tra trạng thái đã thay đổi. Chỉ sau khi đường hầm dựng lên bạn mới nên hỏi một đích cụ thể đi đâu, và nên dùng địa chỉ mà ứng dụng thực sự quay số thay vì phỏng đoán.

$app = Get-Process app | Select-Object -First 1
Get-VpnConnection -Name "APP_VPN" | Select-Object ConnectionStatus
Get-NetTCPConnection -OwningProcess $app.Id -State Established | Select-Object RemoteAddress,RemotePort
Find-NetRoute -RemoteIPAddress 203.0.113.10

Find-NetRoute nêu tên giao diện và bước nhảy tiếp theo sẽ mang đích đó. Một bí danh vật lý ở đó nghĩa là đường hầm đã dựng và không liên quan đến luồng đó: kiểm tra các tiền tố được đẩy, rồi các tuyến cụ thể hơn, rồi IPv6. Nếu trạng thái không đổi chút nào, trình kích hoạt không kích hoạt, và đường dẫn tệp thực thi, phạm vi hồ sơ cùng nhật ký vận hành của ứng dụng khách VPN là ba nơi cần xem.

Dọn dẹp gọn gàng để lần kiểm tra sau trung thực

Gỡ theo thứ tự ngược với lúc bạn dựng: trước hết là trình kích hoạt ứng dụng, rồi đến hồ sơ. Xóa hồ sơ trong khi trình kích hoạt còn lại sẽ để lại một liên kết treo khiến lần thử sau khó hiểu, và Remove-VpnConnection -Force không phải lúc nào cũng xóa một mục sổ điện thoại được tạo ngoài các lệnh ghép.

Các mục theo người dùng nằm trong rasphone.pbk của người dùng dưới hồ sơ Roaming; các mục cho mọi người dùng nằm dưới ProgramData. Kiểm tra kho phù hợp với phạm vi hồ sơ, kết nối lại hồ sơ bạn đã giữ, và xác nhận các tuyến và DNS của nó vẫn hoạt động, để một lần kiểm tra sau đo thay đổi bạn đã làm chứ không phải trạng thái còn sót.

  • Đường hầm khởi động khi tiến trình bắt đầu, không phải khi đăng nhập.
  • Chỉ những tiền tố dự định mới xuất hiện trên giao diện VPN.
  • Địa chỉ từ xa thực của ứng dụng phân giải thành bí danh VPN.
  • Không còn trình kích hoạt treo sau khi gỡ hồ sơ.

Bài viết liên quan