我已经从源代码编译了 openvpn,运行openvpn --version
返回:
OpenVPN 2.4.4 x86_64-unknown-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [MH/PKTINFO] [AEAD] built on Nov 19 2017
library versions: OpenSSL 1.0.2g 1 Mar 2016, LZO 2.08
并创建了一个/etc/openvpn/server.conf
包含一些基本设置的文件。但是,当我尝试启动它时,sudo systemctl start openvpn@server
它会返回
Failed to start [email protected]: Unit [email protected] not found.
并sudo systemctl status openvpn
返回:
● openvpn.service
Loaded: masked (/dev/null; bad)
Active: inactive (dead) since Sun 2017-11-19 14:21:06 HKT; 4 days ago
Main PID: 1502 (code=exited, status=0/SUCCESS)
这让我觉得 openvpn 服务甚至没有注册。
我查了一下/lib/systemd/system/
,没有openvpn.service
文件,但是/etc/systemd/system/
有。据我了解,这是因为我编译而不是apt-get install openvpn
?
谁能建议我应该如何将自编译的 openvpn 添加为服务?
第一次从源代码编译,因此非常感谢任何建议/提示!
编辑1:
我可以启动 openvpn 服务器并将客户端连接到它(只有服务似乎不起作用):
sudo openvpn /etc/openvpn/server.conf
通过在
/lib/systemd/system
.第一个是
openvpn.service
:第二个是
[email protected]
:创建它们后,
sudo systemctl daemon-reload
重新加载新的更改。一般来说,文件是一样的,好像openvpn是从官方repo安装的,唯一的区别
ExecStart=/usr/sbin/openvpn
应该是ExecStart=/usr/local/sbin/openvpn
,指向编译的本地openVPN。编辑:如果您使用 openvpn 2.4+,请从第二个文件中删除
PIDFile=/run/openvpn/%i.pid
和--writepid /run/openvpn/%i.pid
,因为它会阻止服务器在启动时启动。在这里找到从伊利亚的回答中更新(我没有评论的声誉)
我通过使用提供的服务作为模板(因此是单个服务文件)在 Ubuntu 16.04 上工作,改变了两件事:
改变:
重新加载并开始
这假设您已经在 /etc/openvpn/client/client.service.conf 中获得了配置