Systemd无法在lxd托管16.04容器中启动openvpn

openvpn使用来自systemd单元文件的确切ExecStart=调用从命令行启动:

 /usr/sbin/openvpn --daemon ovpn-server --status /run/openvpn/server.status 10 --cd /etc/openvpn --script-security 2 --config /etc/openvpn/server.conf /run/openvpn/server.pid 

ps ax确认该过程在那里:

 1634 ? Ss 0:00 /usr/sbin/openvpn --daemon ovpn-server --status /run/openvpn/server.status 10 --cd /etc/openvpn --script-security 2 --config /etc/openvpn/server.conf --writepid /run/openvpn/ 

但是systemctl start openvpn@server不成功:

 ● openvpn@server.service - OpenVPN connection to server Loaded: loaded (/lib/systemd/system/openvpn@.service; disabled; vendor preset: enabled) Active: failed (Result: exit-code) since Thu 2016-03-17 09:54:52 UTC; 4s ago Docs: man:openvpn(8) https://community.openvpn.net/openvpn/wiki/Openvpn23ManPage https://community.openvpn.net/openvpn/wiki/HOWTO Process: 1679 ExecStart=/usr/sbin/openvpn --daemon ovpn-server --status /run/openvpn/server.status 10 --cd /etc/openvpn --script-security 2 --config /etc/openvpn/server.conf --writepid /run/openvpn/s Main PID: 819 (code=exited, status=1/FAILURE) Mar 17 09:54:52 vpn ovpn-server[1679]: push_ifconfig_ipv6_remote = :: Mar 17 09:54:52 vpn ovpn-server[1679]: enable_c2c = DISABLED Mar 17 09:54:52 vpn ovpn-server[1679]: duplicate_cn = DISABLED Mar 17 09:54:52 vpn ovpn-server[1679]: cf_max = 0 Mar 17 09:54:52 vpn ovpn-server[1679]: cf_per = 0 Mar 17 09:54:52 vpn ovpn-server[1679]: max_clients = 1024 Mar 17 09:54:52 vpn systemd[1]: openvpn@server.service: Control process exited, code=exited status=1 Mar 17 09:54:52 vpn systemd[1]: Failed to start OpenVPN connection to server. Mar 17 09:54:52 vpn systemd[1]: openvpn@server.service: Unit entered failed state. Mar 17 09:54:52 vpn systemd[1]: openvpn@server.service: Failed with result 'exit-code'. 

我解释了journalctl | grep ovpn-server | tail -n 100 journalctl | grep ovpn-server | tail -n 100 journalctl | grep ovpn-server | tail -n 100无法分叉:

 Mar 17 09:57:44 vpn ovpn-server[1693]: OpenVPN 2.3.10 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [MH] [IPv6] built on Feb 2 2016 Mar 17 09:57:44 vpn ovpn-server[1693]: library versions: OpenSSL 1.0.2g 1 Mar 2016, LZO 2.08 Mar 17 09:57:44 vpn ovpn-server[1693]: daemon() failed or unsupported: Resource temporarily unavailable (errno=11) Mar 17 09:57:44 vpn ovpn-server[1693]: Exiting due to fatal error 

我一直在寻找解决方案。 我发现的工作是在LimitNPROC/lib/systemd/system/openvpn@.service LimitNPROC行。

不要忘记在此之后运行systemctl daemon-reload

最好避免使用源自系统包的系统单元进行修改。 只需使用systemd override drop-in:

 systemctl edit openvpn@ 

openvpn 服务器的单元名称可能不同,例如。 对于包版本2.4.5-xenial0它将是

 systemctl edit openvpn-server@ 

然后进入编辑:

 [Service] LimitNPROC=infinity 

它应该创建/etc/systemd/system/openvpn@.service.d/override.conf文件(或类似的相应单元名称)。 要激活它,您可能需要重新加载systemd

 systemctl daemon-reload 

积分:
覆盖: https : //unix.stackexchange.com/a/398541/218321
“无限制”: https : //unix.stackexchange.com/a/345596/218321

我还必须添加他们各自的屯兄弟

 DeviceAllow=/dev/net/tap rw DeviceAllow=/dev/net/tap1 rw 

在L2级别上运行它。