WireGuard gagal mencipta antara mukanya, jadi tiada peranti untuk dikonfigurasikan, tiada kunci untuk ditukar dan tiada jabat tangan untuk dinyahpepijat. Kegagalan kekal sepenuhnya pada mesin setempat, dan teks ralat memberitahu bahagian mana timbunan setempat yang menolak. Membacanya dengan betul lebih pantas daripada memasang semula konfigurasi rakan sebaya. Lapisan boleh dipisahkan, dan mesej menamakan lapisan yang menolak.

Ralat berlaku sebelum mana-mana rakan sebaya bercakap

Mencipta antara muka ialah satu permintaan netlink kepada kernel untuk peranti jenis wireguard. Kernel sama ada mempunyai pemacu yang memahami jenis itu atau tidak, dan jawapannya kembali serta-merta. Tiada paket meninggalkan mesin semasa langkah ini, sebab itu alamat titik akhir dan kunci pelayan tidak boleh menjadi punca.

Urutan itu penting untuk diagnosis. Jika arahan itu tidak pernah mencipta peranti, masalahnya tidak mungkin kunci awam yang salah atau port UDP yang disekat. Betulkan dahulu laluan penciptaan setempat dan barulah melihat ke luar.

Pelaksanaan mana yang sepatutnya memiliki peranti

Dua pelaksanaan boleh menjawab permintaan itu. Modul di dalam kernel mendaftarkan jenis peranti wireguard, dan pelaksanaan di ruang pengguna seperti wireguard-go menyediakan antara muka yang sama melalui mekanisme berbeza. Jika modul tiada, kernel menolak permintaan itu dengan ralat peranti tidak disokong, dan penyelesaiannya ialah memuatkan modul atau mengarahkan alat kepada pelaksanaan di ruang pengguna.

Periksa apa yang benar-benar ada sebelum memilih antara keduanya. Arahan pertama menunjukkan sama ada modul dimuatkan dan yang kedua bertanya kepada kernel secara langsung:

lsmod | grep wireguard
ip link add wgtest0 type wireguard

Arahan kedua ialah pembiakan terkecil yang mungkin: ia meminta peranti dan tidak lebih. Jika ia gagal dengan mesej jenis tidak disokong, bahagian yang hilang ialah pelaksanaan, bukan fail konfigurasi anda.

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

Keistimewaan dan sempadan kontena

Mencipta dan mengkonfigurasi peranti rangkaian memerlukan keistimewaan, sama ada sebagai root atau dengan keupayaan mentadbir rangkaian. Sesi pengguna biasa tidak dapat melakukannya, dan sekatan itu ialah reka bentuknya, bukan halangan yang perlu dielakkan dengan menjalankan pemasang yang belum anda semak.

Di dalam kontena sempadan itu berganda. Kontena memerlukan akses kepada peranti terowong dan keupayaan mengkonfigurasinya, dan bendera yang memberikannya sama dengan yang digunakan kontena VPN pada Linux. Tetamu terhad yang biasanya boleh melayari web masih tidak dapat mencipta antara muka, kerana melayari tidak memerlukan keupayaan itu. Berikan keupayaan itu kepada perkhidmatan yang memerlukannya, bukan kepada setiap sesi pada hos.

Selesaikan konflik nama, kemudian cuba lagi

Antara muka yang sudah wujud bukan secara automatik sisa. Pengurus lain mungkin memiliki nama itu dan sedang menggunakannya sekarang, jadi periksa dahulu sebelum memadam apa-apa:

ip link show wg0
sudo wg show wg0

Jika pemiliknya ialah perkhidmatan aktif, konfigurasikan perkhidmatan itu daripada mencipta peranti kedua. Jika ia benar-benar lapuk, keluarkannya melalui alat yang menciptanya, kemudian naikkan antara muka dengan klien atau unit yang didokumenkan supaya konfigurasi dan peranti kekal sejajar.

Setelah penciptaan berjaya, kegagalan berikutnya milik peringkat yang lebih lewat, dan unit yang melaporkan kegagalan selepas peranti wujud ialah masalah berbeza daripada peranti yang tidak pernah dicipta. Pisahkan kedua-duanya sebelum mengubah kebenaran lagi.

Artikel berkaitan