VPN ద్వారా MySQL localhost: ఇది ఇప్పటికీ స్థానిక ప్రక్రియను సూచిస్తుంది
యాప్ localhost అని పిలిచే డేటాబేస్ సర్వర్లో ఉంది, మీ ల్యాప్టాప్లో కాదు. ప్రైవేట్ శ్రోత లేదా SSH ఫార్వార్డ్ ఉపయోగించి, ఆపై క్లయింట్ను TCPకి బలవంతం చేయండి.
ఆఫీస్ సర్వర్లోని యాప్ 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 ప్రామాణీకరణ మరియు డేటాబేస్ ప్రామాణీకరణను కూడా వేరుగా ఉంచండి, ఎందుకంటే డెస్క్టాప్ క్లయింట్ నుండి ఒకదాని వైఫల్యం మరొకదాని వైఫల్యంలా కనిపిస్తుంది. తర్వాత పని ముగిసినప్పుడు ఫార్వార్డ్ను తొలగించండి.
ఎండ్పాయింట్, క్లయింట్ ప్రోటోకాల్, సర్వర్ చూసిన మూల చిరునామా మరియు దాన్ని అనుమతించిన అనుమతిని చెప్పగలిగినప్పుడు జాబితా ముగుస్తుంది. నాలుగు వాస్తవాలు, తదుపరి కనెక్షన్ సమస్య మధ్యాహ్నం బదులు కొన్ని నిమిషాల్లో పరిష్కారమవుతుంది.