Network-Manager를 사용하여 VPN에 자동으로 연결하는 방법


17

VPN 연결이 작동하고 있습니다. 이제 특정 무선 네트워크에있을 때이 VPN 연결이 자동으로 활성화되기를 원합니다. 네트워크 관리자 애플릿을 사용하는 비 침입 그래픽 방식이 있습니까? 내가 올바르게 기억하면 잠시 동안 작동했지만 더 이상하지 않습니다.

매번 암호를 입력 할 필요가없는 모든 사용자가 문제의 무선 연결을 사용할 수있게 만들었습니다.

사용 된 CLI 프로그램은 sroecker의 PPA 에서 하이브리드 인증을 사용하는 vpnc (시스코 VPN 클라이언트 호환)입니다.

편집 : 나는 (에듀 람 때문에) 더 이상 답변을 시도 할 수 있으며 많은 답변을 얻지 못하는 것 같으므로 투표가 취소 될 때까지 답변을 남기지 않을 것입니다.


이걸 어떻게 따라와?
rlemon

나는 지금 꽤 오랫동안 필요하지 않았습니다. 아마 새로운 대학에 4 월이 올 것입니다.
turbo


내 질문은 openconnect가 아닌 vpnc에 관한 것이므로 @fossfreedom은 정확히 중복되지 않습니다.
turbo

: 나는 VPN가 실행되지 않는 인터넷 연결을 차단하는 방법에 대한 짧은 블록 게시물 작성 mentat.za.net/blog/2015/01/24/vpn-only-internet
스테판 반 월트 데르

답변:


18

제안 된 솔루션은 con-f-use오랜 버그로 인해 작동하지만 작동하지 않습니다.

https://bugs.launchpad.net/ubuntu/+source/network-manager/+bug/280571

그래도 해결 방법이 있습니다. 최신 NetworkManager 버전의 경우 nmcli다음과 같이 편집하고 저장할 수 있는 명령 줄 유틸리티 가 있습니다 /etc/NetworkManager/dispatcher.d/vpn-up.

#! /bin/bash

REQUIRED_CONNECTION_NAME="<name-of-connection>"
VPN_CONNECTION_NAME="<name-of-vpn-connection>"


activ_con=$(nmcli con status | grep "${REQUIRED_CONNECTION_NAME}")
activ_vpn=$(nmcli con status | grep "${VPN_CONNECTION_NAME}")
if [ "${activ_con}" -a ! "${activ_vpn}" ];
then
    nmcli con up id "${VPN_CONNECTION_NAME}"
fi

[테스트하지 않았습니다. 결과에 따라 자유롭게 테스트하고 편집하십시오.]

참조 : https://wiki.archlinux.org/index.php/NetworkManager#Use_dispatcher_to_connect_to_a_vpn_after_a_network-connection_is_established이 더 많은 정보를 가지고있다.


13.04에서 스크립트를 /etc/network/if-up.d에 넣고 askubuntu.com/questions/198136/… 에 따라 / etc / NetworkManager / system-connections / connection-name을 수정 해야합니다. 유효한 VPN 비밀 "오류
OlegYch

아치 위키 해킹은 실제로 작동합니다! 2013 년 7 월 11 일에 아치 위키에서 스크립트를 시도했는데 'nmcli ...'에서 'su [user] -c "nmcli ..."'로 수정하지 못했습니다! 위키에서와 같이 지시를 따르고 chmod + x;) 건배를 잊지 마십시오!

Hugo Eden이 언급 한 버그 ( bugs.launchpad.net/ubuntu/+source/network-manager/+bug/280571 )는 5 개월 전에 업스트림에 수정되었습니다. 그러나, 나는 여전히 정확한에서 그것을 경험하고 있습니다 ... 무엇을 제공합니까?
iGadget

