SSH कनेक्शन नेटवर्क रीस्टार्ट होने से कैसे बचता है?


63

लिनक्स SSH शेल से, /etc/init.d/network restartनेटवर्क सेवा को पुनरारंभ करने के लिए टाइप करें।

मुझे उम्मीद है कि नेटवर्क सेवा के कम होने के बाद मेरा SSH कनेक्शन मर जाएगा। लेकिन यह नहीं है। बहुत ही शांत। लेकिन लिनक्स इसे कैसे प्राप्त करता है? सेवा के पुनरारंभ के दौरान यह मेरे SSH कनेक्शन को कैसे जीवित रखता है?

जवाबों:


69

कुछ खास नहीं करने से ऐसा होता है। टीसीपी कनेक्शन की तुलना में नेटवर्क कम समय में पुनरारंभ होता है, इसलिए टीसीपी कनेक्शन "आउटेज" से बचता है उसी तरह यह किसी भी क्षणिक नेटवर्क आउटेज से बच जाएगा।

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


1
डेविड, तो इसका मतलब है कि टीसीपी / आईपी स्टैक को पुनरारंभ नहीं किया गया है, है ना? क्योंकि अगर ऐसा होता, तो सर्वर SSH सॉकेट का ट्रैक खो देता और sshd चाइल्ड प्रोसेस (धन्यवाद Nils) समाप्त हो जाता। जो अगला सवाल लाता है: कौन सी सेवा सॉकेट्स का प्रबंधन करती है? TIA।
सर्ज वॉटियर

@ डेविड Schwartz - टाइमआउट को बदलने के लिए मैं किन मापदंडों का उपयोग कर सकता हूं? मुझे वर्तमान टाइमआउट मान कैसे पता चलेगा? और क्या यह सर्वर साइड, या क्लाइंट साइड पर कॉन्फ़िगर किया गया है?
मार्टिन वेगाटर

@MartinVegter आप वास्तव में टीसीपी कनेक्शन के समय मापदंडों को बदलना नहीं चाहते हैं क्योंकि उन्हें दोनों तरफ से समन्वय करना होगा और उनके साथ खिलवाड़ करना पैकेट नुकसान को संभालने के लिए टीसीपी की क्षमता को प्रभावित कर सकता है। आप कनेक्शन को ठीक करके टीसीपी कनेक्शन के नुकसान को मूल रूप से बर्दाश्त करने के लिए सिस्टम को डिजाइन करना बेहतर समझते हैं।
डेविड श्वार्ट्ज

11

SSHD कनेक्शन पर एक बच्चे की प्रक्रिया की मांग करता है। SSHD या पूरे नेटवर्क को पुनरारंभ करने पर यह चाइल्ड प्रोसेस नहीं मरेगा। यही कारण है कि आप ssh और / या इसके कॉन्फ़िगरेशन को अपडेट कर सकते हैं, a करें service sshd restartऔर अभी भी अपने पुराने ssh-session से पुरानी सेटिंग्स से जुड़े रहें। इसके अलावा ssh छोटे नेटवर्क आउटेज से अच्छी तरह से ठीक हो जाता है।


2
डेविड Schwartz द्वारा दिए गए कारण के लिए SSH 'छोटे नेटवर्क आउटेज' के बारे में भी नहीं जानता है । यह विशेष रूप से एसएसएच की संपत्ति नहीं है।
user207421

मुझे यकीन नहीं है कि अगर ssh-side पर थोड़ी भी प्रोग्रामिंग शामिल नहीं है। मूल रूप से सभी टीसीपी सेवाओं को दोष-सहिष्णु होना चाहिए - कई नहीं हैं। आवेदन में शामिल एक अतिरिक्त रिट्री तंत्र होने की आवश्यकता है - फिर सेवा "मध्यम" आउटेज के रूप में अच्छी तरह से बच सकती है।
निल्स

3
जैसा कि EJP द्वारा समझाया गया है, आपका उत्तर सही है लेकिन अप्रासंगिक है।
गिलेस

3
यह उत्तर मेरे लिए उपयोगी था क्योंकि इसने इस अंतर्दृष्टि को जोड़ा कि sshdनीचे जाने से बचने के लिए क्या करता है service sshd restart। यदि आप अपडेट sshd(सुरक्षा अद्यतन आदि) करते हैं, तो बच्चे की प्रक्रियाएं अभी भी मूल कोड (प्री-अपडेट) पर चल रही होंगी, लेकिन बाधित होने के बजाय सेवा प्रदान करना जारी रखेंगी। मुझे लगता है कि मुख्य sshdप्रक्रिया के लिए सुनने वाले सॉकेट की उपलब्धता बहुत संक्षिप्त रूप से बाधित है, हालांकि, जब पहली बाल प्रक्रिया समाप्त हो जाती है और नेटवर्क इंटरफ़ेस क्षण भर के लिए पोर्ट के रूप में इंगित करता है।
एलक्विक्सोटिक

1
@ नील मुझे पता है कि आपने ऐसा लिखा था। लेकिन इससे औसत पाठक सोचता है कि फोर्किंग प्रासंगिक है। लेकिन यही बात उन कार्यक्रमों के लिए भी होती है, जो कांटे नहीं लगाते। आपका उत्तर कुछ इस तरह है: "क्योंकि लोहा लोहे से अधिक मजबूत होता है, सेब लाल होते हैं"
डैनियल एल्डर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.