我正在尝试使用 ZeroTier 创建 VPN 并在 VPS 上使用它。此 VPS 安装了 CentOS 7。我安装了 ZeroTier 并可以加入网络,但它给了我一个 PORT_ERROR,我无法通过托管 IP 对 VPS 进行 ping 操作。
我尝试重新启动 ZeroTier 并检查状态,但出现以下错误:
zerotier-one[1496]: /usr/sbin/zerotier-one: WARNING: failed to drop privileges (kernel may not support required prctl features), running as root
zerotier-one[1496]: ERROR: unable to configure virtual network port: could not open TUN/TAP device: No such file or directory
因此我尝试检查 tun 模块,结果发现它没有加载,不仅如此,它也没有安装(我用 检查过lsmod | grep tun
,然后用modprobe tun
尝试加载它,然后再次检查,但没有任何运行)
我尝试安装net-tools
软件包并自行创建 tun 模块和设备,然后重新启动 VPS,但无法解决这个问题。我也搜索过如何安装模块,但找不到任何解决方案。我在很多地方发现,问题可能在于 VPS 提供商必须为我们启用该模块。
除了我已经尝试过的方法之外,还有什么方法可以自己安装模块吗,还是我必须询问提供商?
先感谢您!
答案1
如果您的服务器使用 OpenVZ,它就不是一个完整的“虚拟服务器”;它的工作方式更像 Docker 或 LXC 容器。重要的是它没有自己的内核– 在同一物理机器上托管的所有“VPS”共享同一个内核。这意味着您无法安装任何模块,您只能获得主机系统已加载的功能。
许多 OpenVZ 主机确实提供“tun”设备支持;有时您需要通过服务器的控制面板(WHM 或其他)来启用该选项,或者通过联系支持人员来启用该选项(尽管这有点不寻常)。
但是如果主机不支持“tun”设备,您除了去其他地方之外别无选择(最好是基于 KVM/Xen 的 VPS - 它们在从哪里加载操作系统内核方面有所不同,但几乎所有都支持使用您自己的内核,并且几乎所有都默认支持 tun)。