Answers:
这个答案可能有点晚了,但我本人完全按照描述遇到了这个问题。
运行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可以正常工作。
尝试在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.
sudo chmod 600 /dev/net/tun
这样的文章中说:wiki.vpslink.com/TUN/TAP_device_with_OpenVPN_or_Hamachi与重启后的OpenVPN sudo service openvpnas restart
,我可以与客户联系。但是当我重新启动Linux服务器时,/ dev / net / tun不再存在。我不知道这是否正常,但是我在/etc/rc.local中添加了命令,因此重启后仍然可以使用。
tun
不是模块。