Joe*_*Joe 11 linux debian openvpn
有很多与此错误相关的问题,并且有一个建议的手动修复,效果很好,但没有永久的解决方案。我怎样才能永久解决这个问题?我在 debian wheezy 服务器上遇到这个问题,使用 OpenVPN 客户端连接到 OpenVPN 服务器。
建议的修复如下所示。似乎 /dev/net 不会自动创建,当然会在每次重新启动时消失。
mkdir -p /dev/net
mknod /dev/net/tun c 10 200
chmod 600 /dev/net/tun
Run Code Online (Sandbox Code Playgroud)
Arch/Manjaro 中也发生这种情况。
我设法找出问题,显然内核升级只是移动模块目录,因此尝试从已知位置访问模块是不可用的,当前正在运行的内核仍在运行,但我似乎无法modprobe
(加载)任何尚未加载的模块(例如tun
OpenVPN 连接所需的模块)。
例如,/lib/modules/
升级前该目录有以下目录(我有多个内核,注意5.16系列):
5.15.32-1-MANJARO *5.16.14-1-MANJARO* extramodules-5.15-MANJARO extramodules-5.16-MANJARO
Run Code Online (Sandbox Code Playgroud)
这是升级后的状态:
5.15.32-1-MANJARO *5.16.18-1-MANJARO* extramodules-5.15-MANJARO extramodules-5.16-MANJARO
Run Code Online (Sandbox Code Playgroud)
尝试加载tun
模块会显示以下消息:
modprobe: FATAL: Module tun not found in directory /lib/modules/5.16.14-1-MANJARO
Run Code Online (Sandbox Code Playgroud)
这是完全有道理的,因为这个目录不存在。
那么,在这种情况下我建议的解决方案是什么?重新启动。
debian wheezy 自 2018 年 5 月起就不再支持 ( https://www.debian.org/releases/wheezy/ ),您不应该在 2020 年再使用它进行生产。
现在,解决了这个问题,您可以添加临时解决问题的命令,将这些命令添加到 bash 脚本中,并使用 @reboot 昵称 (man 5 crontab) 添加到根 crontab 中。
因此,在文件系统中的某个位置创建一个 bash 脚本,如下所示:
#!/bin/bash
mkdir -p /dev/net
mknod /dev/net/tun c 10 200
chmod 600 /dev/net/tun
/etc/init.d/openvpn restart
Run Code Online (Sandbox Code Playgroud)
以755权限保存并修改root crontab:
# crontab -e
Run Code Online (Sandbox Code Playgroud)
至少有这个内容
@reboot /path/to/where/you/saved/the/script
Run Code Online (Sandbox Code Playgroud)
重启后应该已经成功启动 openvpn 了。
我认为一个可能的解决方案是配置系统在启动时加载tun
内核模块。为此,请在文件tun
中列出模块名称/etc/modules
:
# echo tun >> /etc/modules
Run Code Online (Sandbox Code Playgroud)
udev
是根据加载的内核模块和连接的硬件设备在文件夹中创建和维护设备节点的系统组件。/dev
我相信通过tun
在启动时加载内核模块,系统将/dev/net/tun
在每次启动时创建设备节点。
我希望它有帮助。
编辑:我有点过时了。在启动Vagrant Cloud 网站上发布的 Debian Wheezy 镜像后,我发现它udev
实际上处理有关现有设备节点的权限、所有权和符号链接。devtmpfs
设备节点实际上是由内核本身创建的,并通过伪文件系统暴露给用户空间。
devtmpfs
文件系统在 initramfs 时挂载。/usr/share/initramfs-tools/init
一旦grub
将 initramfs 提取到内存,该文件就会被执行,它提供将devtmpfs
文件系统安装到 中的代码/dev
,如果不成功,则回退到标准tmpfs
文件系统。
此外,为了使devtmpfs
文件系统可用,Debian Wheezy 内核在出厂时已CONFIG_DEVTMPFS=y
启用。
归档时间: |
|
查看次数: |
95170 次 |
最近记录: |