वीपीएन ऑटोकनेक्ट


39

Im Gnome के साथ Ubuntu 13.04 का उपयोग कर रहा हूं और मैंने हाल ही में एक (ओपन) वीपीएन स्थापित किया है। क्या डिफ़ॉल्ट रूप से इसे सक्षम करने का कोई तरीका है? हर बार जब मैं बूट करता हूं या अपना कनेक्शन खो देता हूं, तो मुझे वीपीएन को मैन्युअल रूप से सक्षम करना होगा। क्या कोई विकल्प है जो मुझे याद आ रहा है?

जवाबों:


66

नेटवर्क प्रबंधक संकेतक एनएम-एप्लेट (डिफ़ॉल्ट रूप से स्थापित GNOME या यूनिटी नेटवर्क ट्रे एप्लेट) के माध्यम से, आप नेटवर्क से कनेक्ट होने पर नेटवर्क से स्वचालित रूप से वीपीएन से कनेक्ट होने के लिए कॉन्फ़िगर कर सकते हैं।

  1. नेटवर्क ट्रे एप्लेट पर क्लिक करें और "कनेक्शन संपादित करें ..." पर क्लिक करें, या चलाएं nm-connection-editor
  2. एक नेटवर्क कनेक्शन चुनें और "संपादित करें ..." पर क्लिक करें
  3. "इस कनेक्शन का उपयोग करते समय वीपीएन से स्वचालित रूप से कनेक्ट करें" जांचें और ड्रॉप-डाउन सूची में वांछित वीपीएन का चयन करें।
  4. बचाना।

एनएम-कनेक्शन-संपादक स्क्रीनशॉट


