24

Мне не удается загрузить модуль tun в моем окне ArchLinux. Я пытаюсь подключиться к 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/ .

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

4 ответа4

26

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

Запуск 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

Для меня запуск этой команды сработал, а tunctl и OpenVPN сработали нормально.

19

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

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

$ sudo modprobe tun
FATAL: Module tun not found.

Наконец, я обнаружил, что tun - это не модуль, а встроенное ядро, поэтому я решил создать отсутствующие dir и 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.
1

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

0

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

alias char-major-10-200 tunode_tunnel

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .