WireGuard arayüzünü oluşturamıyor: çekirdek mi izin mi?
Arayüz oluşturma, herhangi bir eş el sıkışma göndermeden önce başarısız oluyor. Eksik bir modülü izin sınırından veya mevcut arayüz sahibinden ayırmak için hatayı okuyun.
WireGuard arayüzünü oluşturamıyor, bu yüzden yapılandırılacak bir aygıt, değiştirilecek bir anahtar ve hata ayıklanacak bir el sıkışma yok. Hata tamamen yerel makinede kalıyor ve hata metni yerel yığının hangi bölümünün reddettiğini söylüyor. Doğru okumak, eşin yapılandırmasını yeniden kurmaktan daha hızlı. Katmanlar ayrılabilir ve mesaj reddeden katmanı adlandırıyor.
Hata, herhangi bir eş konuşmadan önce ortaya çıkar
Arayüz oluşturmak, çekirdeğe wireguard türünde bir aygıt için gönderilen tek bir netlink isteğidir. Çekirdeğin bu türü anlayan bir sürücüsü ya vardır ya yoktur ve yanıt hemen döner. Bu adımda hiçbir paket makineden çıkmaz, bu yüzden uç nokta adresleri ve sunucu anahtarları neden olamaz.
Bu sıra tanı için önemlidir. Komut hiç aygıt oluşturmadıysa sorun yanlış bir genel anahtar veya engellenmiş bir UDP bağlantı noktası olamaz. Önce yerel oluşturma yolunu düzeltin, ancak ondan sonra dışarı bakın.
Aygıta hangi uygulama sahip olmalı
Bu isteğe iki uygulama yanıt verebilir. Çekirdeğin içindeki modül wireguard aygıt türünü kaydeder, wireguard-go gibi kullanıcı alanı uygulaması ise aynı arayüzü başka bir mekanizmayla sunar. Modül yoksa çekirdek isteği desteklenmeyen aygıt hatasıyla reddeder ve çözüm ya modülü yüklemek ya da araçları kullanıcı alanı uygulamasına yöneltmektir.
İkisi arasında seçim yapmadan önce gerçekte ne olduğunu denetleyin. İlk komut modülün yüklü olup olmadığını gösterir, ikincisi çekirdeğe doğrudan sorar:
lsmod | grep wireguard
ip link add wgtest0 type wireguard
İkinci komut mümkün olan en küçük yeniden üretimdir: bir aygıt ister ve başka hiçbir şey. Desteklenmeyen tür iletisiyle başarısız olursa eksik parça uygulamadır, sizin yapılandırma dosyanız değil.
| Error text | What refused | Next step |
|---|---|---|
| Unknown device type or operation not supported | The kernel has no wireguard driver | Load the module or use the userspace implementation |
| Operation not permitted | Missing privilege | Use the service context or grant the capability |
| File exists | The name is already in use | Inspect the owner before touching it |
| No such device in a container | No tunnel device or capability | Add the device and NET_ADMIN to the container |
Yetkiler ve kapsayıcı sınırları
Bir ağ aygıtı oluşturmak ve yapılandırmak yetki gerektirir: ya root olarak ya da ağı yönetme yeteneğiyle. Normal bir kullanıcı oturumu bunu yapamaz ve bu kısıtlama tasarımın kendisidir, incelemediğiniz bir kurulum programını çalıştırarak aşılacak bir engel değildir.
Bir kapsayıcının içinde sınır ikiye katlanır. Kapsayıcının tünel aygıtına erişime ve onu yapılandırma yeteneğine ihtiyacı vardır ve bunları veren bayraklar Linux'taki bir VPN kapsayıcısının kullandıklarıyla aynıdır. Normalde web'de gezinebilen kısıtlı bir konuk yine de arayüz oluşturamaz, çünkü gezinmek böyle bir yetenek gerektirmez. Yeteneği ona ihtiyaç duyan hizmete verin, ana makinedeki her oturuma değil.
Ad çakışmasını çözün, sonra yeniden deneyin
Zaten var olan bir arayüz otomatik olarak kalıntı değildir. Başka bir yönetici adın sahibi olabilir ve şu anda onu kullanıyor olabilir, bu yüzden herhangi bir şeyi silmeden önce inceleyin:
ip link show wg0
sudo wg show wg0
Sahibi etkin bir hizmetse ikinci bir aygıt oluşturmak yerine o hizmeti yapılandırın. Gerçekten eskiyse, onu oluşturan araçla kaldırın ve ardından yapılandırma ile aygıtın uyumlu kalması için arayüzü belgelenmiş istemci veya birimle ayağa kaldırın.
Oluşturma başarılı olduğunda, sonraki başarısızlık daha ileri bir aşamaya aittir, ve aygıt var olduktan sonra başarısızlık bildiren bir birim hiç oluşturulmamış bir aygıttan farklı bir sorundur. Yetkileri yeniden değiştirmeden önce ikisini ayırın.