कार्यालय सर्भरमा रहेको एपले localhost मा MySQL सँग जोडिन्छ, तपाईं त्यो होस्टनाम डेस्कटप क्लाइन्टमा प्रतिलिपि गर्नुहुन्छ, र जडान या त असफल हुन्छ वा अर्को डेटाबेस खोल्छ। VPN ले शब्दको अर्थमा केही बदलेन: localhost अझै पनि क्लाइन्ट चलाउने मेसिनलाई नै जनाउँछ। VPN ले प्याकेट सार्यो, इन्टरफेस होइन। कुनै पनि रुट छुनु अघि ल्यापटप कुन अन्त्य बिन्दुसम्म पुग्नुपर्ने हो त्यो निर्णय गर्नुहोस्।

चरण 1: ल्यापटप कुन अन्त्य बिन्दुसम्म पुग्नुपर्ने हो त्यो निर्णय गर्नुहोस्

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

सिधा पहुँचका लागि, डेटाबेस होस्टको आफ्नै निजी नाम वा ठेगाना र त्यसको पोर्ट त्यसलाई चलाउने व्यक्तिबाट लिनुहोस्। VPN गेटवेको ठेगाना डेटाबेसको ठेगाना होइन, त्यही मेसिन नभएसम्म। त्यसपछि श्रोता साँच्चै त्यो इन्टरफेसमा बाँधिएको छ भनी पुष्टि गर्नुहोस्, किनकि इन्टरफेसतर्फको रुटले त्यसमा श्रोता बनाउँदैन।

चरण 2: श्रोता स्थानीय रहेमा मात्र पोर्ट फर्वार्ड गर्नुहोस्

यदि डेटाबेस loopback मा मात्र रहनुपर्ने हो भने, यसलाई SSH मार्फत फर्वार्ड गर्नुहोस् र स्थानीय छेउलाई पनि loopback मा बाँध्नुहोस्। बायाँतिरको बाइन्ड ठेगाना तपाईंको ल्यापटपको हो; दायाँतिरको लक्ष्य SSH सर्भरको पट्टिबाट व्याख्या गरिन्छ, OpenSSH सन्दर्भ वर्णन गरेझैं। यी दुई भूमिका उल्टाउनु नै फर्वार्ड चलिरहेको देखिने तर केहीसँग जोडिने नगर्ने सामान्य कारण हो।

ssh -N -o ExitOnForwardFailure=yes -L 127.0.0.1:13306:127.0.0.1:3306 [email protected]
ss -ltn 'sport = :13306'

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

यदि डेटाबेस loopback मा मात्र रहनुपर्ने हो र तपाईं SSH प्रयोग गर्न सक्नुहुन्न भने रोक्नुहोस्। त्यसपछि सिधा पहुँच गलत डिजाइन हो, थोपर्ने कन्फिगरेसन होइन।

चरण 3: क्लाइन्टलाई TCP मा बाध्य गर्नुहोस्

Unix मा localhost दिइएको MySQL क्लाइन्टले पूर्वनिर्धारित रूपमा Unix सकेट छान्छ, त्यसैले पोर्ट मात्र बदल्दा यो तपाईंको फर्वार्डसँग कुनै सम्बन्ध नभएको सकेट खोजिरहन सक्छ। स्पष्ट TCP प्रोटोकल र loopback ठेगाना प्रयोग गरी क्लाइन्टलाई तपाईंको फर्वार्डिङ पोर्टमा जडान खोल्न लगाउनुहोस्।

mysql --protocol=TCP --host=127.0.0.1 --port=13306 --user=DB_USER --password

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

उपकरणलाई TCP मा बाध्य गर्न सकिँदैन भने रोक्नुहोस्। त्यसपछि अर्को क्लाइन्ट प्रयोग गर्नुहोस्, वा निजी श्रोतामा सिधा पहुँच प्रयोग गर्नुहोस्।

चरण 4: तपाईं वास्तवमा कुन अन्त्य बिन्दुसम्म पुग्नुभयो प्रमाणित गर्नुहोस्

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

mysql --protocol=TCP -h 127.0.0.1 -P 13306 -u DB_USER -p -e "SELECT @@hostname, @@port, @@socket"

तपाईंले कुन अन्त्य बिन्दु प्रयास गर्नुभयो अभिलेख गर्नुहोस्: स्थानीय Unix सकेट, तपाईंको फर्वार्डिङ पोर्ट वा निजी श्रोता। यी तीन असफलताका उपाय फरक छन्, र क्लाइन्ट अझै गलत localhost सँग बोलिरहेको बेला VPN रुट बदल्नु व्यर्थ श्रम हो। टिप्पणीमा SSH प्रमाणीकरण र डेटाबेस प्रमाणीकरण पनि अलग राख्नुहोस्, किनकि डेस्कटप क्लाइन्टबाट एउटाको असफलता अर्कोको असफलता जस्तै देखिन्छ। त्यसपछि काम सकिएपछि फर्वार्ड हटाउनुहोस्।

अन्त्य बिन्दु, क्लाइन्ट प्रोटोकल, सर्भरले देखेको स्रोत ठेगाना र त्यसलाई अनुमति दिने अनुमतिको नाम बताउन सक्दा सूची सकिन्छ। चार तथ्य, र अर्को जडान समस्या दिउँसोको सट्टा केही मिनेटमा टुङ्गिन्छ।

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