연결 해제시 VPN에 자동 재 연결?


16

저는 Ubuntu GNOME 사용자이며 연결이 끊어 질 때 VPN에 자동으로 다시 연결할 수있는 방법이 있는지 궁금합니다 . OpenVPN 프로토콜을 사용하고 있습니다.

네트워크 관리자를 철저히 확인했지만 이러한 옵션을 찾을 수 없으며 특정 WiFi에 연결했을 때만 VPN에 연결해야합니다.

답변:


20

18.10부터 (이전 버전에서는 확인할 수 없음) NetworkManager의 VPN 연결에는 다음과 같은 설정 vpn.persistent이 있습니다. 수동으로 연결을 끊을 때까지 연결이 끊어지면 VPN에 다시 연결합니다. "no"기본적으로 설정되어 있지만 불행히도 그놈 네트워크 설정이나 nm-connection-editor에는 노출되지 않습니다.

그러나 다음과 같이 CLI를 통해 설정할 수 있습니다.

nmcli connection modify <Your VPN connection name> vpn.persistent yes

물론 연결하기 전에 연결이 존재해야합니다.


2
이것이 내가 원하는 것입니다. 백만 감사합니다
Wyatt8740 22

이 설정을 사용할 수 있는데 왜 네트워크 설정에 표시되지 않습니까? 어디서 / 어떻게 알았습니까? developer.gnome.org/NetworkManager/stable/nmcli.html 에는 이에 대한 언급이 없지만 명령을 실행하면 성공한 것 같습니다.
Al F

@alf 터미널에서 nmcli를 파킹하여이 설정을 찾았다 고 생각하지만 developer.gnome.org/NetworkManager/stable/… 및 nm-settings 매뉴얼 페이지
m0NKey bR4in 's

19

OpenVPN에는 데드 링크를 자동으로 감지하고 다시 연결하는 기본 제공 메커니즘이 있습니다. 네트워크 관리자에서 "연결 편집"으로 이동하여 VPN 연결을 선택하고 "편집"을 선택하십시오. "VPN"탭에서 "고급 ..."을 클릭하고 "일반"탭으로 이동하십시오. 두 가지 관련 옵션이 있습니다.

"핑 간격 지정"은 OpenVPN에 링크가 여전히 살아 있는지 확인하는 빈도를 알려줍니다. "종료 또는 재시작 ping 지정"은 조치를 취할 때까지 대기하는 시간과 수행 할 조치를 알려줍니다.

예 : 설정은 "30 / ping-restart / 300"입니다. 이는 링크가 여전히 활성 상태 인 경우 OpenVPN이 30 초마다 확인 함을 의미합니다. 링크가 300 초 동안 중단되면 다시 시작됩니다.

이렇게하면 외부 스크립트가 필요하지 않습니다 ...


1
이것이 정답입니다.
necbot

5
적어도 우분투 18.04에는 해당되지 않습니다. ping 간격과 ping-restart가 있지만 어쨌든 자체적으로 비활성화됩니다.
표시 이름

@SargeBorsch : m0NKey bR4in로 대답 일 (설정하는 것 vpn.persistentyes).
kontextify

1

약간의 파고 후에 나는 이 답변을 찾았고 (Ubuntu GNOME 15.04에서) 테스트했으며 지금까지는 작동하는 것 같습니다.

내가 추가 할 수있는 유일한 것은 스크립트 파일이 생성되면 반드시 / home 폴더에 저장 될 필요는 없다는 것입니다. 어디서나 저장하고 실행 가능하게하여 시작 프로그램 목록에 추가 할 수 있습니다.


0

SMOP (Simple Matter of Programming)라고 주장한 후 "Link Down"을 모니터링하는 bash 스크립트를 작성한 다음 사용자 스크립트를 실행합니다. CPU 사용량이 적고 while true....sleep 30방법 보다 응답 속도가 빠릅니다. 여기에 내 대답을 참조 하십시오 . "WiFi 연결 회전"에 관한 것이지만 아마도 당신에게도 효과가있을 것입니다


0

이 스크립트는 nmcli con status더 이상 작동하지 않는 16.04에서 작동합니다.

#!/bin/bash
CON="purple"
STATUS=`nmcli con show --active | grep purple | cut -f1 -d " "`
if [ -z "$STATUS" ]; then
    nmcli con up $CON
fi

조금 더 짧습니다 STATUS="$(nmcli con show -f name | grep purple)". 또는 다음을 수행하여 실제 연결이 활성화되어 있는지 간단히 확인할 수 있습니다.nmcli con show --active id 'purple'
smac89

0

다른 답변을 기반으로 한 완전한 답변은 다음과 같습니다.

#!/bin/bash +x
  while [ "true" ]
   do
        CON="Your-VPN-Name"
        STATUS=`nmcli con show --active | grep $CON | cut -f1 -d " "`
        if [ -z "$STATUS" ]; then
                echo "Disconnected, trying to reconnect..."
                (sleep 1s && nmcli con up $CON)
        else
                echo "Already connected !"
        fi
        sleep 30
   done
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.