Jak załadować moduł tun w systemie Linux?

26

Nie mogę załadować tunmodułu do mojego ArchLinux. Próbuję połączyć się z OpenVPN, ale dziennik mówi:

nm-openvpn[6662]: Note: Cannot open TUN/TAP dev /dev/net/tun: No such device (errno=19)

lsmod | grep tun

Nic nie zwraca:

Jeśli uruchomię:

sudo modprobe tun

Zwraca błąd, ale nie ma komunikatu o błędzie, a lsmod nadal nie ma tun. Moduł wydaje się istnieć, ponieważ nie jest tun.ko.gzw /lib/modules/.

Naprawdę nie wiem, co jeszcze spróbować.

rabipelais
źródło

Odpowiedzi:

27

Ta odpowiedź jest prawdopodobnie nieco spóźniona, ale sam wpadłem na problem, dokładnie tak, jak to opisano.

Uruchomienie OpenVPN przyniosłoby:

Note: Cannot open TUN/TAP dev /dev/net/tun: No such file or directory (errno=2)

A bieganie tunctlprzyniosłoby:

Failed to open '/dev/net/tun' : No such file or directory

To polecenie nie miało danych wyjściowych:

lsmod | grep tun

Podczas próby dodania tunmodułu przez:

modprobe tun

modprobe zakończy działanie z kodem błędu awarii (1) i nic się nie zmieni.

Znalazłem alternatywny sposób aktywacji modułu tun poprzez insmod. Najpierw zlokalizuj moduł za pomocą tego polecenia:

find /lib/modules/ -iname 'tun.ko.gz'

Następnie użyj insmod ze zwróconą ścieżką (mam tylko jedno dopasowanie), na przykład:

insmod /lib/modules/3.6.9-1-ARCH/kernel/drivers/net/tun.ko.gz

Dla mnie uruchomienie tej komendy działało, tunctla OpenVPN działało później dobrze.

Alex Szczuczko
źródło
Gdyby to też miało miejsce na moim malinowym pi, insmod rozwiązał to (po ponownym uruchomieniu mogę modprobe jak zwykle)
unhammer
Thamks! insmod polecenie działa! Miałem to z powodu problemu z otwartym połączeniem: Nie udało się otworzyć tun urządzenia: Brak takiego urządzenia
Antonio Saco
Potrzebujesz dostępu do roota ?!
Dr.jacky
3
nie mogę znaleźć / lib / modułów / -iname 'tun.ko.gz' na moim Ubuntu 14.04 vps (
user3479125
1
też nie mogę go znaleźć na CentOS 7.
pobierz
22

Wystąpił podobny problem podczas próby uruchomienia openvpn na OVH Cloud VPS, openvpn narzeka, że ​​nie może znaleźć interfejsu TUN.

modprobe zawsze zwraca moduł nie znaleziony:

$ sudo modprobe tun
FATAL: Module tun not found.

W końcu odkryłem, że tun nie jest modułem, ale wbudowanym jądrem, więc to, co robię, aby rozwiązać, to brakujący katalog i skinienie głową:

$ sudo mkdir /dev/net
$ sudo mknod /dev/net/tun c 10 200

A następnie openvpn może znaleźć i używać urządzenia tun.

Należy zauważyć, że później modprobe nadal zwróci błąd, ponieważ tun nie jest modułem.

$ sudo modprobe tun
FATAL: Module tun not found.
Cyryl
źródło
Dzięki, dostałem ten problem z OpenVPN Access Server na OVH Classic VPS po zrobieniu aktualizacji z Debiana 7 do Debiana 8. Możesz również zrobić sudo chmod 600 /dev/net/tuntak , jak powiedziano w tym artykule: wiki.vpslink.com/TUN/TAP_device_with_OpenVPN_or_Hamachi Po ponownym uruchomieniu openvpn z sudo service openvpnas restart, Mógłbym połączyć się z klientem. Ale kiedy ponownie uruchamiam serwer Linux, / dev / net / tun już nie istnieje. Nie wiem, czy to normalne, ale dodałem polecenia do /etc/rc.local, aby po ponownym uruchomieniu nadal działał.
baptx
Dzięki. Twoje rozwiązanie zadziałało dla mojego portu Armbi Debiana Squeeze działającego na moim telefonie z Androidem. Wystąpił ten sam błąd podczas uruchamiania OpenVPN.
Sourav Ghosh,
tak, tunnie jest modułem.
MrRolling
to działa dla mnie dzięki.
Pouya Samie,
2

W Arch Linux zainstalowanie networkmanager-vpncpakietu rozwiąże problem

MrRolling
źródło
0

Miałem problem, w którym mój /lib/modules/.../modules.aliasnie zawierał linii

alias char-major-10-200 tunode_tunnel

Więc nawet jeśli już to zrobiłeś mknod /dev/net/tuni masz tun.kogdzieś /lib/modules/..., to nie załaduje się, chyba że modules.aliasma odpowiednią inkantację.

sufitowy
źródło