이것은 나를 위해 작동하지 않았기 때문에를 조사하기로 결정했고 /etc/NetworkManager/dispatcher.d/vpn-up ': 소유자가 실행할 수 없습니다 .` 해결책은 /var/log/syslog다음과 같습니다.Mar 4 13:49:51 oleg-HP nm-dispatcher.action: Cannot execute sudo chmod 755 /etc/NetworkManager/dispatcher.d/vpn-up
Oleg Belousov

8

Ubuntu Trusty 14.04에서는 개별 저장된 Wi-Fi 설정의 GUI에 VPN 자동 연결 저장소가 있습니다. 시스템 설정-네트워크-관심있는 Wi-Fi 또는 Lan 확인-설정 (일반 탭)- "VPN에 자동 연결 ..."을 선택하십시오.


3

내가 올바르게 기억하면 잠시 동안 작동했지만 더 이상하지 않습니다.

  • 이것은 명백 할 수도 있지만 때로는 생각하지 않습니다. 다음과 같이 재설치를 시도 했습니까?

    sudo apt-get purge network-manager-vpn sudo apt-get 설치 network-manager-vpnc 그런 다음 : 여기에 이미지 설명을 입력하십시오

이제 특정 무선 네트워크에있을 때이 VPN 연결이 자동으로 활성화되기를 원합니다.

  • 사용자가 잘못된 네트워크에있을 때 "연결할 수 없음"유형의 메시지를 표시하지 않지만 메시지가 어떻게 진행되는지 기억하지 못하는 방법이 있습니다. 그래픽 방식으로 자동 연결하는 다른 방법은 없습니다. 아마도 당신은 wlan-network에있을 때 연결을하는 스크립트를 작성해야 할 것입니다.

도움이 되었기를 바랍니다.


나는 아직도 이것을 실제로 테스트하지 않았습니다. 내가 대답 할 때 표시하도록하겠습니다. 약속.
turbo

내 경험상 이것은 실제로 작동하지 않습니다. 나는 이것이 NetworkManager의 버그라고 생각합니다
Conor Rynne

3
그러나 이것은 심지어 Precise에서도 깨졌습니다. 자동으로 연결되지 않습니다 O_o
eggonlegs

응-고장 작동하지 않습니다 (Ubunutu 12.04).
user48956

3

이 솔루션이 저에게 효과적임을 확인할 수 있습니다. 우분투 14.04 LTS를 실행 중입니다.

종료 아이콘으로 이동 한 다음 시스템 설정으로 이동했습니다.

설정 화면이 열리면 '네트워크'와 연결된 WiFi 네트워크로 이동했습니다. 네트워크 이름의 한쪽에 작은 화살표가 있습니다.

아랍어로 된 설정 스크린 샷

해당 아이콘을 클릭하면 "설정"또는 "옵션"(또는 이와 유사한 것)이라는 옵션이 표시됩니다.

클릭 설정

다음 창이 열리면 '일반'탭으로 이동하면 VPN에 자동으로 연결하는 옵션이 표시됩니다. 이 WiFi에 연결할 때 연결하려는 VPN을 선택하십시오. 이 네트워크에 연결할 때마다 Ubuntu는 해당 VPN에 연결합니다. :)

나를 위해 작동합니다. 나는 그것이 다른 모든 사람들에게도 효과가 있기를 바랍니다. 어떤 종류의 텍스트 편집기 나 코드 편집기 또는 다른 것도 필요하지 않습니다.


0

다음 Python 스크립트 Gist # 1547663을 사용하십시오 .

스크립트에 대한 첫 번째 매개 변수는 NetworkManager의 VPN 연결 이름이고 두 번째 매개 변수는 무시해야하는 네트워크의 쉼표로 구분 된 이름입니다 (예 : 집에서 VPN 연결 사용은 쓸모가 없습니다).

부팅시 설치하고 실행하는 예 :

git clone git://gist.github.com/1547663.git /home/user/autovpn/
echo "python /home/user/autovpn/autovpn.py 'myvpn' 'Auto homenetwork,Auto worknetwork' > /var/log/autovpn.log&" > /etc/rc.local
/etc/rc.local

