![在 systemd 下使用 openvpn 与多个服务器](https://linux22.com/image/113485/%E5%9C%A8%20systemd%20%E4%B8%8B%E4%BD%BF%E7%94%A8%20openvpn%20%E4%B8%8E%E5%A4%9A%E4%B8%AA%E6%9C%8D%E5%8A%A1%E5%99%A8.png)
初步问题:命令使用的默认服务器存储在哪里systemctl start openvpn
(当然假设是 sudo)?它应该在 中/etc/default/openvpn
,就像以前的 SysV 一样,但如果我更改它systemctl
仍然将 openvpn 连接到旧服务器。
现在主要问题。
根据将 OpenVpn 与 systemd 结合使用并且Openvpn 的 systemd 正确方法 (和其他来源)如果我的 VPN 有两个不同的服务器(例如伦敦和巴黎),那么我需要两个配置文件/etc/openvpn/London.conf
,/etc/openvpn/Paris.conf
以便我可以使用systemctl start openvpn@London
或启动我选择的服务器systemctl start openvpn@Paris
。
好的,这有效。
现在假设我有两个不同的 VPN 提供商(P1 和 P2),服务器分别位于伦敦和巴黎。设置配置文件的一种方法是
/etc/openvpn/P1_London.conf
/etc/openvpn/P1_Paris.conf
/etc/openvpn/P2_London.conf
/etc/openvpn/P2_Paris.conf
然后我应该相应地启动 openvpn 。
相反,我想做的是将conf文件放在单独的目录中,每个提供者一个目录:
/etc/openvpn/P1/London.conf
/etc/openvpn/P1/Paris.conf
/etc/openvpn/P2/London.conf
/etc/openvpn/P2/Paris.conf
如果我确实这样做,然后尝试启动systemctl start openvpn@P1/London
其他服务器或任何其他变体,我会收到错误。
问题是:我怎样才能得到我想要的东西?
答案1
我通过为我想要在 下创建的每台服务器创建文件夹来实现这一点/etc/openvpn/server/
。
在这些目录中,我保存ccd
目录、ipp.txt
文件和秘密。
只有每个服务的配置才会访问/etc/openvpn/server/foo.conf
并引用子目录中的配置项。例如
ifconfig-pool-persist foo/ipp.txt
然后该服务将启动systemctl start [email protected]