在Proxmox/LXC容器中配置Debian 9 OpenVPN的实用技巧
当我尝试将OpenVPN设置迁移到新Proxmox服务器的容器时,遇到了多个问题。通过互联网搜索提供的解决方案要么无效,要么已经过时。因此,我决定将所需的所有内容整合到一篇博客文章中,指导如何在Proxmox/LXC容器内的Debian 9上设置OpenVPN。
将TUN设备引入非特权容器
由于确实应该在非特权模式下运行容器,使用以下典型解决方案无法工作:
|
|
在特权模式下运行容器是个糟糕的主意,但幸运的是,有一个原生LXC解决方案。
停止容器:
|
|
将以下行添加到/etc/pve/lxc/<containerid>.conf:
|
|
启动容器:
|
|
现在OpenVPN将能够创建tun设备。可以使用以下命令进行测试运行:
|
|
将OpenVPN配置文件添加到"自动启动"
您需要将OpenVPN文件放入/etc/openvpn/目录,并使用.conf扩展名。添加新文件后,需要运行:
|
|
然后重新启动OpenVPN服务。
现有配置文件的更改不需要systemd重新加载。
在非特权容器中让systemd启动OpenVPN
现在OpenVPN可以手动运行,但无法通过"init"脚本运行。在日志文件中会看到以下错误消息:
|
|
要解决此问题,请编辑/lib/systemd/system/openvpn@.service,并在以下行前添加#:
|
|
现在使用systemctl daemon-reload重新加载systemd,它应该可以正常工作。
希望这些信息/技巧能帮助您比我更快地解决问题。如果您知道在LXC/Proxmox中的Debian 9容器中运行OpenVPN的其他技巧/解决方案,请发表评论!谢谢!
评论
Bill McGonigle — 2018年9月13日
感谢提供这些信息。在Proxmox 5.2中,我需要使用create=dir。不确定有什么区别,但使用create=file时pct甚至无法启动容器。