VPN không trả lời gì trên cổng của nó, và hai nguyên nhân khả dĩ đòi hai cách sửa ngược nhau: hoặc không tiến trình nào mở socket, hoặc socket tồn tại và thứ gì đó giữa hai máy đang chặn các gói. Một lệnh duy nhất giải quyết nửa đầu của câu hỏi đó, vì vậy nó đứng trước mọi quy tắc tường lửa. Thứ tự dưới đây loại bỏ mỗi bước một lời giải thích thay vì thêm một phỏng đoán nữa. Chính việc đoán giữa hai khả năng là thứ biến một chẩn đoán mười phút thành cả một buổi tối.

Giả sử bạn đăng nhập được vào máy chủ và máy khách là một hồ sơ thật chứ không phải máy quét. Cả hai giả định đều quan trọng, vì một đầu dò chung không thể trả lời câu hỏi đặc thù của giao thức.

Socket có tồn tại không

Bắt đầu từ điều dịch vụ nói về chính nó: nó có khởi động không và, hữu ích hơn, lỗi khởi động đầu tiên là gì. Lỗi phân tích, thiếu khóa hoặc lỗi ràng buộc khiến trình lắng nghe không bao giờ hình thành, và tiến trình có thể thoát đủ im lặng để dòng trạng thái bị đọc mơ hồ. Một unit báo cáo đang hoạt động chưa phải bằng chứng tự thân, vì tiến trình chính có thể còn sống trong khi thành phần lẽ ra phải ràng buộc cổng đã bỏ cuộc.

systemctl status openvpn-server@server --no-pager
journalctl -u openvpn-server@server -n 30 --no-pager
ss -lunp

Danh sách socket là sự thật mà phần còn lại của chẩn đoán dựa vào. Hãy đọc cột địa chỉ cục bộ chứ không chỉ cổng, vì chính cột đó cho thấy các ràng buộc vào loopback và ràng buộc vào giao diện sai. Một trình lắng nghe tồn tại trên 127.0.0.1 đang chạy hoàn hảo và vẫn vô hình với máy tính xách tay của bạn.

Socket trả lời trên địa chỉ và họ địa chỉ nào

Hai lỗi trông giống nhau từ phía máy khách và giải thích phần lớn báo cáo "không thể truy cập". Một máy chủ ràng buộc vào địa chỉ loopback không bao giờ nhận lưu lượng từ máy khác, và một máy chủ chỉ ràng buộc vào địa chỉ IPv4 không bao giờ trả lời máy khách đang quay số tới địa chỉ IPv6 của cùng máy chủ đó. Hãy so sánh địa chỉ trong bảng socket với địa chỉ mà máy khách thực sự đang quay số, từng ký tự, trước khi giả định bất cứ điều gì về chính sách.

Giới hạn danh sách vào một cổng giữ cho nó dễ đọc khi máy chủ chạy nhiều dịch vụ. Bộ lọc sport lấy cổng cùng với giao vận mà bạn đang kiểm tra:

ss -lun 'sport = :51820'
ss -ltnp 'sport = :1194'

Cột giao thức đổi toàn bộ câu trả lời

Bảng socket được chỉ mục theo cả giao thức lẫn cổng, và đây là hai mục độc lập. Một dịch vụ trả lời TCP trên 1194 không nói gì về việc có gì đang lắng nghe trên UDP 1194, và máy khách sẽ chỉ dùng một trong hai. Xác nhận cấu hình máy chủ chọn giao vận nào và hồ sơ máy khách gửi giao vận nào, rồi tìm đúng dòng đó.

UDP có nếp gấp thứ hai: một đầu dò chưa xác thực không phải lỗi mà dịch vụ buộc phải trả lời. Một lần quét báo cổng im lặng đã đo sự kín đáo của dịch vụ, không phải tính sẵn sàng của nó, nên hãy kiểm tra bằng máy khách và hồ sơ thật.

Một lần thử, ba nơi để nhìn

Từ một máy khách đã được duyệt, hãy thực hiện đúng một lần thử và ghi lại thời điểm đến giây. Sau đó đọc ba nguồn cho khoảng thời gian đó: quy tắc mạng hoặc bảng điều khiển của nhà cung cấp, bộ đếm hoặc nhật ký của tường lửa trên máy chủ, và nhật ký của chính dịch vụ. Làm điều này một lần là thứ khiến ba lời kể so sánh được với nhau, và tốn ít hơn việc lặp lại một lần thử mà không ai ghi lại dấu thời gian.

Hai kết quả chỉ về hai hướng ngược nhau. Nếu không gói nào tới được máy chủ, đường đi đang bỏ nó và trình lắng nghe không liên quan. Nếu gói tới được socket và dịch vụ từ chối nó, đường đi ổn và câu trả lời nằm ở giao thức, mật mã hoặc thông tin đăng nhập. Mở cổng cho một dịch vụ đã chấp nhận kết nối làm chẩn đoán tiếp theo khó hơn, không dễ hơn.

Gọi tên giai đoạn trước khi đổi một quy tắc

Thương lượng bắt đầu và xác thực thất bại là một lỗi, còn đường hầm được thiết lập trong khi việc chuyển tiếp tắc lại là một lỗi hoàn toàn khác. Gọi tên giai đoạn trước giữ việc sửa chữa hẹp: vấn đề thông tin đăng nhập không được sửa bằng quy tắc tường lửa, và vấn đề đường dữ liệu không được sửa bằng khởi động lại.

Dùng chẩn đoán hẹp nhất trả lời được câu hỏi. Quan sát gói tạm thời trên một cổng, dưới sự kiểm soát của quản trị viên, là công cụ hợp lý; tắt toàn bộ tường lửa thì không, vì kết quả trở nên không thể quy cho đâu. Tài liệu của ss bao quát các bộ lọc dùng ở trên, và đó là bước đầu rẻ hơn mọi lần bắt gói. Ghi lại bạn đã chứng minh nhánh nào trong hai nhánh, và lần xuất hiện tiếp theo bắt đầu từ một câu trả lời đã biết.

Bài viết liên quan