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/
があるため、モジュールが存在するようです。
私は他に何を試すべきか本当に知りません。
この答えはおそらく少し遅れますが、私自身が説明したとおりに問題に遭遇しました。
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はその後正常に機能しました。
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.
Arch Linuxでnetworkmanager-vpnc
パッケージをインストールすると問題が解決します
/lib/modules/.../modules.alias
に行が含まれていないという問題がありました
alias char-major-10-200 tunode_tunnel
そのため、mknod /dev/net/tun
を実行し、tun.ko
が/lib/modules/...
のどこかにある場合でも、modules.alias
に適切な呪文がなければ、読み込まれません。