我正在尝试在 CentOS VPS (OpenVZ) 上设置 OpenVPN。但我遇到的问题与启用 TUN/TAP 接口有关。当我购买 VPS 服务时,我留下了一条注释,要求启用 TUN/TAP 设备。但当我去验证和使用它时,它似乎没有启用。我联系了我的提供商,他们告诉我它在设置 VPS 时已启用。但是,我觉得这很可能是操作不正确。从那时起,我已经开具了服务单,但问题仍然存在。
我已向我的提供商提供了此网页顶部的步骤:http://vpsnoc.com/blog/how-to-setup-a-vpn-server-on-a-centos-vps-instantly/
他们告诉我说他们已经按照我的要求做了,但是 TUN/TAP 设备仍然没有正确设置。
我使用此命令来验证 TUN/TAP 是否已启用:cat /dev/net/tun
有人告诉我,如果它正确启用,我应该看到“文件描述符处于错误状态”。
但是,我总是看到“没有这样的设备”。
我或我的 VPS 提供商遗漏了什么或者做错了什么?
答案1
嗯,在 OpenVZ 的情况下,客户机与主机系统的联系比使用更传统的虚拟化时更紧密。它们实际上运行在同一个内核上。只要您保持在用户空间中,您可能不会注意到这一点,但是一旦您想要在较低级别与系统进行交互(例如创建设备),客户机就会依赖于主机(即硬件节点)上的设置。
以下是通过 TUN/TAP 设备建立 VPN页面中的OpenVZ 维基。
OpenVZ 通过内核 TUN/TAP 模块和设备支持容器内的 VPN。要允许容器 #101 使用 TUN/TAP 设备,应执行以下操作:
确保tun模块已经在硬件节点上加载:
lsmod | grep tun
如果不存在,请使用以下命令加载 tun 模块:
modprobe tun
为了确保每次重启时 tun 模块都会自动加载,您还可以将其添加或放入 /etc/modules.conf(在 RHEL 上请参阅 /etc/sysconfig/modules/ 目录)。
通过在主机节点上运行以下命令允许您的容器使用 tun/tap 设备:
vzctl set 101 --devnodes net/tun:rw --save
是的,您需要与您的 VPS 提供商联系。