सर्वर मशीन पर वीपीएन में लॉग इन करने के बाद एसएसएच कनेक्शन खो दिया है


14

मुझे एक समस्या का सामना करना पड़ा जिसका मैं सामना नहीं कर सकता। जब मैं एसएसएच पर एक वीपीएस पर लॉग इन करता हूं और उस वीपीएस पर वीपीएन कनेक्शन को स्थापित करने का प्रयास करता हूं, तो वीपीएस और मेरी मशीन के बीच एसएसएच कनेक्शन खो जाता है। मुझे लगता है कि क्योंकि वीपीएन सेटिंग्स द्वारा मार्ग बदल दिया गया है। इसे कैसे रोका जाए?


वीपी स्थापना के बाद एसएसएच से जुड़ने के बारे में क्या? : p आप सही हैं कि ऐसा इसलिए होता है क्योंकि VPN रूटिंग पाथ को ओवरराइट कर देता है। आप क्या कर सकते हैं अपने मूल रास्तों को अछूता रखें और अतिरिक्त वीपीएन पथ जोड़ें (जब तक आप अपने वीपीएस को प्रॉक्सी के रूप में उपयोग करना चाहते हैं। यह एक और कहानी है)। आप किस क्लाइंट का उपयोग करते हैं?
निकोलाइडिस फोटिस

