2012-05-19 9 views
20

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

मैं कोशिश की है सेट:

 
ClientAliveInterval 3600 
ClientAliveCountMax 10 

ही परिणाम

क्यों सत्र समय की एक छोटी अवधि के लिए "जीवित रहने के"? मैं इस टाइमआउट को कैसे नियंत्रित कर सकता हूं?

उत्तर

13

मैं इस सवाल का जवाब यह टीसीपी keepalive सेटिंग्स पर निर्भर करता पाया):

sysctl -A | grep net.inet.tcp 
  • net.inet.tcp.keepidle - समय की राशि, मिलीसेकेंड में, (टीसीपी) कनेक्शन keepalive जनसंपर्क के पहले निष्क्रिय होना चाहिए कि मोटा (यदि सक्षम है) भेजा जाता है।

  • net.inet.tcp.keepintvl - अंतराल, मिलीसेकेंड में, दूरस्थ मशीन के लिए भेजा keepalive जांच के बीच। TCPTV_KEEPCNT (डिफ़ॉल्ट 8) जांच के बाद, कोई प्रतिक्रिया नहीं के बाद, (टीसीपी) कनेक्शन गिरा दिया जाता है।

  • net.inet.tcp.always_keepalive - मान लें कि SO_KEEPALIVE सभी टीसीपी कनेक्शन पर सेट है, कर्नेल समय-समय पर कनेक्शन को सत्यापित करने के लिए रिमोट होस्ट को एक पैकेट भेज देगा।

इसलिए सूत्र अधिकतम टीसीपी निष्क्रिय कनेक्शन समय की गणना करने पीछा कर रहा है:

net.inet.tcp.keepidle + (net.inet.tcp.keepintvl x 8) 

परिणाम मिलीसेकेंड में है। इसलिए, द्वारा

net.inet.tcp.keepidle = 10000 net.inet.tcp.keepintvl = 5000 net.inet.tcp.always_keepalive = 1 (must be 1 always) 

प्रणाली स्थापित करने के लिए एक कॉल डिस्कनेक्ट हो जाएगा TCP कनेक्शन के लिए मर चुका है जब: 10000 + (5000 x 8) = 50000 msec (50 सेकंड)।स्टार्टअप पर सिस्टम को इन सेटिंग्स को याद रखने के लिए, आपको उन्हें /etc/sysctl.conf फ़ाइल

+2

क्या यह सर्वर पक्ष पर लागू किया जाना है? – netvope

+0

