VPN 자동 연결


39

Gnome과 함께 Ubuntu 13.04를 사용하고 있으며 최근에 (열린) VPN을 설정했습니다. 기본적으로 활성화 할 수있는 방법이 있습니까? 부팅하거나 연결이 끊길 때마다 VPN을 수동으로 활성화해야합니다. 누락 된 옵션이 있습니까?

답변:


66

Network Manager 표시기 nm-applet (기본적으로 설치된 그놈 또는 Unity 네트워크 트레이 애플릿)을 통해 네트워크가 연결될 때 VPN에 자동으로 연결되도록 NetworkManager를 구성 할 수 있습니다.

  1. 네트워크 트레이 애플릿을 클릭하고 "연결 편집 ..."을 클릭하거나을 실행하십시오 nm-connection-editor.
  2. 네트워크 연결을 선택하고 "편집 ..."을 클릭하십시오.
  3. "이 연결을 사용할 때 VPN에 자동으로 연결"을 선택하고 드롭 다운 목록에서 원하는 VPN을 선택하십시오.
  4. 저장하기.

nm 연결 편집기 스크린 샷


이 기능을 활성화하면 NetworkManager 에 "자동으로이 네트워크에 연결"기능을 손상시킬 수 있는 버그 가 있습니다. ( 편집 :이 버그는 이제 Ubuntu 16.04에서 "수정 된 릴리스"로 표시되었습니다). NetworkManager가 자동으로 연결을 시도하고 실패하면 다음과 같은 행이 표시됩니다 /var/log/syslog.

<error> [1401130450.367538] [nm-vpn-connection.c:1374] get_secrets_cb(): Failed to request VPN secrets #2: (6) No agents were available for this request.

NetworkManager가에서 사용자의 VPN 비밀번호를 얻지 못하는 것 같습니다 gnome-keyring-daemon. 한 가지 해결 방법은 NetworkManager가의 구성 파일에 비밀번호를 일반 텍스트로 저장하도록하는 것입니다 /etc/NetworkManager/system-connections/. 이것을하기 위해:

  1. 터미널을 엽니 다.
  2. sudoedit /etc/NetworkManager/system-connections/<VPN>, 여기서 <VPN>VPN의 구성 파일 (파일 이름은 일반적으로 VPN에 할당 한 이름)입니다.
  3. password-flags=1을 다음으로 변경하십시오.password-flags=0
  4. 저장 및 종료.

이제 NetworkManager가 VPN 비밀번호 자체를 저장하고 ( man nm-settings자세한 내용 참조) 네트워크 자동 연결이 다시 작동합니다.


5
그놈 네트워크 관리자에는 존재하지 않습니다.
Paul Woitaschek

4
nm-connection-editor일반 탭 에서 연결을 편집 할 때 찾을 수 있습니다 .
Lode

1
이로 인해 연결 자체가 자동 연결되지 않습니다. 이것에 대한 해결책이 있습니까?
Tamás Barta

@Barta NetworkManager의 버그입니다. 내 답변에 해결 방법을 추가했습니다.
Vincent Yu

8

vpnautoconnect를 살펴보십시오.

vpnautoconnect는 네트워크 관리자를 사용하여 생성 한 VPN을 자동으로 다시 시작할 수있게 해주는 데몬입니다. 매우 빠르게 다시 연결하고 대역폭을 모니터링 할 수 있으며 pptp 및 openvpn 연결과 함께 작동합니다.

자세한 내용을보고 다운로드하려면 웹 사이트를 방문하십시오 .

이것도 시도하십시오 :

에서 AUTOSTART 기능을 사용하십시오 /etc/default/openvpn

또는

VPN 연결의 UUID를 파악하십시오.

nmcli con list | grep -i vpn

UUID는 문자, 숫자 및 대시가있는 두 번째 열입니다.

터미널에서 연결을 시작하십시오. 키보드에서 Ctrl+ Alt+ T를 누르면 터미널이 열립니다. 열리면 아래 명령을 실행하십시오.

nmcli con up uuid <put you UUID here>

시작시 실행되도록 설정하십시오.

대시로 이동하여 시작 응용 프로그램을 입력하고 선택한 다음 추가를 클릭하고 위의 nmcli 명령을 UUID와 함께 추가하십시오. "추가"를 클릭하십시오. 이름에 사용하려는 이름을 입력하고 Command에 nmcli 행 전체를 넣으십시오. "추가"를 다시 클릭하십시오. 이제 재부팅하고 시도하십시오.

