Gnome과 함께 Ubuntu 13.04를 사용하고 있으며 최근에 (열린) VPN을 설정했습니다. 기본적으로 활성화 할 수있는 방법이 있습니까? 부팅하거나 연결이 끊길 때마다 VPN을 수동으로 활성화해야합니다. 누락 된 옵션이 있습니까?
Gnome과 함께 Ubuntu 13.04를 사용하고 있으며 최근에 (열린) VPN을 설정했습니다. 기본적으로 활성화 할 수있는 방법이 있습니까? 부팅하거나 연결이 끊길 때마다 VPN을 수동으로 활성화해야합니다. 누락 된 옵션이 있습니까?
답변:
Network Manager 표시기 nm-applet (기본적으로 설치된 그놈 또는 Unity 네트워크 트레이 애플릿)을 통해 네트워크가 연결될 때 VPN에 자동으로 연결되도록 NetworkManager를 구성 할 수 있습니다.
nm-connection-editor
.이 기능을 활성화하면 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/
. 이것을하기 위해:
sudoedit /etc/NetworkManager/system-connections/<VPN>
, 여기서 <VPN>
VPN의 구성 파일 (파일 이름은 일반적으로 VPN에 할당 한 이름)입니다.password-flags=1
을 다음으로 변경하십시오.password-flags=0
이제 NetworkManager가 VPN 비밀번호 자체를 저장하고 ( man nm-settings
자세한 내용 참조) 네트워크 자동 연결이 다시 작동합니다.
nm-connection-editor
때 일반 탭 에서 연결을 편집 할 때 찾을 수 있습니다 .
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 행 전체를 넣으십시오. "추가"를 다시 클릭하십시오. 이제 재부팅하고 시도하십시오.
출처 : 소스 포지
vpnautoconnect
있습니까? 그들의 웹 사이트는 버려진 SourceForge 프로젝트 페이지이며 패키지는 매뉴얼 페이지를 제공하지 않습니다. 유망한 소리.
#!/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
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
명령:
예를 들어 vpn-auto-connector.sh라는 빈 텍스트 파일을 작성하십시오 (홈 폴더에 저장했습니다. 파일을 마우스 오른쪽 단추로 클릭하고 특성-> 권한을 선택한 후 "파일을 프로그램으로 실행 허용"을 선택하십시오 (파일을 저장해야 할 수도 있음). 컴퓨터에 여러 사용자가있는 경우 다른 곳에서 읽기 / 쓰기 / 실행 권한을 변경하십시오.)
위에서 작성한 파일로 코드를 복사하십시오. 다음 세 변수의 값을 바꾸십시오.
connection = "자동 이더넷"
vpn_connection = "내 VPN 연결"
run_interval = "60"
네트워크 관리자를 열어서 찾을 수 있습니다. 필자의 경우 connection = "Auto Ethernet"은 활성 유선 연결 (무선으로 테스트되지 않은)이고 vpn_connection = "My VPN connection"은 VPN 연결의 이름입니다. run_interval = "60"은 스크립트를 반복 할 시간 간격 (초)입니다.
응용 프로그램-> 시스템 도구-> 환경 설정-> 응용 프로그램 시작을여십시오. 적절한 이름 (예 : "VPN 자동 커넥터")을 추가하고 명령에 대해 이전에 저장 한 .sh 파일을 선택하십시오. 이제 bash 스크립트는 시작시 실행되며 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
여러 컴퓨터에서 Ubuntu 14.04 LTS를 사용하고 있습니다. 사실, 몇 가지 특별한 전제 조건이 있습니다.
나는이 매우 입증되고 신뢰할 수있는 스크립트로 작업하고 있습니다 :
그러나 일시적으로 해결할 수있는 네트워크 관리자 애플릿에는 몇 가지주의 사항이 있습니다 (기사의 문제 해결 섹션 참조).
vpnautoconnect 가 작동하지 않습니다.
@ 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 !!