मैं अभी तक इसे करने की कोशिश नहीं की है, लेकिन मुझे लगता है हाँ, सर्वर साइड: [टीसीपी KeepAlive] (http://jampad.net/Library/tcpipprot/ch17.html): तो उपयोगकर्ता थे स्थापित करने के लिए कनेक्शन, कुछ काम करें, फिर दिन के अंत में कंप्यूटर को बंद कर दें, लॉग ऑफ किए बिना, आधा खुला कनेक्शन छोड़ा जाएगा। यदि क्लाइंट गायब हो जाता है, तो सर्वर के अंत में आधे खुले कनेक्शन को छोड़कर, और सर्वर क्लाइंट से कुछ डेटा की प्रतीक्षा कर रहा है, सर्वर हमेशा के लिए इंतजार करेगा। रखरखाव सुविधा का उद्देश्य सर्वर पक्ष से इन अर्ध-खुले कनेक्शन का पता लगाने के लिए है। –

+0

क्या मेरी नींद प्रणाली के लिए प्रॉक्सी होना संभव है जो सर्वर पर पैकेट भेजना जारी रख सकता है? इस तरह सोते समय भी सत्र को जीवित रखा जा सकता था। – sudeepdino008

1

कभी-कभी, कोई डेटा प्रसारित होने पर सत्र बंद हो जाते हैं। htop छोड़ने से आमतौर पर मेरे एसएसएच कनेक्शन बंद होने से रोकता है, साथ ही उपयोगी वास्तविक समय की जानकारी प्रदान करता है।

रखरखाव एक ही चीज़ करना चाहिए। आप अंतराल को कम करने की कोशिश कर सकते हैं (दो रखवाली के बीच देरी) 60 की तरह कुछ, देखें कि यह कुछ भी बदलता है या नहीं।

+0

यदि कंप्यूटर सो रहा नहीं है तो एसएसएच सत्र ठीक हैं, लेकिन मैं सोने के बाद जागने के बाद उसी सत्र का फिर से उपयोग करना चाहता हूं। यह कम नींद के समय के लिए काम करता है लेकिन लंबे समय तक नहीं। –

+1

शायद आप हाइबरनेशन के दौरान एसएसएच सत्र खोल नहीं सकते हैं - कंप्यूटर सो रहा है तो रखरखाव नहीं भेजा जाएगा। स्क्रीन जाने का तरीका है: http://www.gnu.org/software/screen/ – Gyscos

6

यदि आप रिमोट सत्र को जीवित रखने के लिए एक सुरुचिपूर्ण समाधान चाहते हैं, तो आपको screen उपयोगिता की जांच करनी चाहिए। इस उपयोगिता का उपयोग करते समय आप अपने कंप्यूटर को लॉगआउट या शट डाउन करने के बाद भी अपने रिमोट प्रोग्राम्स को चला सकते हैं। फिर आप बाद में अपने उपलब्ध screen सत्र को फिर से कनेक्ट कर सकते हैं।

स्क्रीन को मूल बातें सीखने के लिए कुछ समय चाहिए, लेकिन जब आप इसे संभालेंगे, तो आप देखेंगे कि यह कितना शक्तिशाली है।

आप स्क्रीन का उपयोग करने पर एक ट्यूटोरियल के लिए इस लिंक की जाँच कर सकते हैं:

(FreeBSD 4.8 एक अप और 5.4 उपलब्ध टीसीपी सेटिंग्स की सूची के लिए: http://www.thegeekstuff.com/2010/07/screen-command-examples/

+0

वास्तव में एक सुरुचिपूर्ण समाधान है, लेकिन मेरे प्रश्न का उत्तर नहीं देता है। सुझाव के लिए धन्यवाद, मैं इसे आज़मा दूंगा। –

+5

मैं नया [tmux] (https://tmux.github.io/) विकल्प पसंद करता हूं। –

+0

http://bphogan.com/2012/06/15/tmux/ –

5

एक और संभावित समाधान mosh है, जो बिल्कुल एसएसएच नहीं है, लेकिन जब आपका कंप्यूटर सो जाता है, या फिर भी बदलने के बाद भी आपका खोल कनेक्शन जीवंत रहता है आईपी ​​पते

+3

'मोश' के साथ समस्या यह है कि इसे फ़ायरवॉल पर खोले जाने वाले यूडीपी बंदरगाहों की एक बड़ी श्रृंखला की आवश्यकता होती है। यह बहुत से लोगों के लिए एक समस्या है। तकनीकी रूप से – e40

+0

, एसएसएच सत्र पर यूडीपी यातायात को 'शशटल' करना संभव है, और फिर 'मोश' शुरू करें – danbst

2

एक और समाधान autossh का उपयोग करना है, जो मूल रूप से आपके एसएसएच सत्र पर नज़र रखता है और जैसे ही यह बाधित होता है (जैसे नींद चक्र के बाद, लेकिन यदि आप थोड़ी देर के लिए वाईफाई कनेक्शन खो देते हैं) उदाहरण के लिए)। यह विशेष रूप से अग्रेषित बंदरगाहों/एसएसएच सुरंगों के लिए अच्छी तरह से काम करता है।

यहां एक ट्यूटोरियल है: http://linuxaria.com/howto/permanent-ssh-tunnels-with-autossh

संबंधित मुद्दे