이제 네트워크 (WiFi 또는 이더넷)에 연결하면 VPN 연결 설정도 시도합니다.


1
이 접근 방식은 백그라운드 프로세스가 항상 활성화되어 있기 때문에 덜 우아하다고 생각하지만 @hugoheden의 답변과 같이 이벤트 중심 일 수 있습니다.
gertvdijk

그의 답변 이상으로 VPN 재 연결 및 사용자가 VPN 연결을 수동으로 비활성화하는 경우도 처리합니다 (이 경우 VPN을 다시 연결하려고 시도해서는 안 됨)
iElectric

0

디스패처 스크립트가 더 이상 필요하지 않습니다! 14.04 (Trusty Tahr)에서는 NetworkManager GUI에서 자동 연결 옵션을 설정 한 후 다음 단계를 수행하면됩니다.

VPN 연결을위한 구성 파일에 vpn-secrets를에 저장하십시오 /etc/NetworkManager/system-connections/YourVPNConnectionName.

설정 파일 IPSec secret-flags=0Xauth password-flags=0설정 파일에서 이를 수행 할 수 있습니다 . 그런 다음 NetworkManager GUI로 이동하여 VPN 연결 설정을 다시 저장하십시오. 이제 [vpn-secrets]라는 섹션이 구성 파일에 있어야합니다. 다시 확인하면 자동 연결이 작동합니다!


0

맨 페이지 목록에도 불구하고 nmcli con status 가 유효한 명령으로 되어 위의 해결책 Hugo Heden은 오류 를 반환합니다."Error: Object 'status' is unknown, try 'nmcli help'"

nmcli 1.2.2 (nmcli -v )를 사용하고 있으며 다음을 테스트하고 수정 /etc/NetworkManager/dispatcher.d/vpn-up했으며 매력처럼 작동했습니다.

#! /bin/bash

REQUIRED_CONNECTION_NAME="<name-of-connection>"
VPN_CONNECTION_NAME="<name-of-vpn-connection>"


default_conn=$(nmcli con show --active | grep "${REQUIRED_CONNECTION_NAME}")
vpn_conn=$(nmcli con show id | grep "${VPN_CONNECTION_NAME}")
if [ "${default_conn}" -a ! "${vpn_conn}" ];
then
    nmcli con up id "${VPN_CONNECTION_NAME}"
fi

참고 : nmcli con show모든 연결 이름이 네트워크 연결 GUI에 나열된 것과 항상 같지는 않으므로 모든 연결 이름을 볼 수 있습니다.


OP는 우분투에 대해 묻고 있습니다.
fosslinux

Kali와 Ubuntu는 모두 데비안 기반이므로 솔루션이 동일합니다. 방금 진행하여 Ubuntu 15.10 인스턴스에서 이것을 테스트했으며 nmcli 오류는 위에서 언급 한 것과 동일합니다. 솔루션도 똑같이 작동했습니다. 15.10 상자에 설치된 nmcli 버전은 1.0.4입니다.
jw00druff

0

터미널을 선호한다면 nmcli . 다음 명령을 사용하여 수행했습니다.

먼저 업데이트하려는 VPN 연결을 찾아서 엽니 다.

➜  ~ nmcli c show --active |grep vpn
MyVPN           115ae594-aa91-4d13-8c92-421af245f935  vpn     wlp61s0         
➜  ~ nmcli c edit MyVPN

그러면 nmcli 프롬프트가 열리고 여기에서 다음과 같이 값을 쿼리하고 설정할 수 있습니다.

===| nmcli interactive connection editor |===
...
nmcli> print connection.autoconnect
connection.autoconnect: no
nmcli> set connection.autoconnect yes
nmcli> save persistent
Saving the connection with 'autoconnect=yes'. That might result in an immediate activation of the connection.
Do you still want to save? (yes/no) [yes] yes
Connection 'MyVPN' (115ae594-aa91-4d13-8c92-421af245f935) successfully updated.

그리고 당신은해야합니다!


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