Как загрузить модуль tun в Linux?

Как загрузить модуль tun в Linux?

Я не могу загрузить tunмодуль в свой ArchLinux box. Я пытаюсь подключиться с OpenVPN, но в журнале написано:

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

lsmod | grep tun

Ничего не возвращает:

Если я запущу:

sudo modprobe tun

Он возвращает ошибку, но нет сообщения об ошибке, и lsmod по-прежнему не имеет tun. Модуль, похоже, существует, так как есть tun.ko.gzв /lib/modules/.

Я действительно не знаю, что еще попробовать.

решение1

Возможно, мой ответ немного запоздал, но я сам столкнулся с проблемой, именно такой, как описано.

Запуск OpenVPN приведет к следующему:

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

А запуск tunctlдаст:

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

И эта команда не дала никакого результата:

lsmod | grep tun

При попытке добавить tunмодуль через:

modprobe tun

modprobeзавершится с кодом ошибки (1) и ничего не изменится.

Я нашел альтернативный способ активации модуля tun через insmod. Сначала найдите модуль с помощью этой команды:

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

Затем используйте insmod с возвращенным путем (я получил только одно совпадение), например:

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

У меня запуск этой команды сработал, и tunctlOpenVPN после этого заработал нормально.

решение2

Я столкнулся с похожей проблемой при попытке запустить OpenVPN на OVH Cloud VPS. OpenVPN жалуется, что не может найти интерфейс TUN.

modprobe всегда будет возвращать сообщение «модуль не найден»:

$ sudo modprobe tun
FATAL: Module tun not found.

Наконец, я обнаружил, что tun — это не модуль, а встроенный компонент ядра, поэтому для решения этой проблемы я создал отсутствующий каталог и nod:

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

И тогда openvpn сможет найти и использовать устройство tun.

Следует отметить, что после этого modprobe все равно вернет ошибку, поскольку tun не является модулем.

$ sudo modprobe tun
FATAL: Module tun not found.

решение3

В Arch Linux установка пакета networkmanager-vpncили NetworkManager-vpncрешит проблему

решение4

У меня была проблема, когда мой /lib/modules/.../modules.aliasне содержал строку

alias char-major-10-200 tunode_tunnel

Так что даже если вы сделали mknod /dev/net/tunи tun.koгде-то есть /lib/modules/..., он не загрузится, если modules.aliasнет правильного заклинания.

Связанный контент