今天安装了openvpn,看到systemd下有不同的配置文件,记录一下不同文件的使用方法
在 Linux 系统中,openvpn-server@.service
、openvpn.service
和 openvpn@.service
是与 OpenVPN 服务相关的(systemd)单元文件,它们的作用和使用方式有所不同。以下是每个文件的简要说明:
1. openvpn.service
作用:
openvpn.service
是 OpenVPN 的常见服务单元文件之一,通常用于启动一个单一的 OpenVPN 实例。它通常用于非多实例配置。配置:它用于启动 OpenVPN 服务器,通常在没有多个配置文件或实例的场景下使用。它可能会在配置中加载某个默认配置文件(如
/etc/openvpn/server.conf
)。示例用途:如果你只有一个 OpenVPN 配置文件并且不需要使用多个配置文件实例时,可以使用这个服务。
2. openvpn@.service
作用:
openvpn@.service
是一个模板服务文件,用于启动多个 OpenVPN 实例。通过@
符号,可以传递实例名称,动态加载不同的配置文件。配置:此文件会根据启动时传递的实例名称动态加载配置文件。比如,如果你使用
openvpn@myvpn.service
启动服务,它会尝试加载/etc/openvpn/myvpn.conf
作为配置文件。示例用途:这是一个多实例服务文件,允许你以不同的实例名称启动多个 OpenVPN 服务器,每个实例可以使用不同的配置文件。通常用于拥有多个 VPN 配置的场景。
命令示例:
bashsudo systemctl start openvpn@myvpn
这将会启动一个名为
myvpn
的 OpenVPN 实例,并加载/etc/openvpn/myvpn.conf
配置文件。
3. openvpn-server@.service
作用:
openvpn-server@.service
是openvpn@.service
的一个变种,专门用于启动 OpenVPN 服务器实例(通常用于服务器端配置)。它也是一个模板服务文件,可以通过指定实例名称来加载不同的配置文件。配置:与
openvpn@.service
类似,但openvpn-server@.service
更加针对 OpenVPN 服务器端的配置,可能包含一些特定于服务器端的设置。它通常用于服务器的多实例配置。示例用途:适用于你希望启动多个 OpenVPN 服务器实例的情况,特别是在你有多个 VPN 服务器配置文件的情况下。
命令示例:
bashsudo systemctl start openvpn-server@server1
这将启动一个名为
server1
的 OpenVPN 服务器实例,并加载/etc/openvpn/server1.conf
配置文件。
总结:
openvpn.service
:用于单一 OpenVPN 配置文件的服务,适合只有一个 VPN 配置的情况。openvpn@.service
:一个多实例模板服务,允许你为每个不同的配置文件启动一个 OpenVPN 实例。openvpn-server@.service
:与openvpn@.service
类似,专门用于 OpenVPN 服务器端的多实例配置,适用于需要多个服务器实例的场景。
使用场景:
如果你只需要运行一个 OpenVPN 实例,通常会使用
openvpn.service
。如果你需要多个 OpenVPN 实例,每个实例使用不同的配置文件,则会使用
openvpn@.service
或openvpn-server@.service
(根据你配置的是客户端还是服务器)。