तपाईं नजिक देखिने सर्भर छान्नुहुन्छ, जडान थिच्नुहुन्छ, र नयाँ टनेल उठ्नुअघि नै ब्राउजर लोड हुन छाड्छ। आइकन जोडिँदै गरेको अवस्थामा जान्छ र प्रत्येक ट्याबको समय सकिनेसम्म त्यहीँ रहन्छ। यो रोकावट सामान्यतया kill switch को डिजाइनअनुसारको काम हो: क्लाइन्टसँग ट्राफिक पठाउने टनेल नहुँदासम्म त्यो अवरुद्ध रहन्छ। रोकावट स्वीकार्य छ कि छैन भन्ने ती सेकेन्डमा क्लाइन्टले के गर्छ र ब्लक हट्यो भनेर भन्दा साँच्चै हट्छ कि हट्दैन भन्नेमा निर्भर गर्छ।

दुई सर्भरबीच क्लाइन्ट के गर्छ

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

यहाँ क्रम गतिभन्दा महत्त्वपूर्ण छ। यदि नयाँ एन्डपोइन्टका लागि अपवादभन्दा अघि ब्लकिङ नियम लागू भए, क्लाइन्टले हात मिलाउने काम पूरा गर्न सक्दैन र समय सकिनेसम्म जोडिँदै गरेको अवस्थामा रहन्छ। यदि अपवाद पुरानो सर्भरको ठेगानाको प्रतिलिपि हो भने, नयाँ हात मिलाउने काम अरू कुनै बाहिर जाने प्याकेटजस्तै देखिन्छ र खारेज हुन्छ। दुवै अवस्था ब्राउजरबाट उस्तै देखिन्छन्, त्यसैले छ सेकेन्डपछि सुधार हुने परिवर्तन र कहिल्यै नसुधारिने परिवर्तनको कारण एउटै हुन सक्छ।

नयाँ एन्डपोइन्टलाई ब्लकमा प्वाल चाहिन्छ

टनेल बनाउन क्लाइन्टले भौतिक इन्टरफेसमार्फत नयाँ सर्भरको ठेगाना र पोर्टमा प्याकेट पठाउनुपर्छ, जस्तै सामान्य WireGuard प्रोफाइलका लागि UDP 51820 वा OpenVPN का लागि 1194 र 443, तपाईंको प्रोफाइलले जे निर्दिष्ट गरे पनि। त्यो ट्राफिक बन्न लागेको टनेलभित्र छैन, त्यसैले मिल्ने अनुमति नियम नभएसम्म पूरै उपकरणका लागि लगाइएको ब्लकले त्यसलाई निल्छ।

होस्टनाममा आधारित प्रोफाइलले दोस्रो सर्त थप्छन्: खोज आफैं। यदि क्लाइन्टले ब्लक उठ्नुअघि एन्डपोइन्ट समाधान गर्यो भने क्यास गरिएको ठेगाना प्रयोग गर्न सक्छ, तर प्रोफाइलले ठेगाना फेर्दा वा क्यास प्रविष्टि पुरानो हुँदा, हात मिलाउने काम अनुमति नियमले नढाकेको ठेगानातिर जान्छ। IPv6 ले यसलाई देखिने बनाउँछ, किनकि दोहोरो स्ट्याक भएको एन्डपोइन्टले A र AAAA दुवै रेकर्ड प्रकाशित गर्न सक्छ, र केवल v4 ठेगाना ढाक्ने अनुमति नियमले क्लाइन्टलाई अवरुद्ध v6 ठेगानाविरुद्ध फेरि प्रयास गरिरहन छाड्छ।

विकल्पका नाम र पूर्वनिर्धारित मान क्लाइन्ट र संस्करणअनुसार फरक पर्छन्, त्यसैले स्क्रिनसटबाट अनुमान नगरी आफ्नो लागि भएको अभिलेखित सूची पढ्नुहोस्। OpenVPN Connect को सेटिङ सन्दर्भ openvpn.net/connect-docs/app-settings-windows मा क्लाइन्टले आफ्ना ब्लक र विभाजित टनेल विकल्प कसरी वर्णन गर्छ भन्ने एउटा उदाहरण छ।

Fail-closed एउटा अवस्था यन्त्र हो, स्विच होइन

अधिकांश क्लाइन्टले ब्लकलाई फायरवाल नीतिका रूपमा तीन अवस्थामा व्यक्त गर्छन्: टनेल माथि, ट्राफिक टनेलबाट जान्छ र ब्लक छैन; टनेल तल, ब्लक सक्रिय; र संक्रमण, ब्लक सक्रिय सहित एन्डपोइन्टका लागि अस्थायी अपवाद। तेस्रो अवस्थामै बगहरू बस्छन्, किनकि त्यो केही सेकेन्डभित्र दुई पटक बदलिनुपर्छ, र त्यसबाट बाहिर ननिस्कनु स्थायी ब्लकजस्तै देखिन्छ।

