WireGuard không tạo được giao diện của nó, nên không có thiết bị để cấu hình, không có khóa để trao đổi và không có bắt tay để gỡ lỗi. Lỗi nằm hoàn toàn trên máy cục bộ, và văn bản lỗi cho biết phần nào của ngăn xếp cục bộ đã từ chối. Đọc đúng nó nhanh hơn cài lại cấu hình của peer. Các tầng có thể tách rời, và thông báo gọi tên tầng đã từ chối.

Lỗi xảy ra trước khi bất kỳ peer nào lên tiếng

Tạo giao diện là một yêu cầu netlink duy nhất gửi tới nhân để xin một thiết bị loại wireguard. Nhân có hoặc không có trình điều khiển hiểu loại đó, và câu trả lời trở về ngay lập tức. Không gói tin nào rời máy trong bước này, vì vậy địa chỉ điểm cuối và khóa máy chủ không thể là nguyên nhân.

Thứ tự đó quan trọng cho việc chẩn đoán. Nếu lệnh chưa bao giờ tạo thiết bị, vấn đề không thể là khóa công khai sai hay cổng UDP bị chặn. Hãy sửa đường tạo cục bộ trước và chỉ sau đó mới nhìn ra ngoài.

Triển khai nào nên sở hữu thiết bị

Hai triển khai có thể trả lời yêu cầu đó. Mô-đun bên trong nhân đăng ký loại thiết bị wireguard, còn một triển khai trong không gian người dùng như wireguard-go cung cấp cùng giao diện đó bằng cơ chế khác. Nếu mô-đun vắng mặt, nhân từ chối yêu cầu với lỗi thiết bị không được hỗ trợ, và cách khắc phục là nạp mô-đun hoặc hướng công cụ tới triển khai trong không gian người dùng.

Hãy kiểm tra thực tế có gì trước khi chọn giữa hai cách. Lệnh đầu tiên cho biết mô-đun đã nạp hay chưa, lệnh thứ hai hỏi thẳng nhân:

lsmod | grep wireguard
ip link add wgtest0 type wireguard

Lệnh thứ hai là bản tái hiện nhỏ nhất có thể: nó yêu cầu một thiết bị và không gì khác. Nếu nó thất bại với thông báo loại không được hỗ trợ, phần còn thiếu là triển khai chứ không phải tệp cấu hình của bạn.

Error textWhat refusedNext step
Unknown device type or operation not supportedThe kernel has no wireguard driverLoad the module or use the userspace implementation
Operation not permittedMissing privilegeUse the service context or grant the capability
File existsThe name is already in useInspect the owner before touching it
No such device in a containerNo tunnel device or capabilityAdd the device and NET_ADMIN to the container

Quyền và ranh giới của vùng chứa

Tạo và cấu hình một thiết bị mạng đòi hỏi quyền, hoặc là root hoặc có khả năng quản trị mạng. Một phiên người dùng thông thường không làm được, và hạn chế đó chính là thiết kế chứ không phải chướng ngại phải lách bằng cách chạy một trình cài đặt bạn chưa xem xét.

Bên trong vùng chứa, ranh giới nhân đôi. Vùng chứa cần quyền truy cập thiết bị đường hầm và khả năng cấu hình nó, và các cờ cấp điều đó giống với cờ mà một vùng chứa VPN trên Linux dùng. Một khách bị hạn chế vẫn duyệt web bình thường vẫn không thể tạo giao diện, vì duyệt web không cần khả năng đó. Hãy trao khả năng cho dịch vụ cần nó chứ không phải cho mọi phiên trên máy chủ.

Giải quyết xung đột tên, rồi thử lại

Một giao diện đã tồn tại không tự động là phần thừa. Một trình quản lý khác có thể sở hữu cái tên và đang dùng nó ngay lúc này, nên hãy kiểm tra trước khi xóa bất cứ thứ gì:

ip link show wg0
sudo wg show wg0

Nếu chủ sở hữu là một dịch vụ đang hoạt động, hãy cấu hình dịch vụ đó thay vì tạo thiết bị thứ hai. Nếu nó thực sự cũ, hãy xóa nó qua công cụ đã tạo ra nó, rồi đưa giao diện lên bằng ứng dụng khách hoặc đơn vị đã được ghi lại để cấu hình và thiết bị khớp nhau.

Khi việc tạo thành công, lỗi tiếp theo thuộc về một giai đoạn sau, và một đơn vị báo lỗi sau khi thiết bị tồn tại là vấn đề khác với thiết bị chưa bao giờ được tạo. Hãy tách hai trường hợp trước khi đổi quyền lần nữa.

Bài viết liên quan