"वीपीएस पर वीपीएन कनेक्शन स्थापित करने का प्रयास करें" से आपका क्या मतलब है? आप अपनी मशीन से VPS पर एक Openvpn सर्वर से कनेक्ट कर रहे हैं? आपका VPS तीसरे होस्ट पर चल रहे Openvpn सर्वर से जुड़ रहा है? इस अंतिम मामले में, ऐसे वीपीएन कनेक्शन कुछ मार्गों को वापस ला रहे हैं? इसके अलावा, कृपया पुष्टि करें कि आपके VPS तक पहुंचने के लिए कोई NAT अनुवाद नहीं हैं (इसके इंटरफ़ेस पर कॉन्फ़िगर किया गया IP पता वही है जो आप SSH कनेक्शन में निर्दिष्ट कर रहे हैं?
Damiano Verzulli

@NikolaidisFotis वीपीएन के चलने के बाद से मैं कनेक्ट नहीं कर पा रहा हूं। मैं Openvpn क्लाइंट का उपयोग करता हूं। --route-noexecसर्वर द्वारा धकेल दिए गए मार्गों को अनदेखा करने का एक विकल्प है लेकिन, जैसा कि आपने उल्लेख किया है, यह तब मदद नहीं करता है जब मैं वीपीएन को प्रॉक्सी के रूप में उपयोग करना चाहता हूं ...
22

@DamianoVerzulli दूसरा विकल्प, हाँ मार्गों को धक्का दिया जाता है (लेकिन मुझे लगता है कि यह तब से किया जाना चाहिए क्योंकि मुझे वीपीएन को मशीन के मूल आईपी पते को बंद करने के लिए प्रॉक्सी की तरह काम करने की आवश्यकता है), और कोई NAT
mic22

जवाबों:


6

आपको अपने VPS पर OpenVPN क्लाइंट की कॉन्फ़िगरेशन फ़ाइल में route-nopullविकल्प (और redirect-gatewayयदि वह मौजूद है तो हटा दें ) जोड़ने की आवश्यकता है ।

वीपीएन सर्वर से जुड़ने का यह तरीका आपके वीपीएस पर किसी भी मार्ग को संशोधित नहीं करेगा, इसलिए आप उन लोगों को सेट कर पाएंगे जिनकी आपको जरूरत है।


अरे, इस सलाह के लिए धन्यवाद, लेकिन अब मैं tun0 के माध्यम से इंटरनेट तक नहीं पहुंच सकता। मुझे लगता है कि मुझे एक प्रवेश द्वार याद आ रहा है। किसी भी विचार कैसे tun0 के लिए एक प्रवेश द्वार जोड़ने के लिए? inet addr:10.56.10.6 P-t-P:10.56.10.5 Mask:255.255.255.255
Ifconfig

आपको मैन्युअल रूप से अपने डिफ़ॉल्ट आईएसपी गेटवे के माध्यम से वीपीएन सर्वर के लिए एक मार्ग जोड़ने की आवश्यकता है, फिर अन्य सभी ट्रैफ़िक के लिए 10.56.10.5 के माध्यम से डिफ़ॉल्ट गेटवे जोड़ें
Anubioz

मुझे क्षमा कीजिये, क्या? मुझे कुछ पता नहीं है कि आपने अभी क्या कहा है। क्या आप एक उदाहरण दे सकते हैं?
गृहिणी

मुझे केवल स्पष्ट करना चाहिए - मैं टू0 के माध्यम से डिफ़ॉल्ट मार्ग नहीं बनना चाहता, लेकिन मुझे इंटरनेट का उपयोग करने के लिए ट्यून की आवश्यकता है।
हाउसमेड

@Housemd hm आपको अपने आप को इंटरनेट के माध्यम से ट्यून 0 के माध्यम से इंटरनेट एक्सेस की आवश्यकता है या आपको अन्य स्थानों से इंटरनेट एक्सेस के लिए ट्यून 0 के माध्यम से जुड़े ग्राहकों की आवश्यकता है?
एबियोज़

4

आइए निम्नलिखित परिदृश्य पर विचार करें:

  1. आपके VPS में एक एकल ईथरनेट इंटरफ़ेस है, जिसे IP पता 4.3.2.1/24 के साथ कॉन्फ़िगर किया गया है;
  2. आपका VPS एक डिफ़ॉल्ट गेटवे 4.3.2.254 के माध्यम से इंटरनेट का उपयोग कर सकता है
  3. आपके VPS ने अभी तक किसी भी OpenVPN कनेक्शन को सक्रिय नहीं किया है; इसलिए कोई ट्यून इंटरफ़ेस सक्रिय नहीं हैं

ऐसे परिदृश्य में, आपकी मशीन से (मान लीजिए कि आपकी मशीन 9.8.7.6/24 है, def-gw 9.8.7.254 के साथ) आप सफलतापूर्वक 4.3.2.1 पर SSH कनेक्शन स्थापित कर सकते हैं। इसलिए दोनों मेजबान 4.3.2.1 और 9.8.7.6 सफलतापूर्वक एक-दूसरे तक पहुंच सकते हैं।

अब, ऐसे SSH कनेक्शन की स्थापना के साथ, आइए मान लें:

  1. आपने अपने VPS 4.3.2.1 से OpenVPN कनेक्शन लॉन्च किया है;
  2. इस तरह, एक नया ट्यून इंटरफ़ेस को डायनामिक रूप से कॉन्फ़िगर किया जाएगा (मान लीजिए कि इसे 10.10.10.2 आईपी सौंपा जाएगा, 10.10.10.1 PTP के साथ)।

इस स्तर पर:

  • यदि आपके स्थानीय VPS के लिए किसी भी मार्ग को दूरस्थ OpenVPN सर्वर से नहीं धकेला जाएगा, तो रूटिंग की अवधि में कुछ भी नहीं बदलेगा, और आपका SSH कनेक्शन बिना किसी समस्या के जीवित रहेगा। इस मामले में, वीपीएन को हटाने वाला एकमात्र ट्रैफ़िक दूरस्थ ओपनवीपीएन सर्वर (10.10.10.1) की ओर निर्देशित है;

  • यदि दूरस्थ OpenVPN सर्वर कुछ मार्ग को पीछे धकेल देगा, और निश्चित रूप से यदि VPS डिफ़ॉल्ट-गेटवे 10.10.10.1 (दूरस्थ OpenVPN समापन बिंदु) के साथ बदल दिया जाएगा, तो आपको समस्याएँ हो सकती हैं। इस मामले में आप वीपीएन के भीतर सभी आउटगोइंग आईपी ट्रैफ़िक (ओपनवीपीएन के अपवाद के साथ) को टनल कर रहे हैं।

इस दूसरे मामले में (वीपीएन कनेक्शन स्थापित करने के बाद डीईएफ-जीडब्ल्यू की जगह), असममित रूटिंग के कारण आपका पिछला एसएसएच कनेक्शन "हैंग" होगा।

  • आपकी मशीन (9.8.7.6) से VPS (4.3.2.1) तक ट्रैफ़िक पिछले गर्त में बहेगा, कभी भी नहीं बदला जाएगा;
  • VPS (4.3.2.1) से आपकी मशीन पर आवागमन (9.8.7.6):
    • वीपीएन के बिना (इसलिए, शुरू में) 4.3.2.254 गेटवे के माध्यम से रूट किया गया था;
    • वीपीएन लिंक की स्थापना के बाद, संबंधित डेफ-जीडब्ल्यू प्रतिस्थापन के साथ, वीपीएन (10.10.10.1) के माध्यम से रूट किया जाता है।

दूसरे शब्दों में: जैसे ही वीपीएन लिंक स्थापित होता है, आपकी मशीन से वीपीएस से वापसी का मार्ग बदलने वाला है और ... यह अच्छी बात नहीं है (वापसी के रास्ते में कई नेटवर्क डिवाइस, इस तरह के असममित को पहचान सकते हैं पथ और बस पैकेट छोड़)।

इसके अलावा, संभावनाएं अधिक हैं कि आपका रिमोट ओपनवीपीएन सर्वर एनएटी-बॉक्स के रूप में कार्य कर रहा है: वीपीएन से आने वाले सभी ट्रैफिक को रिमोट ओपनवीपीएन सर्वर के सार्वजनिक आईपी-पता के साथ नेट किया जाएगा। यदि यह सच है, तो चीजें अधिक नहीं हैं ... "अच्छा नहीं", लेकिन निश्चित रूप से "बुरा", जैसा कि आपके एसएसएच कनेक्शन के लिए: वापसी ट्रैफ़िक, एक अलग मार्ग के साथ वापस पाने के लिए, अपनी मशीन के साथ वापस आ रहा है एक अलग स्रोत आईपी (वीपीएन सर्वर के सार्वजनिक इंटरफ़ेस में से एक)।

इस समस्या को हल कैसे करें?

आसानी से, वास्तव में।

बस अपने वीपीएस सर्वर को वीपीएन के साथ अपनी मशीन पर ट्रैफ़िक को रूट नहीं करने का निर्देश देते हुए , बल्कि, पिछले रूट पर भरोसा करते हुए । OpenVPN शुरू करने से पहले इसे जोड़ना जितना आसान होना चाहिए:

     route add -host 9.8.7.6 gw 4.3.2.254

कहाँ पे:

  • 9.8.7.6 आपकी मशीन सार्वजनिक आईपी पता है
  • 4.3.2.254 आपके VPS का मूल डिफ़ॉल्ट गेटवे है।

पुनश्च: एक अधिक विस्तृत प्रश्न प्रदान करके, आप एक बहुत जल्दी जवाब मिल गया होगा :-)


