在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
扩展名。如果您添加了新文件,则需要运行
|
|
然后再执行 service openvpn restart
。
现有配置文件的更改不需要systemd重新加载。
让systemd在非特权容器内启动openvpn
现在OpenVPN可以手动运行,但不能通过“init”脚本运行。您会在日志文件中看到以下错误消息:
|
|
要解决此问题,请编辑
|
|
并在以下行前添加 #
:
|
|
现在使用以下命令重新加载systemd:
|
|
它应该可以工作了。
希望这些信息/技巧能帮助您比我更快地解决问题。如果您知道在LXC/Proxmox中的Debian 9容器中运行OpenVPN的其他技巧/解决方案,请留言!谢谢!
评论
- Bill McGonigle — 2018年9月13日
谢谢。在Proxmox 5.2中,我需要使用create=dir
。我不确定区别是什么,但使用create=file
时pct甚至无法启动容器。