Màn hình VPN của Android hiển thị một dòng với tên, biểu tượng khóa và có thể là công tắc luôn bật. Nó hiếm khi hiển thị điểm cuối, chính sách tuyến, máy chủ DNS hoặc thông tin đăng nhập giúp kết nối hoạt động, vì trong một đường hầm dựa trên ứng dụng, những thứ đó thuộc về ứng dụng. Hệ quả thực tế là một câu hỏi runbook, không phải triết lý: trước khi chỉnh sửa tệp đã tải xuống hoặc tìm kho hồ sơ trung tâm, hãy tìm ra thành phần nào sở hữu cài đặt mà bạn muốn thay đổi.

Trước tiên hãy xác định loại kết nối

Có ít nhất ba cách bố trí trên cùng màn hình cài đặt. Một ứng dụng có thể dùng VpnService để tạo giao diện ảo và sở hữu giao thức cùng cấu hình riêng, kể cả một ứng dụng lọc cục bộ không có lối ra từ xa. Android cũng có thể cung cấp hồ sơ IKEv2 của nền tảng qua Ikev2VpnProfile, có từ API 30, nơi nền tảng giữ phần lớn hồ sơ. Và ứng dụng của nhà cung cấp có thể trình bày danh sách máy chủ riêng và lắp ráp cài đặt bên trong.

adb shell dumpsys connectivity | grep -i -A12 "VPN"
adb shell cmd connectivity list-owners 2>/dev/null || true

Lệnh đầu tiên hiển thị mạng VPN đang hoạt động và thuộc tính liên kết của nó, tức trạng thái đã áp dụng. Nếu dòng đó nêu tên một gói bạn nhận ra, hãy bắt đầu từ chế độ xem hồ sơ của chính ứng dụng đó thay vì màn hình hệ thống.

Ghi lại chủ sở hữu và phạm vi hồ sơ

Ghi lại bốn sự thật trước khi thay đổi bất cứ điều gì: gói sở hữu, kết nối nằm trong hồ sơ cá nhân hay hồ sơ công việc, tên hồ sơ hoặc kết nối như ứng dụng hiển thị, và ai quản lý nó. Chủ thiết bị có thể cung cấp VPN hồ sơ công việc mà người dùng hồ sơ cá nhân không thể chỉnh sửa, và cùng một ứng dụng cài hai lần cho bạn hai chủ sở hữu độc lập.

Bước này ngăn giờ bị mất phổ biến nhất, đó là chỉnh sửa một hồ sơ không phải hồ sơ đang kết nối. Ứng dụng thường giữ nhiều hồ sơ, và hồ sơ đang hoạt động là thuộc tính của ứng dụng, không phải của dòng Android.

So sánh trạng thái được yêu cầu, nhận được và áp dụng

Đây là ba giai đoạn khác nhau, và sự khác biệt giữa chúng cho bạn biết thành phần nào cần sửa.

StageWhere to lookWhat it proves
RequestedThe app's profile editor or imported fileWhat the owner intends to use
ReceivedSanitized app log of server-supplied optionsWhat the peer actually pushed
AppliedLink properties and routes after connectWhat the device is really using

Giai đoạn áp dụng là giai đoạn duy nhất bạn có thể quan sát mà không cần tin nhật ký của ai. So sánh máy chủ DNS và các tuyến trong thuộc tính liên kết đang hoạt động với những gì hồ sơ tuyên bố; nếu chúng khác nhau, máy chủ đã đẩy một thứ gì đó hoặc ứng dụng đã áp dụng chính sách bạn không ngờ.

adb shell ip addr show tun0
adb shell ip route show table all | head -40

Tên giao diện khác nhau giữa các ứng dụng, vì vậy trước tiên hãy liệt kê các giao diện và đọc giao diện xuất hiện khi đường hầm kết nối. Một tuyến có trong trình chỉnh sửa của ứng dụng nhưng không có ở đây chưa bao giờ được áp dụng; một tuyến có ở đây nhưng không có trong trình chỉnh sửa đến từ nơi khác.

Chỉnh sửa tạo tác mà chủ sở hữu thực sự đọc

Với hồ sơ OpenVPN đã nhập, ứng dụng thường giữ bản sao riêng. Chỉnh sửa tệp đã tải xuống ban đầu sau đó không thay đổi kết nối tiếp theo; hãy dùng trình chỉnh sửa được tài liệu hóa của ứng dụng, hoặc nhập lại và xác nhận hồ sơ nào đang hoạt động. Đó là sự khác biệt giữa thay đổi một tệp và thay đổi một cấu hình.

Ứng dụng của nhà cung cấp thường lắp ráp cài đặt từ danh sách máy chủ thay vì ghi một tệp mà người dùng có thể chỉnh sửa. Việc không có nút xuất không phải bằng chứng VPN là giả, và tệp xuất có thể bỏ sót khóa gắn với thiết bị hoặc tài liệu đăng ký mà thiết bị khác cần. Hãy coi xuất và nhập là các thao tác riêng biệt với điều kiện tiên quyết của chúng.

Viết ghi chú hỗ trợ mà không lộ bí mật

Một ghi chú hữu ích nêu tên ứng dụng và hồ sơ chính xác, cài đặt trông sai và bằng chứng từ từng giai đoạn. Ví dụ: hồ sơ này nhận địa chỉ DNS riêng từ máy chủ, nhưng ứng dụng công việc dự định không phân giải được dịch vụ của nó, và thuộc tính liên kết đã áp dụng hiển thị trình phân giải đó trong khi trình chỉnh sửa hồ sơ hiển thị một trình khác.

Giữ thông tin đăng nhập ngoài ghi chú. Không cần root thiết bị để tìm trong kho riêng của ứng dụng nhằm xác định chủ sở hữu, và đường dẫn thư mục dữ liệu đoán được không phải giao diện được hỗ trợ. Nếu câu trả lời cần byte mà chỉ ứng dụng thấy, hãy yêu cầu chủ sở hữu xuất chẩn đoán thay vì tự tạo một bản.

Khi công việc xong, hãy đóng vòng lặp: xác nhận tên hồ sơ đang hoạt động, đọc lại trạng thái đã áp dụng và ngắt kết nối một lần để xác minh thay đổi tồn tại sau khi kết nối lại. Một cài đặt chỉ tồn tại trong trình chỉnh sửa thì chưa được triển khai.

Bài viết liên quan