Thời gian hoạt động của máy chủ VPN: con số đó không nói gì với bạn
Bộ đếm đo thời gian kể từ khi thứ gì đó khởi động, không phải khả năng truy cập từ mạng của bạn. Hãy kiểm tra định nghĩa và thời điểm báo cáo, rồi thử những gì bạn cần.
Một danh sách nút công khai hiển thị một máy chủ có thời gian hoạt động được đo bằng tuần, nên bạn chọn nó, và kết nối thất bại ngay ở lần thử đầu tiên. Đó không phải quảng cáo sai sự thật; đó là câu hỏi sai đặt cho một con số đo một thứ khác. Thời gian hoạt động thường cho biết một tiến trình, vùng chứa hoặc máy đã chạy bao lâu kể từ lần khởi động gần nhất, và đó là thuộc tính của hạ tầng nhà xuất bản, không phải đường đi của bạn tới nó. Coi nó là độ tin cậy là cùng một lỗi phân loại như coi đồng hồ đo quãng đường của ô tô là báo cáo mặt đường.
Con số đo cái gì
Trên một máy chủ có trình quản lý dịch vụ hiện đại, bộ đếm được neo vào một sự kiện bạn thực sự có thể đọc: dấu thời gian khi đơn vị chuyển sang trạng thái hoạt động, hoặc thời điểm khởi động của máy. Mọi thứ khác là số học trên mốc neo đó, và định nghĩa của mốc neo khác nhau giữa các nhà xuất bản. Một danh sách có thể đặt lại khi khởi động lại daemon, danh sách khác khi khởi động lại máy, và danh sách thứ ba khi một người vận hành muốn biểu đồ sạch nên đặt lại thủ công.
systemctl show -p ActiveEnterTimestamp --value openvpn-server@server
uptime -s
systemctl is-active openvpn-server@server
Ba lệnh đó trả lời ba câu hỏi khác nhau, và một thư mục chỉ hiển thị một con số không thể cho bạn biết nó đã dùng lệnh nào. Vì vậy so sánh một bộ đếm thô từ hai danh sách hoàn toàn không phải là so sánh cho đến khi bạn biết mỗi bên đặt lại theo mốc nào.
Tiến trình có thể vẫn chạy trong khi đường đi bị đứt
Daemon đang lắng nghe. Chứng chỉ hợp lệ. Tiến trình đã sống hai mươi ba ngày. Không điều nào trong đó bảo đảm các gói từ mạng của bạn đến được nó, vì khả năng truy cập là thuộc tính của toàn bộ đường đi: đường trục lên của nhà cung cấp, kết nối ngang giữa mạng của họ và mạng của bạn, sự tắc nghẽn trên một liên kết trung chuyển dùng chung, và tường lửa trước kết nối của chính bạn.
Máy chủ cũng có thể đang chạy mà vô dụng vì lý do khác. Một nút đã nhận nhiều ứng dụng khách hơn nhiều so với băng thông hỗ trợ sẽ cho thấy thời gian hoạt động dài và trải nghiệm tồi tệ, vì bộ đếm không đo dung lượng hay tranh chấp. Đây là cách phổ biến nhất mà một nút có thời gian hoạt động dài làm bạn thất vọng: không có gì hỏng, mọi thứ đều bận.
Trường hợp ngược lại cũng đáng nhớ. Một nút được khởi động lại cách đây một giờ có thể hoàn toàn khỏe mạnh bây giờ, và việc sắp xếp theo con số lớn nhất âm thầm loại nó ra. Thời gian hoạt động không phải điểm chất lượng, và coi nó như vậy là chọn theo tuổi thay vì theo mức phù hợp.
Độ tươi: báo cáo cũ hơn lần thử của bạn
Các thư mục công khai là trang được tạo từ các lần kiểm tra định kỳ, không phải đo từ xa trực tiếp. Thời gian hoạt động bạn đọc được tính ở lần làm mới cuối cùng, và kết nối bạn đang thử xảy ra sau đó. Ở giữa, nhà cung cấp có thể làm rớt một liên kết, đổi chứng chỉ, di chuyển địa chỉ hoặc đưa một nút ra khỏi dịch vụ, và trang sẽ tiếp tục báo trạng thái tốt cuối cùng đã biết cho đến lần thu thập tiếp theo.
Khoảng trống đó cũng hoạt động theo chiều ngược lại. Một nút được báo là hỏng có thể đã phục hồi vài phút sau khi báo cáo được tạo, nên thử lại ngay trên một nút khác không phải lúc nào cũng là lựa chọn tốt hơn.
Quy tắc thực hành là mọi trường được báo cáo đều là một khẳng định về quá khứ. Hãy dùng nó để lập danh sách rút gọn, rồi kiểm chứng bằng một phép đo bạn tự thực hiện vào thời điểm quan trọng với bạn.
Nên thử gì thay vào đó
Hãy quyết định bạn cần gì từ nút và thử điều đó. Nếu bạn cần khả năng truy cập, một lần thử kết nối TCP tới cổng lắng nghe cho bạn biết trong một giây nhiều hơn bất kỳ bộ đếm nào. Nếu bạn cần một đường hầm hoạt động, hãy thương lượng một đường. Nếu bạn cần thông lượng dùng được, hãy truyền một thứ thật và đo nó, vì thời gian kết nối và thông lượng là hai thuộc tính khác nhau và một cái bắt tay nhanh không nói gì về cái thứ hai.
nc -vz -w 5 vpn.example.net 1194
curl -sS -o /dev/null -w '%{time_connect} %{time_appconnect} %{time_total}\n' https://vpn.example.net/
mtr -rwc 20 vpn.example.net
Lặp lại bài thử thay vì tin vào một lần. Độ tin cậy là một phân bố theo thời gian và điều kiện, và một kết nối thành công là mẫu có kích thước một. Một vài lần thử trong những giờ bạn thực sự dùng kết nối sẽ vượt qua bất kỳ thời gian hoạt động được công bố nào với biên độ lớn.
Đọc danh sách nút công khai mà không bị đánh lừa
Thời gian hoạt động cũng không mang thông tin về những gì người ta thường muốn từ VPN: hiệu lực của chứng chỉ, ai vận hành đầu ra, chính sách DNS nào được áp dụng và liệu nhà vận hành có lưu giữ hồ sơ kết nối hay không. Đó là những khẳng định riêng cần bằng chứng riêng, và một bộ đếm dài không phải bằng chứng cho bất kỳ điều nào trong số đó. Một nút có thể ổn định hàng tháng và vẫn là lựa chọn tồi cho một yêu cầu về quyền riêng tư.
Nơi một danh sách thực sự hữu ích là khi lập danh sách rút gọn. Hãy sắp xếp theo điều bạn biết mình cần, lọc bỏ các nút ở khu vực không liên quan đến nhiệm vụ, rồi thử ba hoặc bốn nút còn lại. Hãy giữ giai đoạn thất bại của từng lần thử thay vì một chữ có hay không, vì «bắt tay TLS thất bại» và «đã kết nối nhưng không có thông lượng» dẫn đến những kết luận hoàn toàn khác nhau.
Khung đo hiệu năng đường đi nêu cùng một điểm ở dạng chặt chẽ hơn: hãy xác định thước đo, điều kiện và phương pháp trước khi thu thập số liệu. Áp dụng cho một danh sách nút, điều đó có nghĩa trường thời gian hoạt động là bối cảnh. Phép đo bạn tự thực hiện chính là quyết định.