今天安装了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(根据你配置的是客户端还是服务器)。