如何从子目录运行 openVPN

如何从子目录运行 openVPN

我正在尝试使用 openVPN 设置网络
当我的文件结构如下所示时,它运行良好:

/etc/openvpn
    /client
        client-01.conf
        client-01.key
        client-01.crt
        ca.crt

systemctl start openvpn-client@client-01

但我想使用单独的 ca.cert 文件访问 2 个不同的网络,因此我将结构更改为以下内容:

/etc/openvpn
    /client
        /intranet.example.com
            client-01.conf
            client-01.key
            client-01.crt
            ca.crt
        /intranet.foo.com
            ...

systemctl start [email protected]/client-01

尝试启动 openvpn 时,它会冻结,无法执行任何操作。
尝试使用以下方法启用它时, 我收到错误:
systemctl enable [email protected]/client-01

Failed to enable unit: File [email protected]/client-01: Invalid argument

是否可以使用 systemd 在子文件夹中使用 openvpn?

答案1

在 systemd 服务的定义中,有找到它的路径。理论上,你可以在服务的描述/定义中更改它。

无论如何,我认为这不是真正需要的。您请求以下结构:

/etc/openvpn
 /client
  /intranet.example.com
   client-01.conf
   client-01.key
   client-01.crt
   ca.crt
  /intranet.foo.com
   ...

什么限制你使用这些结构(这是 openvpn-client 的设计方式):

/etc/openvpn
 /client
  intranet.example.com.conf
  intranet.example.com.key
  intranet.example.com.crt
  intranet.example.com-ca.crt
  intranet.foo.com.conf
  intranet.foo.com.key
  intranet.foo.com.crt
  intranet.foo.com-ca.crt
   ...

及相关服务:

[email protected]
[email protected]

重点是@后面的部分,这部分指向/etc/openvpn/client/<id>.conf(以 为例openvpn-client@id)。其他相关文件名仅取决于配置文件的内容(您提及/链接的文件)。


举个例子。

openvpn-client@id => /etc/openvpn/client/id.conf

/etc/openvpn/client/id.conf:

...
ca shared-ca.pem
key private.key
cert public.crt
...

结构如下:

/etc/openvpn/client
  id.conf
  shared-ca.pem
  private.key
  public.crt

相关内容