我的服务器运行openvpn客户端,它工作正常。 但是在服务器重启后,我无法启动openvpn客户端。
openvpn日志说:
ERROR: Cannot open TUN/TAP dev /dev/net/tun: No such device (errno=19)
但
lyq@server:~$ ls /dev/net/tun -l
crw-rw-rw- 1 root root 10, 200 Feb 27 13:44 /dev/net/tun
经过一番搜索,我找到了这个命令:
lyq@server:~$ sudo modprobe tun
modprobe: ERROR: could not insert 'tun': Unknown symbol in module, or unknown parameter (see dmesg)
和' dmesg'表示:
[ 991.073261] tun: Unknown symbol __sk_attach_filter (err 0)
[ 991.073347] tun: Unknown symbol __sk_detach_filter (err 0)
我需要帮助,非常感谢你。
答案 0 :(得分:4)
“无此类设备”消息表示没有设备驱动程序包含设备节点的主要编号和次编号(在您的情况下为10和100)。原因很可能是“tun”驱动程序无法加载,原因似乎是你正在运行的内核中不存在__sk_attach_filter和__sk_detach_filter符号。
由于您说这是在重新启动后发生的,因此很可能在重新启动之前的某个时间内升级了内核映像,这是系统第一次使用新内核启动。缺少符号错误往往是由于模块版本与内核版本不匹配。
您是自己构建内核还是从som软件包管理器安装内核?如果您自己安装它,请再次尝试并确保运行“make modules_install”(有关内核构建目标的信息,请参阅例如https://unix.stackexchange.com/questions/20864/what-happens-in-each-step-of-the-linux-kernel-building-process)。如果您是通过软件包管理器安装的,请检查是否有某些内核模块软件包或者需要升级的tun驱动程序包。
答案 1 :(得分:1)
更新系统后我遇到了同样的问题。重新启动修复它,因此其中一个更新必须是内核更新。
确保您的模块和内核匹配。
答案 2 :(得分:0)
确保您的引导加载程序正在加载您认为正在加载的内核。
在我的情况下,系统中有一个被淘汰的RAID1成员(sdb1),并且引导加载程序正在从该错误的sdb1加载(错误的,旧的?)内核,而不是来自健康的RAID1成员sda1或sdc1。 / p>