आपके उत्तर के लिए धन्यवाद @DamianoVerzulli! डिफ़ॉल्ट गेटवे अनिर्दिष्ट है। route addऐसे 0.0.0.0 gw रिटर्न के साथ कमांडSIOCADDRT: Invalid argument
mic22

[server] Peer Connection Initiated with [AF_INET]64.251.27.139:443; TUN/TAP device tun0 opened; do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0; /sbin/ip link set dev tun0 up mtu 1500; /sbin/ip addr add dev tun0 10.200.1.251/22 broadcast 10.200.3.255; ERROR: Linux route add command failed: external program exited with error status: 2
ओपनवेप

@ mic22: मुझे आश्चर्य है कि आपके VPS का def-gw अनिर्दिष्ट हो सकता है क्योंकि इस मामले में ऐसे VPS स्थानीय सबनेट के बाहर कुछ भी नहीं पहुंचा सकते हैं (और इसका मतलब यह है कि आपकी मशीन - दोनों SSH-- और OpenVpn सर्वर के माध्यम से कनेक्ट करने में सक्षम है। - वीपीएन को स्थापित करने में सक्षम - "स्थानीय" होना चाहिए और, जैसे, काफी बेकार!)। BTW: जब आप SSH के माध्यम से जुड़े होते हैं, तो आप आसानी से "netstat -rn" (0.0.0.0, दूसरे कॉलम के साथ शुरू होने वाली लाइन) के साथ def-gw प्राप्त कर सकते हैं
Damiano Verzulli

