openvpn 연결을 설정한 후 Debian에서 부팅 시 데몬을 실행합니다.

openvpn 연결을 설정한 후 Debian에서 부팅 시 데몬을 실행합니다.

나는 라즈베리 파이를 사용하고 있습니다. (데비안 변형).

기본적으로 openvpn은 /etc/rc2.d/S03openvpn을 통해 시작됩니다. openvpn이 시작되고 VPN 공급자에 대한 연결이 설정된 후 시작하려는 /etc/init.d데몬에 대한 심볼릭 링크 로 설정된 스크립트가 있습니다 . /etc/rc2.d/S04daemonnameopenvpn이 시작되고 정상적으로 연결됩니다. 그런데 VPN을 이용해서 연결하려는 데몬은 제 표준 IP를 사용하기 때문에 연결이 이루어지기 전에 시작되는 것 같습니다. 데몬을 종료하고 터미널에서 다시 시작하면 원하는 VPN IP가 사용됩니다.

VPN 연결을 설정한 후 시작 시 데몬이 실행되도록 하려면 어떻게 해야 합니까? tun0 장치가 생성될 때까지 기다려서 이를 수행할 수 있습니까(어떻게?) 아니면 tun0 생성이 설정된 연결과 동의어가 아니므로 너무 이르다는 뜻입니까? 또한 init.d 스크립트에서 런타임 종속성 LSB 플래그를 사용하는 방법을 조사했지만 특정 네트워크 장치(tun0)를 요구 사항으로 만드는 방법을 찾을 수 없으며 이것이 가능한지 확실하지 않습니다. openvpn 서비스를 참조하는 파일 도 있지만 /etc/NetworkManager/VPN//VPN이 유일한 하위 디렉터리이기 때문에 이를 어떻게 사용하는지 또는 NetworkManager 데몬을 사용해야 하는지 잘 모르겠습니다.

예를 들어 정확한 솔루션을 원합니다. 실행 우선순위가 충분히 낮은 /etc/rc2.d/에 init.d 스크립트를 넣거나 openvpn 연결이 설정될 때까지 기다리는 것이 아닙니다.

답변1

openvpn예를 들어 options 을 사용하여 스크립트를 실행할 수 있습니다 --up scriptname.

제 생각에는 프로세스를 시작한 후 언젠가 연결이 설정될 것이라고 기대하는 것보다 이것이 더 좋습니다 openvpn. 를 사용하는 대신 openvpn에서 스크립트를 실행하는 가능한 방법을 시도해 볼 수 있습니다 . 자세한 내용은 맨페이지를 확인하세요 .--up--client-connectopenvpn

답변2

설정을 고려하십시오 ip_nonlocal_bind. 이 관련 질문에 대한 답변은 다음과 같습니다.https://serverfault.com/questions/474997/how-can-a-larger-delay-be-placed-Between-two-interdependent-upstart-or-etc-init/475013#475013. 구글링해 보세요 - 링크 있어요 -https://sebest.github.io/post/linux-how-to-bind-ip-that-doesn-t-exist-yet/

나는 경험이 없기 때문에 아직 테스트하지 않았다는 것을 인정해야 합니다.

터널과 연결된 IP에 postgres를 바인딩하려고 하는 것 같습니다. 그렇다면 이것이 ip_nonlocal_bind문제에 대한 해결책입니다. ip_nonlocal_bind를 설정하면 컴퓨터와 연결되지 않은 IP라도 모든 IP에 바인딩할 수 있습니다. 이는 아직 소유하지 않은 IP에 바인딩하려는 경우에 정확히 원하는 것입니다. 예를 들어 유동 가상 IP와 활동 간에 사용할 때입니다. 패시브 노드.

이것이 ipv4 전용이라고 가정합니다.

echo 1 > /proc/sys/net/ipv4/ip_nonlocal_bind

아니면 던져/etc/sysctl.conf

net.ipv4.ip_nonlocal_bind

관련 정보