VPS üzerinde OpenVPN: açılacak /dev/net/tun aygıtı yok
Yapılandırma genellikle yerindedir: konuk tun aygıtını görmüyor. VM ile çekirdeği paylaşan kapsayıcıyı ayırt edin, sonra çekirdeğe sahip katmanı düzeltin.
İlk başlatma /dev/net/tun veya açılamayan bir TUN/TAP aygıtı hakkında bir mesajla başarısız olur. Sertifikalar henüz okunmadı, bu yüzden profilde suçlanacak bir şey yok. Arka plan programı çekirdekten bu konuğun sahip olmadığı bir nesneyi istiyor.
Bu nesne, tun modülünün sağladığı bir karakter aygıtıdır. Onu oluşturup oluşturamayacağınız çekirdeğin kime ait olduğuna bağlıdır.
Arka plan programı çekirdekten ne istiyor
OpenVPN /dev/net/tun aygıtını açar ve sürücüden bir arayüz ister. Sürücü tun modülüdür ve aygıt düğümü, kullanıcı alanının ona ulaşmak için kullandığı tanıtıcıdır. Modül yüklü değilse düğüm eksik olabilir veya açma başarısız olabilir. İki durum da server.conf düzenlenerek düzeltilmez.
Bu hatayı önce platformla ilgili bir soru olarak okuyun. Yapılandırma hatası aygıt açıldıktan sonra görünür, öncesinde değil.
VM mi, çekirdeği paylaşan konuk mu
KVM, Xen veya başka bir tam sanal makinede çekirdeği siz kontrol edersiniz. Modül yükleyip düğümü oluşturabilirsiniz. OpenVZ, Virtuozzo veya LXC tarzı bir kapsayıcıda konuk ana makinenin çekirdeğini paylaşır, bu yüzden içindeki root ana makinenin yüklemediği bir modülü yükleyemez.
Aynı hatanın bu yüzden çok farklı iki sahibi vardır. İlk durumda bunu örneğin içinden düzeltebilirsiniz. İkincisinde ana makineden veya sağlayıcıdan bir şeyi açığa çıkarmasını istiyorsunuz.
Hangi durumda olduğunuza karar vermeden önce ls -l /dev/net/tun, lsmod | grep tun ve ip -brief link show komutlarını çalıştırın.
VM'de modülü açılışta yükleyin
Sanal makinede modprobe tun genellikle aygıt düğümünü oluşturur. Oluştuğunu doğrulayın, sonra bir kez yazılmış bir komuta güvenmek yerine dağıtımın modül yapılandırması üzerinden yüklemeyi kalıcı hale getirin. Yeniden başlatmadan sonra kaybolan bir düğüm gelecek ay aynı talep olur.
Önyüklediğiniz çekirdekte bu modülün hiç bulunup bulunmadığını da denetleyin. Kırpılmış bir üretici çekirdeği bunu içermeyebilir.
Düğüm varsa ama açma hâlâ başarısızsa, sıradaki şüpheliler izinler ve aygıtın major/minor numaralarıdır. Bunlar yerel düzeltmelerdir, sağlayıcıya talepler değil.
Kapsayıcıda aygıt ana makineye aittir
Bir kapsayıcıda aygıt ve yetenek iki ayrı gereksinimdir. Çalışma zamanı /dev/net/tun aygıtını geçirmelidir ve kapsayıcının bir arayüz oluşturmak için ağ yeteneğine ihtiyacı vardır. İkisini de vermeyen rootless bir çalışma zamanı, profil nasıl yazılırsa yazılsın aynı açma hatasını üretmeye devam eder. Birçok OpenVZ ana makinesi müşteri panelinde bir TUN/TAP anahtarı sunar ve onu açıp yeniden başlatmak çoğu zaman çözümün tamamıdır.
Sağlayıcıya iki kesin soru sorun: tun modülü ana makinede yüklü mü ve aygıt bu örneğin içinde erişilebilir mi? Belirsiz bir talep belirsiz bir yanıt alır.
Modülü yeniden derlemek neden nadiren yardımcı olur
Konuğun içinde modül derlemek nadiren yardımcı olur. Derleme, tam olarak çalışan çekirdeğin yapılandırmasını gerektirir ve /proc/config.gz isteğe bağlıdır ve minimal imajlarda çoğunlukla yoktur. Çalışan bir modül bile kapsayıcının sahip olmadığı bir çekirdeğe eklenemez.
Aygıt göründükten sonra hizmeti yeniden başlatın ve trafiği test etmeden önce arayüzü doğrulayın. tun0 görmek, arka plan programının aygıtı açtığını gösterir. Yönlendirme, güvenlik duvarı kuralları veya istemcilerin aldığı yollar hakkında henüz hiçbir şey söylemez.
Bunlar ayrı kanıtları olan ayrı sorulardır. Eksik bir aygıt önkoşul hatasıdır; var olup hiçbir şey taşımayan bir tünel ise politika hatasıdır.