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


26

Мне не удается загрузить 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/.

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

Ответы:


27

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

Запуск 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 работал нормально.


Если бы это было так же на моем Raspberry Pi, insmod решил это (после перезагрузки я могу модпробовать как обычно)
unhammer

Thamks! команда insmod работает! Было ли это из-за проблемы с открытым соединением: Не удалось открыть устройство Tun: Нет такого устройства
Антонио Сако

Нужен рут доступ ?!
Dr.jacky

3
не могу найти / lib / modules / -iname 'tun.ko.gz' в моем Ubuntu 14.04 vps (
user3479125

1
не могу найти его и в CentOS 7.
snetch

22

Я столкнулся с подобной проблемой при попытке запустить 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.

Спасибо, у меня возникла эта проблема с OpenVPN Access Server на OVH Classic VPS после выполнения dist-обновления с Debian 7 до Debian 8. Вы также можете сделать, sudo chmod 600 /dev/net/tunкак сказано в этой статье: wiki.vpslink.com/TUN/TAP_device_with_OpenVPN_or_Hamachi После перезапуска openvpn с sudo service openvpnas restartЯ мог бы связаться с клиентом. Но когда я перезагружаю сервер Linux, / dev / net / tun больше не существует. Я не знаю, нормально ли это, но я добавил команды в /etc/rc.local, чтобы он все еще работал после перезагрузки.
baptx

Спасибо. Ваше решение сработало для моего порта armbi Debian Squeeze, работающего на моем мобильном телефоне Android. Я получил ту же ошибку при запуске OpenVPN.
Сурав Гош

да, tunэто не модуль.
MrRolling

это работает для меня, спасибо.
Pouya Samie


0

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

alias char-major-10-200 tunode_tunnel

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.