我的服务器运行 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)
我需要帮助,非常感谢。
最佳答案
“没有这样的设备”消息意味着不存在具有设备节点的主要和次要编号(在您的情况下为 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驱动包。
关于linux - modprobe : ERROR: could not insert 'tun' : Unknown symbol in module, 或未知参数(参见 dmesg),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42478866/