출처 : 소스 포지


설치 및 구성하고 컴퓨터를 재부팅했지만 작동하지 않습니다.
Paul Woitaschek

내 답변에 더 많은 정보를 추가했습니다.
Mitch

사용할 수있는 문서가 vpnautoconnect있습니까? 그들의 웹 사이트는 버려진 SourceForge 프로젝트 페이지이며 패키지는 매뉴얼 페이지를 제공하지 않습니다. 유망한 소리.
Tamás Barta

찾을 수없는 것 같지만 계속 찾아 볼 것입니다.
Mitch

15.04 또는 15.10 에 표시 되도록 작업 목록의 이름이 바뀌 었습니다.
Croll

2

이 기사 에서 스크립트 확인하는 것이 좋습니다 .

#!/bin/bash

# YourVPN here is the name of desired vpn connection to monitor
# edit this line:
##################
VPNNAME=YourVPNUUID
# enter desired time between checks here (in seconds)
SLEEPTIME=15
##################

nice=0

for (( ; ; )); do

# creating infinite loop

tested=$(nmcli con status uuid $VPNNAME | grep -c UUID)
#possible results:
# 0 - no connection - need to start
# 1 - working connection, continue.

case $tested in
"0")
echo "Not connected - starting"

#increase nice counter
nice=$[nice+1]

#if "nice start" fails for 3 times
if [ $nice -ge 3 ];
then
#TRY to knock hard way, resetting the network-manager (sometimes it happens in my kubuntu 12.04).
      echo "HARD RESTART!"
      nmcli nm enable false
      nmcli nm enable true
      sleep 5
      nmcli con up uuid $VPNNAME
      nice=0
else
#not yet 3 falures - try starting normal way
      echo "trying to enable."
      nmcli con up uuid $VPNNAME
fi

;;

"1")
echo "VPN seems to work" 

;;
esac

sleep $SLEEPTIME

done

YourVPNUUID$ VPNNAME 에 대한 값을 찾으려면 다음을 실행하십시오.

nmcli con list | grep -i vpn

2

vpnautoconnect는 12.04 LTS에서 작동하지 않았으며 유일한 것은 아닙니다.

나는 그것을 조금 연구하고 기존 코드를 결합하여 첫 번째 bash 스크립트를 만들었습니다. 주어진 VPN 연결이 활성화되어 있는지 확인하고 그렇지 않은 경우 연결합니다. 연결되어 있으면 주어진 시간 (예 : 1 분) 동안 휴면 상태가되고 프로세스를 무기한 반복합니다.

#! /bin/bash

while true
do
   connection="Auto Ethernet"
   vpn_connection="My VPN connection"
   run_interval="60"

   active_connection=$(nmcli dev status | grep "${connection}")
   active_vpn=$(nmcli dev status | grep "${vpn_connection}")

   if [ "${active_connection}" -a ! "${active_vpn}" ];
   then
      nmcli con up id "${vpn_connection}"
   fi

   sleep $run_interval
done

명령:

  1. 예를 들어 vpn-auto-connector.sh라는 빈 텍스트 파일을 작성하십시오 (홈 폴더에 저장했습니다. 파일을 마우스 오른쪽 단추로 클릭하고 특성-> 권한을 선택한 후 "파일을 프로그램으로 실행 허용"을 선택하십시오 (파일을 저장해야 할 수도 있음). 컴퓨터에 여러 사용자가있는 경우 다른 곳에서 읽기 / 쓰기 / 실행 권한을 변경하십시오.)

  2. 위에서 작성한 파일로 코드를 복사하십시오. 다음 세 변수의 값을 바꾸십시오.

    connection = "자동 이더넷"

    vpn_connection = "내 VPN 연결"

    run_interval = "60"

    네트워크 관리자를 열어서 찾을 수 있습니다. 필자의 경우 connection = "Auto Ethernet"은 활성 유선 연결 (무선으로 테스트되지 않은)이고 vpn_connection = "My VPN connection"은 VPN 연결의 이름입니다. run_interval = "60"은 스크립트를 반복 할 시간 간격 (초)입니다.

  3. 응용 프로그램-> 시스템 도구-> 환경 설정-> 응용 프로그램 시작을여십시오. 적절한 이름 (예 : "VPN 자동 커넥터")을 추가하고 명령에 대해 이전에 저장 한 .sh 파일을 선택하십시오. 이제 bash 스크립트는 시작시 실행되며 VPN 연결이 활성화되어 있는지 계속 확인합니다. VPN 연결을 해제하여 시도 할 수 있으며 자동으로 다시 활성화해야합니다.


