Linux에서 tun 모듈을 로드하는 방법은 무엇입니까?

Linux에서 tun 모듈을 로드하는 방법은 무엇입니까?

tun내 ArchLinux 상자에 모듈을 로드할 수 없습니다 . 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

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

관련 정보