Hai dòng nhật ký của OpenVPN bắt đầu bằng cùng những từ, và chỉ một trong số đó báo cáo vấn đề. Could not determine IPv4/IPv6 protocol. Using AF_INET là thông báo dự phòng: hồ sơ để họ địa chỉ mở, nên daemon đã chọn một và tiếp tục. Nhánh lỗi báo rằng không có socket nào được tạo và yêu cầu khởi động lại. Mọi thứ sau tiền tố chung phân biệt hai dòng, nên hãy đọc tiếp trước khi thay đổi bất cứ điều gì.

Thông báo dự phòng báo cáo điều gì

OpenVPN chấp nhận một họ địa chỉ rõ ràng qua proto udp4 hoặc proto udp6, và chấp nhận proto udp khi họ địa chỉ cần được suy ra lúc khởi động. Trong trường hợp thứ hai, daemon xem xét thông tin ràng buộc cục bộ và chọn.

Khi việc suy ra đó hoạt động, cảnh báo cho biết nó đi theo hướng nào và tiến trình tiếp tục tạo socket. Một máy chủ có proto udp trên máy có ngăn xếp kép thường kết thúc ở IPv4 theo cách này. Không có gì trên đường đó là lỗi, và không có gì trong đó gợi ý một cuộc tấn công, một máy chủ web thiếu hay một tài khoản bị từ chối. Dòng này chỉ hữu ích vì các kiểm tra sau nên được so sánh với họ địa chỉ mà nó nêu tên.

Hãy coi đó là câu trả lời cho một câu hỏi, không phải chẩn đoán. Nó cho biết tiến trình này đã chọn họ nào, và không nói gì về việc tại sao máy khách không thể kết nối.

Nhánh lỗi trông như thế nào

Sau đó trong cùng mã socket có một nhánh không có socket nào cả. Nhánh này ghi thông điệp họ địa chỉ ngắn hơn và yêu cầu khởi động lại, vì không còn gì để tiếp tục. Những từ mở đầu khớp với dự phòng; kết quả thì không.

Phân biệt chúng bằng những gì tiếp theo. Nếu daemon tiếp tục chạy và báo cáo trình lắng nghe của nó, dòng đó là thông tin. Nếu nó thoát hoặc khởi động lại trong vòng lặp, cuộc trò chuyện bây giờ là về ràng buộc.

Một kết quả grep cũng không phải là nhận diện nhánh. Cụm từ xuất hiện trong các bản tóm tắt luân chuyển, trong những dòng bị ngắt và trong các trích nhật ký mà người ta dán từ nguồn thứ hai, nên hãy đọc các dòng lân cận và thứ tự dấu thời gian thay vì một kết quả khớp duy nhất.

Hãy kiểm tra trình lắng nghe thay vì cảnh báo

Một máy chủ đang chạy trả lời câu hỏi về họ địa chỉ trực tiếp, không suy luận từ văn bản nhật ký.

ss -lunp | grep openvpn
ss -ltnp | grep openvpn

Khớp họ địa chỉ, địa chỉ và cổng với hồ sơ. Dòng 0.0.0.0:1194 chỉ là IPv4, trong khi dòng [::]:1194 trên máy có ngăn xếp kép có thể chấp nhận cả hai họ tùy theo cài đặt bindv6only. Nếu hồ sơ ghi udp và socket là IPv4, những máy khách có trình phân giải chỉ trả về bản ghi AAAA sẽ thất bại trước cả khi đường hầm được thương lượng.

Sau đó hãy thử từ một máy khách giống người dùng của bạn: cùng đường phân giải, cùng loại mạng. Một kết nối cục bộ từ máy chủ chứng minh rất ít về lưu lượng đi qua thiết bị NAT hoặc quy tắc tường lửa được viết cho họ địa chỉ kia.

Khi nào việc ép buộc một họ địa chỉ là đúng

Ghim proto udp4 phù hợp với triển khai chỉ IPv4: tên DNS chỉ có A, quy tắc tường lửa cho một địa chỉ v4, máy khách sau các nhà mạng chỉ cấp địa chỉ v4. Nó loại bỏ sự mơ hồ và làm cho bộ dòng nhật ký tiếp theo có thể dự đoán được.

Lập luận tương tự cũng đúng ngược lại cho môi trường ưu tiên IPv6, và udp6 trước cơ sở máy khách chỉ có A là sự gián đoạn do chính bạn gây ra. Ép buộc một họ địa chỉ chỉ để dập tắt một cảnh báo vô hại là phiên bản kinh điển của lỗi này, vì bạn đã thay đổi ai có thể kết nối để đổi lấy một nhật ký yên tĩnh hơn.

Chọn dựa trên các điểm cuối và những máy khách phải đến được chúng. Hướng dẫn OpenVPN 2.6 ghi lại các hình thức vận chuyển, và thông điệp là đầu ra của lựa chọn đó, không phải đầu vào.

Giữ bản ghi hẹp

Ghi lại dòng chính xác với dấu thời gian của nó, cài đặt vận chuyển hiệu quả từ hồ sơ đang chạy, socket như hạt nhân báo cáo, và giai đoạn tiếp theo đã thất bại. Bốn mục đó giải quyết gần như mọi câu hỏi mà thông điệp đặt ra, và không mục nào cần phỏng đoán về các dịch vụ không liên quan. Chúng cũng sống sót qua việc bàn giao, điều mà ảnh chụp màn hình grep không làm được.

Các đề xuất gói đi kèm cảnh báo này không liên quan cho đến khi một lỗi nêu tên một tệp thực thi bị thiếu.

Nếu ifconfig thực sự thiếu, daemon sẽ nói tên nó khi một script gọi nó, và điều đó đáng được điều tra riêng. Dòng AF_INET và một tiện ích bị thiếu là những lỗi khác nhau, và việc cài đặt mọi thứ để xem cảnh báo có thay đổi không chính là con đường biến một máy chủ sạch thành lộn xộn.

Bài viết liên quan