lxd 관리 16.04 컨테이너에서 Systemd가 openvpn을 시작하지 못함


27

openvpn단위 파일 ExecStart=에서 정확한 호출을 사용하여 명령 행에서 올바르게 시작 systemd합니다.

/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그것이 포크에 실패했다는 것을 해석 합니다.

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

이 문제는 Ububtu 16.4와 함께 OpenVZ에서 나에게 발생 LimitNPROC했습니다. 답변과 같이 주석을 달아 서비스가 정상적으로 시작되었습니다.
Piotr Kula

답변:


46

나는 이것에 대한 해결책도 찾고있다. 내가 찾은 것은에서 LimitNPROC줄 을 주석 처리하는 것 입니다 /lib/systemd/system/openvpn@.service.

systemctl daemon-reload그 후에 달리는 것을 잊지 마십시오 .


3
고맙습니다! 문제를 어떻게 진단 했습니까? 답을 알고 있어도 인터넷 검색 LimitNPROC lxd은 즉시 도움이되는 조회수를 반환하지 않았을 것입니다.
Christian David

5
15.10 lxd 인스턴스를 가져 와서 systemd 구성을 비교하기 시작했습니다. LimitNPROC는 처음에는 의심스럽지 않았지만 이전 구성에는 존재하지 않았으므로 제거하려고 시도하여 해결했습니다. 그 시점까지 하루 동안 머리카락을 찢어 버렸습니다.
Iain

8
고마워, 이것도 내 문제를 해결했다! systemctl daemon-reload그것이 효력을 발휘하기 전에 달려야 했다.
Quentin Skousen

1
이것이보고 되었습니까?
user1338062


14

시스템 패키지에서 생성 된 시스템 단위를 수정하지 않는 것이 좋습니다. 시스템 재정의 드롭 인을 사용하십시오.

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


3
이것은 또한 컨테이너 openvpn내부 를 수정합니다openvz
Stuart Cardall

이것은 허용되는 것보다 더 나은 솔루션입니다. 방금 컨테이너를 업그레이드하고 openvpn이 작동을 멈췄습니다. 재정의 대신 주식 시스템 파일을 업데이트했기 때문입니다.
WoJ

1

나는 또한 그들 각각의 동생 형제를 추가해야했습니다

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

L2 레벨에서 실행합니다.


Ask Ubuntu에 오신 것을 환영합니다! 이 작업을 수행하는 방법에 대한 특정 세부 정보로 확장 하려면 이 답변 을 편집하는 것이 좋습니다 . Ask Ubuntu에서 어떤 종류의 답변이 가장 가치있는 것으로 간주되는지에 대한 일반적인 조언은 좋은 답변을 작성하는 방법 도 참조하십시오 .
David Foerster
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.