netstat -rn0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 venet0मैं जिस VPS का उपयोग कर रहा हूं उसका परिणाम Ubuntu 14.04 सर्वर के साथ एक OVH बेसिक ऑप्शन है
mic22

ifconfigऔर netstat -rnआउटपुट: goo.gl/TEZ61q
mic22

0

यह मदद कर सकता है:

अपने TCPKeepAlive=yesमें रखो/etc/ssh/sshd_config

से

man sshd_config | less +/'^ *TCPKeepAlive'

TCPKeepAlive

निर्दिष्ट करता है कि क्या सिस्टम को दूसरी तरफ टीसीपी रखने के संदेश भेजने चाहिए। यदि उन्हें भेजा जाता है, तो किसी एक मशीन के कनेक्शन या दुर्घटना की मृत्यु को ठीक से देखा जाएगा। हालांकि, इसका मतलब है कि यदि मार्ग अस्थायी रूप से नीचे है, तो कनेक्शन मर जाएगा, और कुछ लोगों को यह कष्टप्रद लगता है। दूसरी ओर, यदि टीसीपी कीपेलिव्स नहीं भेजी जाती हैं, तो सत्र सर्वर पर अनिश्चित काल तक लटका रह सकता है, जिससे `भूत 'उपयोगकर्ता और सर्वर संसाधनों का उपभोग करते हैं।

डिफ़ॉल्ट yes'' (to send TCP keepalive messages), and the server will notice if the network goes down or the client host crashes. This avoids infinitely hanging sessions. To disable TCP keepalive messages, the value should be set toकोई '' नहीं है।


I'v के पास पहले से ही TCPKeepAliveविकल्प था, yesइसलिए यह उचित समाधान नहीं है
mic22

0

मेरे पास यह समस्या थी और सभी अनुशंसित समाधानों की कोशिश की, और फिर भी, मेरी समस्या हल नहीं हुई!

कई प्रयासों के समाधान के बाद, मैंने screenकमांड का उपयोग किया । (मेरा वीपीएन क्लाइंट सिस्को-कोई-कनेक्ट है)।

$ screen -R VPN
$ openconnect -b "your server"

अपना क्रेडेंशियल प्रदान करने के बाद, तुरंत ctrl + a + d दबाएं और अपने सत्र पर वापस जाएँ।


0

व्यक्तिगत रूप से मैं एसएसपी के सभी कनेक्शनों को वीपीएन के माध्यम से रूट करना पसंद करता हूं। वीपीएन स्थापित होने से पहले सक्रिय ssh कनेक्शन के मामले में, मार्ग परिवर्तित होने के कारण इसे फिर से कनेक्ट करना होगा।

मैं autossh आपके ssh क्लाइंट कॉन्फ़िगरेशन के तहत उपयोग करने की सलाह देता हूं.ssh/config

Host *
   ServerAliveInterval 300
   ServerAliveCountMax 2
   BatchMode yes
  • BatchMode ऑटो-पुनः कनेक्ट करने के लिए खड़ा है
  • ServerAlive का मतलब Alive रखना है

-1

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

मार्ग ऐड -होस्ट अपने-मशीन-पब्लिक-आईपी gw सर्वर-गेटवे-आईपी देव eth0

your-machine-public-ip: आपकी मशीन का IP जहाँ से आप SSH कर रहे हैं। सर्वर-गैटवे-आईपी: गैटवे / राउटर उस सर्वर का आईपी

उपरोक्त कमांड वीपीएन सर्वर के माध्यम से दिए गए गेटवे के माध्यम से यातायात को पुनर्निर्देशित करेगा।


यह भ्रामक है, और भाषा इसके पीछे की ओर प्रतीत होती है। क्या आप SSH लक्ष्य के IP पते और स्थानीय कार्य केंद्र के डिफ़ॉल्ट गेटवे के साथ कोई मार्ग नहीं जोड़ना चाहेंगे?
ralayter
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.