जब इसे सक्षम किया जाता है, तो NetworkManager में एक बग होता है जो "स्वचालित रूप से इस नेटवर्क से कनेक्ट" फ़ंक्शन को तोड़ सकता है। ( संपादित करें : इस बग को अब उबंटू 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। एक वर्कअराउंड नेटवर्क फ़ाइल को विन्यास फाइल में प्लेनटेक्स्ट में पासवर्ड को स्टोर करने देना है /etc/NetworkManager/system-connections/। यह करने के लिए:

  1. एक टर्मिनल खोलें।
  2. sudoedit /etc/NetworkManager/system-connections/<VPN>, जहां <VPN>आपके वीपीएन के लिए कॉन्फ़िगरेशन फ़ाइल है (फ़ाइल नाम आमतौर पर आपके वीपीएन को सौंपा गया नाम है)।
  3. लाइन बदलें password-flags=1करने के लिएpassword-flags=0
  4. सुरषित और बहार।

NetworkManager अब खुद ही VPN पासवर्ड को स्टोर करेगा ( man nm-settingsविवरण के लिए देखें), और नेटवर्क ऑटोकनेक्ट एक बार फिर से काम करेगा।


5
यह गनोम नेटवर्क मैनेजर में मौजूद नहीं है।
पॉल Woitaschek

4
सामान्य टैब nm-connection-editorमें कनेक्शन संपादित करते समय आप इसे खोल सकते हैं ।
लोड

1
यह मेरे लिए स्वतः कनेक्शन नहीं होने का कारण बनता है। इस के लिए कोई भी समाधान है?
तमसा बार्टा

@ बर्टा जो NetworkManager में एक बग है। मैंने अपने उत्तर में वर्कअराउंड जोड़ा है।
विंसेंट यू

8

Vpnautoconnect पर एक नज़र डालें।

vpnautoconnect एक ऐसा डेमन है जो आपको स्वचालित रूप से (स्टार्टअप पर भी) पुन: कनेक्ट करने की अनुमति देता है। यह नेटवर्क मैनेजर के साथ एक वीपीएन बनाता है। यह बहुत जल्दी से फिर से कनेक्ट हो सकता है और बैंडविथ की निगरानी कर सकता है। यह पीपीपीपी और ओपनवैप कनेक्शन के साथ काम करता है।

अधिक जानकारी के लिए, और वेबसाइट पर जाएँ डाउनलोड करने के लिए ।

इसे भी आजमाएँ:

में AUTOSTART सुविधा का उपयोग करें /etc/default/openvpn

या

अपने वीपीएन कनेक्शन के यूयूआईडी का पता लगाएं।

nmcli con list | grep -i vpn

यूयूआईडी अक्षर, संख्या और डैश के साथ दूसरा कॉलम है।

एक टर्मिनल में कनेक्शन शुरू करें। बस प्रेस Ctrl+ Alt+ Tखुला टर्मिनल के लिए अपने कीबोर्ड पर। जब यह खुलता है, तो नीचे कमांड चलाएँ:

nmcli con up uuid <put you UUID here>

इसे स्टार्ट-अप पर चलाने के लिए सेट करें।

डैश पर जाएं, टाइप करें और स्टार्टअप एप्लिकेशन चुनें, जोड़ें पर क्लिक करें और ऊपर (UUID के साथ) nmcli कमांड जोड़ें। "जोड़ें" पर क्लिक करें। नाम प्रकार में जो कभी भी नाम आप उपयोग करना चाहते हैं, और कमांड में पूरी nmcli लाइन ऊपर रखें। फिर से "जोड़ें" पर क्लिक करें। अब, रिबूट करें और इसे आज़माएं।

स्रोत: SourceForge


मैंने इसे स्थापित और कॉन्फ़िगर किया है, मेरे कंप्यूटर को रिबूट किया है लेकिन यह काम नहीं करता है।
पॉल Woitaschek 17

मैंने अपने उत्तर में कुछ और जानकारी जोड़ी है।
मिच

क्या कोई दस्तावेज उपलब्ध है vpnautoconnect? उनकी वेबसाइट एक परित्यक्त SourceForge प्रोजेक्ट पेज है, और पैकेज मैन पेज प्रदान नहीं करता है। कठिन यह आशाजनक लगता है।
तमसा बार्टा

मुझे कोई भी नहीं मिल रहा है, लेकिन मैं देखता रहूंगा।
मिच

15.04 या 15.10 में दिखाने के लिए कार्रवाई सूची का नाम बदल दिया गया है
क्रॉल

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 में काम नहीं किया, और मैं केवल एक ही प्रतीत नहीं हुआ।

मैंने इसे थोड़ा शोधित किया और अपनी पहली बैश स्क्रिप्ट बनाने के लिए कुछ मौजूदा कोड को संयोजित किया। यह जांचता है कि क्या दिया गया वीपीएन कनेक्शन सक्रिय है, और नहीं तो कनेक्ट हो जाएगा। यदि यह जुड़ा हुआ है तो यह एक निश्चित समय के लिए सोएगा, जैसे 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. आपके द्वारा बनाई गई फ़ाइल के लिए ऊपर से कोड कॉपी करें। निम्नलिखित तीन चर के मूल्यों को बदलें:

    कनेक्शन = "ऑटो ईथरनेट"

    vpn_connection = "मेरा वीपीएन कनेक्शन"

    run_interval = "60"

    उन्हें नेटवर्क मैनेजर खोलकर पाया जा सकता है। मेरे मामले में कनेक्शन = "ऑटो ईथरनेट" मेरा सक्रिय वायर्ड कनेक्शन है (वायरलेस के साथ परीक्षण नहीं किया गया है) और vpn_connection = "मेरा वीपीएन कनेक्शन" मेरे वीपीएन कनेक्शन का नाम है। run_interval = "60" स्क्रिप्ट दोहराने के लिए सेकंड में समय अंतराल है।

  3. एप्लिकेशन खोलें-> सिस्टम टूल-> प्राथमिकताएं-> स्टार्टअप एप्लिकेशन। एक उपयुक्त नाम जोड़ें, जैसे "वीपीएन ऑटो कनेक्टर", और कमांड के लिए .sh फ़ाइल चुनें जिसे आपने पहले बचाया था। अब बैश स्क्रिप्ट स्टार्टअप पर चलेगी और वीपीएन कनेक्शन सक्रिय होने पर चेक करती रहेगी। आप वीपीएन कनेक्शन को डिस्कनेक्ट करके इसे आज़मा सकते हैं और इसे फिर से स्वचालित रूप से सक्रिय किया जाना चाहिए।


बहुत धन्यवाद। इस लिपि को समझना आसान है।
इवान हु

0

Vpnautoconnect Ubuntu के 12.04, 13.04 और 13.10 में ठीक काम करता है (मुझे लगता है कि 13.10 में नेटवर्क-मैनेजर में "स्वचालित रूप से कनेक्ट करें" विकल्प ठीक हो गया है और अब काम करता है)

इसलिए, यदि आपको इसे स्थापित करने या इसे प्राप्त करने में परेशानी होती है, या एक ओपन वीपीएन कनेक्शन बनाने के लिए नेटवर्क-मैनेजर के ड्रॉप डाउन मेनू में "ओपनवप्न" विकल्प नहीं मिलता है, तो आप इस टुटू का अनुसरण कर सकते हैं, जो आपको सभी देता है। चरणों, बहुत स्पष्ट और लागू करने के लिए आसान है।

यहाँ एक नज़र है

और मुझे बता देना :-)


