在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”脚本。您会在日志文件中看到以下错误消息:
|
|
要解决此问题,请编辑 /lib/systemd/system/[email protected],并在以下行前添加 #:
|
|
现在使用 systemctl daemon-reload 重新加载systemd,它应该可以工作。
希望这些信息/技巧能帮助您比我更快地解决问题。🙂 如果您知道在LXC/Proxmox中的Debian 9容器中运行OpenVPN的其他技巧/解决方案,请留言!谢谢!
评论
感谢这个。我需要为proxmox 5.2使用create=dir。我不确定区别是什么,但使用create=file时pct甚至无法启动容器。 评论者:Bill McGonigle — 2018年9月13日 #