Cách kiểm tra độ ổn định của VPN mà không ghi lại lịch sử duyệt web
Chứng minh độ ổn định của đường hầm bằng một đầu dò cố định, bốn dữ kiện được lấy mẫu và nhật ký sự kiện có dấu thời gian, thay vì đưa việc duyệt web hằng ngày vào bài kiểm tra.
Bạn muốn biết đường hầm có sống sót qua giấc ngủ của máy tính xách tay, một chuyến đi bộ giữa các điểm truy cập, hay một giờ gọi điện, và bạn không muốn trao cho ai nhật ký của mọi thứ bạn đọc trong lúc tìm hiểu. Ba thứ trả lời điều đó: một đầu dò cố định, đúng bốn dữ kiện được lấy mẫu theo lịch và sự kiện đã thay đổi chúng được ghi lại. Mười phút của việc đó tốt hơn một buổi chiều ngồi nhìn một trang không tải được. Nhật ký bạn còn lại cuối cùng cũng đủ ngắn để đính kèm vào một phiếu mà không phải che đi một nửa.
Quyết định xem ổn định phải có nghĩa là gì
“VPN bị rớt” là bốn hỏng hóc khác nhau trong một từ. Peer có thể mất bắt tay, tuyến có thể quay về cổng mặc định cục bộ, việc phân giải tên có thể đi đến một máy chủ không bao giờ trả lời qua đường hầm, hoặc tất cả những thứ đó có thể khỏe mạnh trong khi một ứng dụng vẫn hỏng. Hãy quyết định cái nào khớp với triệu chứng của bạn trước khi thu thập bất cứ thứ gì, vì mỗi cái cần một đầu dò khác nhau. Sau đó chọn một khoảng thời gian bạn có thể duy trì: một mẫu mỗi ba mươi giây trong mười phút sẽ bắt được một lần chuyển mạng mà không biến bài kiểm tra thành gánh nặng công việc.
Nếu phàn nàn là cuộc gọi bị đứng khi bạn đi ra bếp, đặc tính bạn cần là liệu một yêu cầu mới có hoàn tất sau khi chuyển mạng hay không. Điều đó kiểm tra được trong một dòng và không ghi lại chút duyệt web nào.
Cố định một đầu dò vô hại
Chọn một đích mà bạn được phép truy vấn và không gắn với tài khoản của bạn: một máy chủ tài liệu, một điểm cuối trạng thái nội bộ hoặc chính cổng của đường hầm. Làm cho thao tác có thể lặp lại, ví dụ curl -s -o /dev/null -w "%{http_code} %{time_total}\n" https://example.com/, in ra một dòng mỗi lần thử. Giữ nguyên định dạng đầu ra đó trong suốt lần chạy. Mã trạng thái và thời lượng được thu thập cùng một cách hai lần chính là thứ khiến hai lần chạy so sánh được với nhau.
Chống lại trang mà bạn thực sự dựa vào. Một trang ngân hàng hoặc webmail kéo trình theo dõi, chuyển hướng và nội dung cá nhân vào phép đo, và in các mã định danh phiên vào mọi thứ bạn dán vào phiếu sau này. Dùng cùng một đích trong suốt cuộc điều tra, và ghi nó bên cạnh khoảng thời gian.
Lấy mẫu bốn dữ kiện
Trạng thái peer, tuyến, trình phân giải và một yêu cầu mới là bốn quan sát, và mỗi cái có một nguồn rẻ. Trên WireGuard, wg show wg0 latest-handshakes cho dấu thời gian của peer và ip route get 1.1.1.1 cho biết nhân sẽ dùng giao diện nào. Trên OpenVPN, trạng thái đó nằm trong tệp trạng thái do --status /run/openvpn/status 10 ghi hoặc phía sau state trên giao diện quản trị. Một máy khách Windows ở lại trong PowerShell với Get-NetAdapter và Resolve-DnsName.
Lặp chúng trong một terminal để mỗi dòng mang một dấu thời gian: for i in $(seq 1 20); do date -Is; wg show wg0 latest-handshakes; ip route get 1.1.1.1; sleep 30; done. Vòng lặp đó bao phủ ba trong sáu trường của nhật ký; phiên bản máy khách được ghi một lần ở trên cùng, và dấu thời gian của sự kiện được thêm vào khi sự kiện xảy ra.
Trình phân giải là dữ kiện mà người ta bỏ qua, và dig +short che nó đi, vì dạng đó chỉ in câu trả lời. Hãy hỏi máy chủ một cách rõ ràng bằng dig example.com | grep SERVER:, hoặc dùng nslookup example.com ở nơi chưa cài dig, lệnh này in địa chỉ của máy chủ mà truy vấn đã đi tới. Một lần bắt tay cũ trên đường hầm nhàn rỗi cũng không tự động là lỗi, vì WireGuard chỉ đổi khóa khi có lưu lượng cần bảo vệ.
Kích hoạt sự kiện, không phải rò rỉ
Lấy năm phút yên tĩnh làm đường cơ sở trước sự kiện bạn quan tâm, dù đó là gập nắp máy, đi bộ đến một điểm truy cập khác hay chuyển sang điểm phát sóng của điện thoại. Ghi lại thời điểm bạn gây ra nó, để các mẫu ở hai bên có thể được xếp thẳng hàng.
Không có dấu thời gian đó, nhật ký cho thấy một khoảng trống và không ai có thể nói máy khách hay mạng đã đóng nó. Hai lần chạy với sự kiện ở các vị trí khác nhau đáng giá hơn mười lần không có. Dùng chính các điều khiển ngắt kết nối và kết nối lại của máy khách. Đừng tắt công tắc chặn và đừng đẩy lưu lượng ra ngoài đường hầm để xem điều gì xảy ra, vì trên một máy tính xách tay được quản lý đó là vi phạm chính sách, còn trên máy của chính bạn nó tạo ra đúng sự phơi bày mà bạn đang kiểm tra.
Giữ nhật ký đủ nhỏ để hoàn thành
Sáu trường mỗi mẫu: thời gian, phiên bản máy khách, điểm cuối, mạng truy cập, sự kiện, kết quả. Bỏ ra ngoài địa chỉ web, tải trọng, token và bất cứ thứ gì mang mã định danh phiên, vì nhật ký là bằng chứng về đường hầm và không gì khác. Giữ nó bên cạnh vòng lặp để người tiếp theo có thể chạy lại mà không phải hỏi các cột nghĩa là gì.
Sau một thay đổi, lặp lại bài kiểm tra với cùng đầu dò và cùng khoảng thời gian; nếu đổi cả đích và phiên bản máy khách cùng lúc thì kết quả không thuộc về cái nào. Một lần chạy sạch mười phút là bằng chứng cho những điều kiện và đích đó, không phải lời hứa về mạng khách sạn tháng sau. Giữ tập lệnh và mẫu nhật ký ở nơi bạn sẽ tìm thấy chúng. Những hạn chế được ghi lại của WireGuard đáng đọc trước khi quy lỗi cho giao thức.