Я не могу загрузить 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
У меня запуск этой команды сработал, и tunctl
OpenVPN после этого заработал нормально.
решение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
нет правильного заклинания.