రిమోట్ డేటాబేస్ యాక్సెస్: మొత్తం ఇంటర్నెట్కు ఎలా బహిర్గతం చేయకూడదు
మీ పని కంప్యూటర్ నుండి VDS పై డేటాబేస్కు కనెక్ట్ అవ్వడానికి రెండు మార్గాలు: SSH టన్నెల్ మరియు పరిమితులతో ఓపెన్ పోర్ట్. ఏది ఎంచుకోవాలి మరియు ఎలా తనిఖీ చేయాలి.
23 ఆగస్టు, 2026న నవీకరించబడింది
0.0.0.0పై వినిపిస్తూ root పాస్వర్డ్ ఉన్న డేటాబేస్ మొదటి స్కాన్ వరకే నిలిచి ఉంటుంది — అంతేకాకుండా మొత్తం అడ్రస్ రేంజ్ నిరంతరం స్కాన్ చేయబడుతుంది. అదే సమయంలో, ల్యాప్టాప్ నుండి క్లయింట్తో డేటాబేస్కు కనెక్ట్ అవ్వడం సౌకర్యంగా ఉంటుంది మరియు తరచుగా అవసరం కూడా. రెండు మార్గాలు ఉన్నాయి, వాటిలో ఒక్కదానికి మాత్రమే ప్రతికూలతలు లేవు.
పద్ధతి 1: SSH టన్నెల్ (సిఫార్సు చేయబడింది)
డేటాబేస్ 127.0.0.1కు బైండ్ అయి ఉంటుంది, బయటికి SSH తప్ప మరేమీ బహిర్గతం కాదు. మీ స్వంత కంప్యూటర్లో:
ssh -L 5433:127.0.0.1:5432 root@YOUR_ADDRESS -N
ssh -L 3307:127.0.0.1:3306 root@YOUR_ADDRESS -N
ఇప్పుడు DBeaver, TablePlus, లేదా psqlలో 127.0.0.1:5433కు కనెక్ట్ అవ్వండి. డేటాబేస్ దృష్టిలో ఇది లోకల్ కనెక్షన్లా కనిపిస్తుంది.
చాలా క్లయింట్లు టన్నెల్ను తామే సెటప్ చేసుకోగలవు: కనెక్షన్ సెట్టింగ్లలో “SSH” ట్యాబ్ ఉంటుంది. ప్యానెల్ /hosting/vds/m/<id> యొక్క “Overview” నుండి మెషిన్ అడ్రస్ను మరియు మీ కీని పేర్కొనండి.
ఈ పద్ధతి ప్రయోజనం: డేటాబేస్ లేదా ఫైర్వాల్ కాన్ఫిగరేషన్లో మీరు ఏమీ మార్చాల్సిన అవసరం లేదు.
పద్ధతి 2: పరిమితులతో ఓపెన్ పోర్ట్
ఇది చివరి మార్గం — తెలిసిన స్టాటిక్ అడ్రస్ ఉన్న బాహ్య సర్వీస్ కనెక్ట్ అయ్యే సందర్భానికి. క్రింది ప్రతి దశ తప్పనిసరి:
ufw allow from 203.0.113.10 to any port 5432 proto tcp
PostgreSQL కోసం: listen_addresses = '*' మరియు pg_hba.confలో hostssl all all 203.0.113.10/32 scram-sha-256 లైన్. MySQL కోసం: bind-address = 0.0.0.0 మరియు నిర్దిష్ట అడ్రస్కు బైండ్ చేసిన యూజర్:
CREATE USER 'app'@'203.0.113.10' IDENTIFIED BY 'long-password';
GRANT SELECT, INSERT, UPDATE, DELETE ON shop.* TO 'app'@'203.0.113.10';
TLS లేకుండా, అలాంటి కనెక్షన్ డేటాను ప్లెయిన్ టెక్స్ట్లో పంపుతుంది. మూలాన్ని పేర్కొనకుండా ufw allow 5432 అనేది “దాన్ని మొత్తం ఇంటర్నెట్కు తెరవడం” అంటే సరిగ్గా అదే.
ధృవీకరణ
మరో మెషిన్ నుండి:
nmap -Pn -p 3306,5432,6379,27017 YOUR_ADDRESS
అన్ని పోర్టులపై ఆశించిన ప్రతిస్పందన filtered లేదా closed. లోకల్గా, ఏది వినిపిస్తోంది మరియు ఎక్కడ వినిపిస్తోంది తనిఖీ చేయండి:
ss -tulpn | grep -E '3306|5432|6379'
సాధారణ పొరపాట్లు
| లక్షణం | కారణం |
|---|---|
| టన్నెల్ ద్వారా క్లయింట్ కనెక్ట్ అవ్వదు | లోకల్ పోర్ట్ ఆక్రమించబడి ఉంది — మరొకటి ఎంచుకోండి |
Host ... is not allowed to connect | MySQL యూజర్ localhostకు బైండ్ అయి ఉంది |
no pg_hba.conf entry for host | మీ అడ్రస్ కోసం నియమం లేదు |
| పోర్ట్ తెరిచి ఉంది కానీ ఏదీ ప్రతిస్పందించదు | డేటాబేస్ 127.0.0.1పై మాత్రమే వినిపిస్తుంది |
| పనిచేసింది, తర్వాత ఆగిపోయింది | మీ ప్రొవైడర్ మీకు డైనమిక్ అడ్రస్ ఇస్తున్నారు — టన్నెల్కు ఇది మరో వాదన |
మెషిన్లలో IPv6 లేదు, రెండో అడ్రస్ కూడా లేదు. “Overview” నుండి ఒకే పబ్లిక్ IPv4 అడ్రస్ కోసం అన్ని నియమాలను రాయండి — రెండు స్టాక్లతో గందరగోళం ఉండదు.