VPN 연결에 Raspberry Pi를 남겨두고 몇 시간 후에 연결되었지만 인터넷에 연결되지 않았습니다. 문제를 해결/진단하는 방법은 무엇입니까?

VPN 연결에 Raspberry Pi를 남겨두고 몇 시간 후에 연결되었지만 인터넷에 연결되지 않았습니다. 문제를 해결/진단하는 방법은 무엇입니까?

Raspberry Pi를 VPN에 연결하고 몇 시간 동안 그대로 두었습니다. SSH 또는 VNC를 통해 연결을 확인했을 때 인터넷에 연결되어 있지 않다는 것을 깨달았습니다. 재부팅하고 VPN에 다시 연결하면 다시 작동합니다.

내 질문은: 문제를 어떻게 진단합니까? 문제를 해결하는 방법? 문제의 원인을 찾기 위해 살펴볼 수 있는 로그 파일이나 systemctl 로그가 있습니까?

자동화하고 싶다Pi가 인터넷에 연결되어 있지 않으면 재부팅됩니다.. 일부 .target파일이나 규칙을 통해 udev"깨끗한" 방식으로 이 작업을 수행 하고 싶습니다 .

답변1

재부팅할 필요가 없을 수도 있습니다. rpi가 중단을 감지하면 VPN 연결을 다시 시작하는 것으로 충분합니다(하드웨어 오류가 아닌 한).

중단 감지와 관련하여 특정 호스트 또는 IP 주소가 있습니까?알다VPN이 켜져 있을 때는 액세스할 수 있어야 하지만 VPN이 꺼져 있을 때는 액세스할 수 없습니까? 그렇다면 fping해당 호스트를 시도하는 크론 작업을 설정하십시오. 응답이 있으면 모든 것이 정상입니다. 그렇지 않은 경우 VPN을 다시 시작하세요.

그렇지 않고 VPN 중단이 로그에 기록되면 로그를 모니터링하고 VPN 중단이 발생하면 VPN을 다시 시작하는 스크립트를 작성하십시오. 예를 들어 다음으로 시작합니다.

tail -F /var/log/syslog |
  awk '/your outage message/ { system "/path/to/vpn-restart-script" }'

또는 다음 명령을 사용하여 Perl 스크립트를 작성하십시오.파일::꼬리기준 치수). 그건 그렇고, Debian의 패키지에 File::Tail있으므로 libfile-tail-perlRaspbian에서도 사용할 수 있어야 합니다.

로그 파일에서 중단 메시지를 찾을 수 없고 VPN 연결이 systemd 서비스에 의해 시작된 경우 이를 사용하여 systemctl status <servicename>시작 여부를 확인할 수 있습니다.

간단히 말해서 이 문제를 해결하는 데는 두 부분이 있습니다.

  1. VPN 시작을 안정적으로 감지합니다. 로그 파일을 모니터링하려면 백그라운드에서 실행 중인 크론 작업이나 스크립트가 필요할 수 있습니다. 중단을 감지하려면 여러 테스트 조건이 필요할 수 있습니다.

  2. 그렇지 않은 경우 VPN 연결을 다시 시작하세요. systemctl restart servicenameVPN이 시스템 서비스를 통해 시작되면 . 또는 /etc/init.d/vpn-serviceSysV 초기화 시. (이 이름은 정확하지 않으며 실제 서비스 이름에 대한 자리 표시자일 뿐입니다.)

이러한 부분은 서로 독립적으로 해결될 수 있고 해결되어야 합니다.

관련 정보