Mỗi máy tính để bàn giữ bản ghi riêng về những gì VPN đã làm, và bản xuất của ứng dụng thường là bản kém đầy đủ nhất trong số đó. Trình quản lý dịch vụ ghi lại thời điểm một đơn vị khởi động, nhân hệ điều hành ghi lại thời điểm một giao diện xuất hiện, và ngăn xếp mạng ghi lại thời điểm các tuyến không thể áp dụng. Không cơ chế nào trong số đó biết ứng dụng khách định làm gì, và ứng dụng khách không biết nhân đã làm gì với yêu cầu của mình.

Đọc riêng một bản ghi như vậy dễ dẫn đến kết luận sai. Đọc hai bản, từ cùng một phút, và trình tự trở nên rõ ràng.

Ba cơ chế với ba từ vựng

Trên Linux, nhật ký systemd bắt các thông điệp vòng đời của đơn vị từ wg-quick@wg0 hoặc plugin VPN của NetworkManager, và bộ đệm vòng của nhân mang thông điệp về giao diện và định tuyến. Trên Windows, nhật ký sự kiện chia câu chuyện cho các nhà cung cấp hệ thống, WLAN và truy cập từ xa, mỗi bên có mã định danh riêng. Trên macOS, nhật ký hợp nhất mang các thông điệp giới hạn trong hệ thống con mà Console đồ họa chỉ hiển thị một phần.

Các từ vựng không dịch được cho nhau. Mã sự kiện của một nền tảng không có ý nghĩa trên nền tảng khác, và ảnh chụp hộp thoại Windows không chứng minh được gì về một đơn vị Linux.

Điểm chung của cả ba là dấu thời gian, nguồn và mức độ nghiêm trọng, và chính bộ ba đó cho phép đối chiếu giữa nhật ký ứng dụng khách và bản ghi của hệ điều hành. Tính sẵn có cũng khác nhau: một vùng chứa không có nhật ký, một ảnh Windows bị lược bớt hoặc mức ghi nhật ký bị hạ lúc biên dịch đều có thể che giấu cả một lớp.

FacilityWhat it recordsWhat it cannot show
systemd journalUnit start and stop, helper output, exit statusWhether packets actually reached the peer
Kernel and netlinkInterface creation, address assignment, route changesWhy the client asked for that configuration
Windows event logProvider-specific connection and adapter eventsAnything the provider chose not to log

Một dòng đã kết nối chứng minh gì và không chứng minh gì

Sự kiện khởi động dịch vụ ghi lại rằng đơn vị cục bộ được yêu cầu khởi động và nó không thoát ngay lập tức. Nó không ghi lại một lần bắt tay hoàn tất, một khóa ngang hàng hợp lệ hay một tuyến đang hoạt động. Coi dòng đó là bằng chứng của đường hầm là cách đọc sai phổ biến nhất của những nhật ký này. Dòng đó chứng minh ý định và trạng thái tiến trình, và hoàn toàn không chứng minh gì về khả năng tiếp cận.

Trạng thái chuyển tiếp là một quan sát riêng, và nó đến từ bảng định tuyến chứ không từ bất kỳ nhật ký nào.

Một sự kiện bộ điều hợp có thể giải thích lỗi âm thầm: giao diện đã lên, địa chỉ đã được gán, và các tuyến không bao giờ được cài đặt vì một quy tắc chính sách đã từ chối chúng. Trong trình tự đó, mọi dòng hiển thị đều có vẻ khỏe mạnh trong khi không có gì được định tuyến, và cách duy nhất để thấy điều đó là so sánh dấu thời gian của nhật ký với bảng định tuyến tại cùng thời điểm. Giữ thứ tự sự kiện riêng của ứng dụng khách bên cạnh cả hai, vì ứng dụng khách là nguồn duy nhất biết nó đã yêu cầu gì. Hai sự thật bạn cần cùng nhau hầu như không bao giờ xuất hiện trên cùng một dòng.

Một lần kết nối lại sau đó sẽ ghi đè phần thú vị của bức tranh này, vì vậy hãy ghi lại cửa sổ ngay ở lần thất bại đầu tiên thay vì sau ba lần thử.

Đối chiếu một cửa sổ hẹp

Ghi lại thời điểm thử cùng múi giờ của nó, rồi lấy ra vài phút xung quanh. Lỗi đầu tiên trong cửa sổ gần như luôn có trước dòng ngắt kết nối mà các phiếu hỗ trợ trích dẫn.

journalctl -u wg-quick@wg0 --since "today 09:00" --until "today 09:20"
ip route show table all | grep wg0
log show --last 20m --predicate 'subsystem == "com.apple.network"'

Mỗi lệnh trả lời một phần khác nhau của câu hỏi: lệnh đầu cho vòng đời, lệnh thứ hai trạng thái chuyển tiếp, lệnh thứ ba hệ thống con mạng của macOS. Trên Windows, hãy lọc nhật ký hệ thống theo tên nhà cung cấp thay vì cuộn toàn bộ kênh, và chỉ xuất các sự kiện khớp.

Giữ đoạn trích đủ nhỏ để người đọc theo dõi được. Một cửa sổ hai mươi phút với bốn sự kiện liên quan hỗ trợ một kết luận; một bản xuất cả ngày với hàng nghìn dòng không hỗ trợ được gì.

Những bản ghi này dừng ở đâu

Bản ghi cục bộ mô tả thiết bị, không mô tả đường đi. Chúng không thể cho thấy nhà cung cấp đã lưu gì, một phiên có được khớp với tài khoản hay không, hoặc một điểm đến đã thấy gì. Tuyên bố của nhà cung cấp rằng họ không giữ nhật ký không nói gì về hệ điều hành trên máy tính xách tay của bạn, và một sự kiện cục bộ không chứng minh được gì về hồ sơ lịch sử của nhà cung cấp.

Chúng cũng mang nhiều dữ liệu cá nhân hơn mức mong đợi: tên người dùng, tên máy chủ, đường dẫn gắn kết và mã định danh thiết bị xuất hiện trong các thông điệp hệ thống thông thường ngay cả khi không có nội dung duyệt web. Hãy xóa những thông tin đó trước khi đính kèm bất cứ thứ gì vào phiếu, và giữ bản gốc dưới các kiểm soát truy cập thông thường.

Trên một thiết bị được quản lý, hãy yêu cầu bộ phận IT cung cấp đoạn trích liên quan thay vì cố xóa nhật ký của tổ chức. Mục tiêu chẩn đoán là một câu hỏi hẹp được hai nguồn trả lời, không phải toàn bộ lịch sử của máy.

Bài viết liên quan