Назад | Перейти на главную страницу

OpenVPN - ОШИБКА: невозможно открыть TUN / TAP dev / dev / net / tun: нет такого файла или каталога (errno = 2)

Есть много вопросов, связанных с этой ошибкой, и предлагается ручное исправление, которое работает хорошо, но постоянного решения нет. Как я могу решить эту проблему навсегда? У меня эта проблема на сервере debian wheezy, использующем клиент OpenVPN для подключения к серверу OpenVPN.

Предлагаемое исправление приведено ниже. Похоже, / dev / net не создается автоматически и, конечно, исчезает при каждой перезагрузке.

mkdir -p /dev/net
mknod /dev/net/tun c 10 200
chmod 600 /dev/net/tun

Думаю, что возможное решение - настроить систему на загрузку tun модуль ядра во время запуска. Для этого перечислите tun имя модуля в /etc/modules файл:

# echo tun >> /etc/modules

udev компонент системы, который создает и обслуживает узлы устройств в /dev папка в соответствии с загруженными модулями ядра и подключенными аппаратными устройствами. Я считаю, что загружая tun модуль ядра во время загрузки, система создаст /dev/net/tun узел устройства при каждом запуске.

Я надеюсь, что это помогает.


РЕДАКТИРОВАТЬ: Я немного устарел. После запуска образа Debian Wheezy, опубликованного в Веб-сайт Vagrant Cloud, Я понял, что udev фактически обрабатывает разрешения, права собственности и символические ссылки в отношении уже существующих узлов устройства. Узлы устройств фактически создаются самим ядром и доступны в пользовательском пространстве через devtmpfs псевдо-файловая система.

devtmpfs файловая система монтируется во время initramfs. Файл /usr/share/initramfs-tools/init, который выполняется один раз grub извлекает initramfs в память, представляет код, который монтирует devtmpfs файловую систему в /dev, возвращаясь к стандарту tmpfs файловая система в случае неудачи.

Кроме того, чтобы иметь devtmpfs файловая система доступна, ядро ​​Debian Wheezy поставляется с CONFIG_DEVTMPFS=y включен.

debian wheezy не поддерживается с мая 2018 г. (https://www.debian.org/releases/wheezy/), вы не должны больше использовать его в 2020 году для производства.

Теперь, когда это решено, вы можете добавить команды, которые временно исправят вашу проблему, добавив эти команды в сценарий bash, который вы добавляете в свой корневой crontab с ником @reboot (man 5 crontab).

Итак, создайте сценарий bash где-нибудь в вашей файловой системе примерно так:

#!/bin/bash

mkdir -p /dev/net
mknod /dev/net/tun c 10 200
chmod 600 /dev/net/tun

/etc/init.d/openvpn restart

Сохраните его с разрешениями 755 и измените корневой crontab:

# crontab -e

с этим содержанием хотя бы

@reboot /path/to/where/you/saved/the/script

И после перезагрузки он должен был успешно запустить openvpn.