Linux で tun モジュールをロードするにはどうすればいいですか?

Linux で tun モジュールをロードするにはどうすればいいですか?

tunArchLinux ボックスにモジュールをロードできません。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 を使用します (一致するものは 1 つだけです)。次に例を示します。

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

私の場合、そのコマンドを実行するとうまくいき、tunctlその後 OpenVPN は正常に動作しました。

答え2

OVH Cloud VPS で openvpn を実行しようとしたときに、同様の問題が発生しました。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 デバイスを見つけて使用できるようになります。

注意すべき点は、tun はモジュールではないため、modprobe は引き続きエラーを返すということです。

$ 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

関連情報