0

यहाँ एक बहुत मजबूत और विश्वसनीय स्क्रिप्ट है:

  • जांचें कि क्या आप किसी वीपीएन से जुड़े हैं
  • यदि नहीं, तो सबसे हाल ही में सक्रिय वीपीएन से कनेक्ट करें

यह विशेष रूप से उपयोगी है यदि आप अलग-अलग वीपीएन से नियमित रूप से कनेक्ट करते हैं क्योंकि आपको फिर से कनेक्ट करने के लिए एकल वीपीएन कनेक्शन को निर्दिष्ट करने की आवश्यकता नहीं है।

#!/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 टूल, संस्करण 0.9.10.0 $ lsb_release -a कोई LSB मॉड्यूल उपलब्ध नहीं हैं। डिस्ट्रीब्यूटर आईडी: उबंटू विवरण: उबंटू १५.०४ रिलीज़: १५.०४ कोडनाम: विविड
gare

0

मैं कई मशीनों पर Ubuntu 14.04 LTS पर हूं। इस तथ्य के कारण, कि मेरे पास कुछ विशेष शर्तें हैं:

  1. मैं पासवर्ड मैनेजर में पासवर्ड सेव नहीं करना चाहता
  2. मैं एक वर्चुअलबॉक्स अतिथि का उपयोग कर रहा हूं जो नेटवर्क पर वीपीएन को फिर से जोड़ता है
  3. पासवर्ड संवाद पुन: कनेक्ट होने पर कई बार खुलता है
  4. मैं एक बैकअप वीपीएन सर्वर (फेलओवर) का उपयोग कर रहा हूं
  5. मेरे uuids के लिए एक कॉन्फ़िगरेशन फ़ाइल का उपयोग करना

मैं इस बहुत सिद्ध और बहुत विश्वसनीय स्क्रिप्ट के साथ काम कर रहा हूं:

हालांकि - हालांकि - नेटवर्क मैनेजर एप्लेट के साथ कुछ कैविट्स हैं जिन्हें मैं अस्थायी रूप से हल कर सकता हूं (लेख का समस्या निवारण अनुभाग देखें)।

vpnautoconnect मेरे लिए काम नहीं करता है।


0

@vincentYo द्वारा उत्तर सीधे आगे दिखता है, लेकिन मैं इसे पूरा नहीं कर सका, इसलिए मैंने नीचे दिया है।

Step1: शेल स्क्रिप्ट बनाएं और vpn कमांड जोड़ें

vim auto_vpn.sh

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

step2: एक sudoer फ़ाइल खोलें और कर्नेल को इस फ़ाइल के लिए पासवर्ड न पूछने के लिए कहें।

sudo vim / etc / sudoers

इस फ़ाइल के अंदर अधिकांश चीजों पर टिप्पणी की जाएगी, बस नीचे की तरह जोड़ें

उपयोगकर्ता नाम = (मूल) NOPASSWD: your_shell_script.sh

उदाहरण:

शरथ ऑल = (रूट) NOPASSWD: /home/sharath/workspace/work/src/auto_vpn.sh

चरण 3: एक क्रॉन जॉब सेट करें, जो इस शेल स्क्रिप्ट को ट्रिगर करेगा, नीचे क्रोन जॉब हर मिनट चलेगी (bcz my internet चल रहा है और बंद रहता है, इसलिए हर मिनट)

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

मैं कई दिनों से इस का उपयोग कर रहा हूँ, ubuntu 16.04 LTS में ठीक काम कर रहा है ..चाहे !!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.