संयन्त्र प्लेटफर्मअनुसार फरक पर्छ, असफलता पनि। Windows Filtering Platform का फिल्टरमा तौल हुन्छ, त्यसैले तपाईंको अनुमतिलाई उछिन्ने ब्लक फिल्टरले अनुमति भए पनि प्याकेट खसालिरहन्छ, र मारिएको क्लाइन्ट प्रक्रियाले छाडेका फिल्टर ले एप गएपछि पनि यन्त्रलाई अफलाइन राख्न सक्छन्। macOS क्लाइन्टले सामान्यतया pf नियमहरू एन्करमा लेख्छन्, जहाँ नियमको क्रम र छिटो निर्णयले कुन नियम लागू हुन्छ भन्ने तय गर्छ। Linux क्लाइन्टले सामान्यतया drop नीतिसहित nftables वा iptables शृंखला चलाउँछन् र एन्डपोइन्ट, टनेल इन्टरफेस र लूपब्याकका लागि स्पष्ट अनुमति दिन्छन्। Android को always-on VPN, VPN बिना जडान अवरुद्ध गर्ने विकल्पसहित, समूहमा सबैभन्दा कडा छ, किनकि सञ्चालन प्रणालीले ब्लक एपअनुसार नभई पूरै उपकरणमा लागू गर्छ।

WireGuard लाई आफ्नै टिप्पणी चाहिन्छ, किनकि AllowedIPs मार्ग छनोटक हो, अवरोधक होइन। कुन गन्तव्यहरू टनेलमा जान्छन् भन्ने त्यसले तय गर्छ; अझै टनेल नभएको प्याकेट Wi-Fi बाट बाहिर जानबाट रोक्न त्यसले केही गर्दैन। केवल WireGuard र फायरवाल नियम नभएको सेटअपमा kill switch वास्तवमा मार्गको अनुपस्थिति हो, र खारेज भएको हात मिलाउने कामपछि भौतिक इन्टरफेसबाट साँचो प्याकेट बाहिर जान सक्छ।

आइकन हेर्नुको सट्टा अन्तराल नाप्नुहोस्

अवस्था बत्ती होइन, प्याकेट हेर्नुहोस्। Linux मा एउटा टर्मिनलमा सार्वजनिक ठेगानामा ढिलो ping सुरु गर्नुहोस् र अर्कोमा भौतिक इन्टरफेसमा टनेलको यातायात पोर्ट समात्नुहोस्:

ping -i 0.2 -c 100 1.1.1.1 | tail -5

sudo tcpdump -ni eth0 'udp port 51820'

दुवै चलिरहेको बेला क्लाइन्टमा सर्भर फेर्नुहोस्। तीन कुरा महत्त्वपूर्ण छन्: ping कति बेर रोकिन्छ, समातिएको नमुनाले हात मिलाउने काम नयाँ एन्डपोइन्टसम्म पुगेको देखाउँछ कि गर्दैन, र ट्राफिक क्लाइन्टको अवस्था जोडिएको हुनुअघि कि पछि फर्कन्छ। यदि ping को अन्तराल पहिले सकियो भने, ब्लक चाँडै हटेको हो वा सूचकले स्वीकार गर्नुअघि नै टनेल उठेको हो। अन्तराल ढिलो सकियो भने, सूचक धेरै आशावादी छ।

Windows मा netsh wfp show state ले स्न्यापसट लेख्छ, जसमा क्लाइन्टले आफूलाई विच्छेदित भनिरहेको बेलासमेत अझै रहेका ब्लक फिल्टर खोज्न सकिन्छ। macOS मा sudo pfctl -sr ले लोड भएका नियम र तिनको क्रम सूचीबद्ध गर्छ। कुनै पनि स्न्यापसट क्लाइन्टको आफ्नै लगसँग जोड्नुहोस्; तपाईंको ping को समयरेखाले ब्लक ढिलो सकियो कि कहिल्यै सकिएन भन्ने बताउँछ।

सामान्य अन्धकार बनाम अड्किएको ब्लक

अलिअलि अवरोध यही सुविधाको उद्देश्य हो, त्यसैले कुनै पनि सेटिङ बदल्नुअघि वर्गीकरण गर्नुहोस्:

What you seeUsually meansNext check
Two or three seconds of timeouts, then normal browsingExpected fail-closed gapNothing to fix
State says connected, traffic stays deadBlock filter or route left behindFirewall snapshot, client log
One app dead while others workTCP session bound to the old exit addressRestart the app
LAN devices unreachable after the switchLAN exception not reappliedAllow-LAN or split-tunnel setting
New server hangs, the old one reconnectsPermit covers only the old addressResolved address of the new host, including AAAA

दोस्रो वा पाँचौं पङ्क्तिमा पर्नुभयो भने परीक्षणका लागि kill switch बन्द नगर्नुहोस्, किनकि त्यसले मार्गको बगलाई चुहावटमा बदल्छ। क्लाइन्टको सेवा पुनः सुरु गर्नुहोस्, वा प्रक्रिया मार्दा पनि फिल्टर टिक्ने ठाउँमा यन्त्र रिबुट गर्नुहोस्, त्यसपछि ब्लक हट्छ कि हेर्नुहोस्। हट्यो भने दोष ब्लकमा होइन, परिवर्तनका बेलाको सफाइमा छ।

अर्को परिवर्तनअघि चार कुरा पक्का गर्नुहोस्: एन्डपोइन्ट अनुमतिले तपाईंको प्रोफाइलले समाधान गर्ने हरेक ठेगाना परिवार ढाक्छ, क्लाइन्ट लगले संक्रमण पूरा भएको देखाउँछ, तपाईंको ping परीक्षणले आइकन होइन अन्तराल नाप्छ, र क्लाइन्ट बन्द गर्दा सामान्य जडान फर्कन्छ। परिवर्तनका बेला टिकेर पछि छाड्ने kill switch ले आफ्नो काम गर्छ। चाँडै वा कहिल्यै नछाड्ने भनेको डिबग गर्न लायक छ।

सम्बन्धित लेखहरू