OpenVPN na VPS-u: nema /dev/net/tun uređaja za otvaranje
Konfiguracija je obično u redu: gost ne vidi tun uređaj. Razlikujte VM od kontejnera sa deljenim jezgrom, pa popravite sloj koji poseduje jezgro.
Prvo pokretanje pada sa porukom o /dev/net/tun ili TUN/TAP uređaju koji se ne može otvoriti. Sertifikati još nisu pročitani, pa ništa u profilu nije krivo. Demon traži od jezgra objekat koji ovaj gost nema.
Taj objekat je znakovni uređaj koji obezbeđuje tun modul. Da li možete da ga napravite zavisi od toga kome pripada jezgro.
Šta demon traži od jezgra
OpenVPN otvara /dev/net/tun i traži od drajvera interfejs. Drajver je tun modul, a čvor uređaja je ručka kojom korisnički prostor do njega dolazi. Ako modul nije učitan, čvor može da nedostaje ili otvaranje može da ne uspe. Nijedno stanje se ne popravlja izmenom server.conf.
Čitajte ovu grešku prvo kao pitanje o platformi. Greška u konfiguraciji se pojavljuje pošto se uređaj otvori, a ne pre toga.
VM ili gost sa deljenim jezgrom
Na KVM-u, Xen-u ili drugoj punoj virtuelnoj mašini vi kontrolišete jezgro. Možete da učitate module i napravite čvor. Na OpenVZ-u, Virtuozzo-u ili kontejneru u LXC stilu gost deli jezgro hosta, pa root unutra ne može da učita modul koji host nije učitao.
Ista greška zato ima dva vrlo različita vlasnika. U prvom slučaju možete je popraviti iznutra, iz instance. U drugom tražite od hosta ili provajdera da nešto izloži.
Pokrenite ls -l /dev/net/tun, lsmod | grep tun i ip -brief link show pre nego što odlučite u kom ste slučaju.
Na VM-u učitajte modul pri podizanju
Na virtuelnoj mašini modprobe tun obično napravi čvor uređaja. Proverite da se pojavio, pa učitavanje učinite trajnim kroz konfiguraciju modula distribucije, umesto da se oslonite na komandu otkucanu jednom. Čvor koji nestane posle restarta postaje isti tiket sledećeg meseca.
Proverite i da li jezgro koje ste podigli uopšte ima taj modul. Skraćeno jezgro dobavljača može da ga nema.
Ako čvor postoji ali otvaranje i dalje ne uspeva, sledeći sumnjivci su dozvole i major/minor brojevi uređaja. To su lokalne popravke, ne zahtevi provajderu.
U kontejneru uređaj pripada hostu
U kontejneru su uređaj i sposobnost dva odvojena zahteva. Runtime mora da propusti /dev/net/tun, a kontejneru treba mrežna sposobnost da bi napravio interfejs. Rootless runtime koji ne daje ni jedno ni drugo nastaviće da proizvodi istu grešku otvaranja, kako god profil bio napisan. Mnogi OpenVZ hostovi nude TUN/TAP prekidač u korisničkom panelu, a njegovo uključivanje uz restart često je celo rešenje.
Pitajte provajdera dva precizna pitanja: da li je tun modul učitan na hostu i da li je uređaj dostupan unutar ove instance? Nejasna prijava dobija nejasan odgovor.
Zašto ponovno pravljenje modula retko pomaže
Pravljenje modula unutar gosta retko pomaže. Kompilacija zahteva konfiguraciju tačno onog jezgra koje radi, a /proc/config.gz je opcion i često ga nema na minimalnim slikama. Čak i modul koji radi ne može da se ubaci u jezgro koje kontejner ne poseduje.
Kada se uređaj pojavi, restartujte servis i potvrdite interfejs pre nego što testirate saobraćaj. Viđenje tun0 pokazuje da je demon otvorio uređaj. To još ništa ne govori o prosleđivanju, firewall pravilima ili rutama koje klijenti dobijaju.
To su odvojena pitanja sa odvojenim dokazima. Nedostajući uređaj je neuspeh preduslova; tunel koji postoji ali ništa ne prenosi je neuspeh politike.