큰 감사합니다. 이 스크립트는 이해하기 쉽습니다.
Evan Hu

0

Vpnautoconnect 는 Ubuntu 12.04, 13.04 및 13.10에서 제대로 작동합니다 (13.10에서는 Network Manager의 "자동 연결"옵션이 수정되어 현재 작동한다고 생각합니다)

따라서 설치 또는 작동에 문제가 있거나 Network-Manager의 드롭 다운 메뉴에서 "openvpn"옵션을 찾지 못하면 개방형 VPN 연결을 만들 수 있습니다.이 tuto를 따라갈 수 있습니다. 매우 명확하고 적용하기 쉬운 단계.

여기를

그리고 알려주세요 :-)


0

다음은 매우 강력하고 안정적인 스크립트입니다.

  • VPN에 연결되어 있는지 확인
  • 그렇지 않은 경우 가장 최근에 활성화 된 VPN에 연결

다시 연결하기 위해 단일 VPN 연결을 지정할 필요가 없기 때문에 다른 VPN에 정기적으로 연결하는 경우 특히 유용합니다.

#!/bin/bash

nmcli --mode multiline --fields uuid,vpn connection status | grep -qc "^VPN:.*yes" 1>/dev/null 2>&1

if [ $? -ne 0 ]; then
        last_vpn_uuid=`nmcli --mode tabular --fields uuid,type,timestamp connection list | grep -E "\s+vpn\s+" | sort -k3 -nr | head -n1 | awk '{ print $1 }'`

        nmcli connection up uuid "$last_vpn_uuid"
fi

이것은 정말 흥미롭지 만 다음과 같은 오류가 발생합니다 : $ nmcli -version nmcli tool, version 0.9.10.0 $ lsb_release -a 사용 가능한 LSB 모듈이 없습니다. 배급 자 ID : Ubuntu 설명 : Ubuntu 15.04 릴리스 : 15.04 코드 명 : vivid
gare

0

여러 컴퓨터에서 Ubuntu 14.04 LTS를 사용하고 있습니다. 사실, 몇 가지 특별한 전제 조건이 있습니다.

  1. 비밀번호 관리자에 비밀번호를 저장하고 싶지 않습니다
  2. 네트워크 재 연결시 VPN이 손실되는 VirtualBox 게스트를 사용하고 있습니다.
  3. 다시 연결하면 비밀번호 대화 상자가 여러 번 열립니다
  4. 백업 VPN 서버를 사용하고 있습니다 (페일 오버)
  5. 내 UUID에 대한 구성 파일 사용

나는이 매우 입증되고 신뢰할 수있는 스크립트로 작업하고 있습니다 :

그러나 일시적으로 해결할 수있는 네트워크 관리자 애플릿에는 몇 가지주의 사항이 있습니다 (기사의 문제 해결 섹션 참조).

vpnautoconnect 가 작동하지 않습니다.


0

@ vincentYo의 대답은 똑바로 보이지만 얻을 수 없었으므로 아래처럼 수행했습니다.

step1 : 쉘 스크립트를 작성하고 VPN 명령을 추가

vim auto_vpn.sh

#!/bin/sh vpnc --enable-1des

2 단계 : sudoer 파일을 열고 커널에게이 파일의 암호를 묻지 말라고 지시하십시오.

sudo vim / etc / sudoers

이 파일 안에있는 대부분의 내용은 주석 처리됩니다.

사용자 이름 ALL = (root) NOPASSWD : your_shell_script.sh

예:

sharath ALL = (루트) NOPASSWD : /home/sharath/workspace/work/src/auto_vpn.sh

step3 : cron 작업을 설정하십시오.이 쉘 스크립트를 트리거하면 cron 작업이 매 분마다 실행됩니다 (bcz 내 인터넷이 유지되도록 매 분마다)

* * * * * sudo /home/sharath/workspace/work/src/auto_vpn.sh

나는 이것을 여러 날부터 사용하고 있으며 우분투 16.04 LTS에서 잘 작동합니다 ..Chears !!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.