我无法在 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/
。
我真的不知道还能尝试什么。
答案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 不是一个模块,而是内置于内核,所以我要解决的是创建丢失的目录并点头:
$ sudo mkdir /dev/net
$ sudo mknod /dev/net/tun c 10 200
然后openvpn就可以找到并使用tun设备了。
需要注意的是,之后modprobe仍然会返回错误,因为tun不是一个模块。
$ 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