web-dev-qa-db-ja.com

Linuxでtunモジュールをロードする方法は?

ArchLinuxボックスにtunモジュールをロードできません。 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/があるため、モジュールが存在するようです。

私は他に何を試すべきか本当に知りません。

26
rabipelais

この答えはおそらく少し遅れますが、私自身が説明したとおりに問題に遭遇しました。

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)で終了し、何も変更されませんでした。

insmodを使用してtunモジュールをアクティブにする別の方法を見つけました。最初にこのコマンドでモジュールを見つけます:

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はその後正常に機能しました。

27
Alex Szczuczko

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デバイスを見つけて使用できます。

Tunはモジュールではないため、後でmodprobeがエラーを返すことに注意してください。

$ Sudo modprobe tun
FATAL: Module tun not found.
22
Cyril

Arch Linuxでnetworkmanager-vpncパッケージをインストールすると問題が解決します

2
MrRolling

/lib/modules/.../modules.aliasに行が含まれていないという問題がありました

alias char-major-10-200 tunode_tunnel

そのため、mknod /dev/net/tunを実行し、tun.ko/lib/modules/...のどこかにある場合でも、modules.aliasに適切な呪文がなければ、読み込まれません。

0
ceilingcat