−25%

Windows के सालाना भुगतान पर, 31 अक्टूबर तक। प्लान देखें

EQVPS

VPS पर PostgreSQL कैसे इंस्टॉल करें और सुरक्षित रूप से जुड़ें

Ubuntu पर PostgreSQL 16 इंस्टॉल करें, डेटाबेस और उपयोगकर्ता बनाएँ, और पोर्ट 5432 को इंटरनेट पर खोले बिना दूर से जुड़ें: SSH टनल या अनुमति सूची के ज़रिए।

PostgreSQL एक कमांड में इंस्टॉल हो जाता है। लोग ग़लती रिमोट पहुँच में करते हैं: पोर्ट 5432 पूरी दुनिया के लिए खोल देते हैं, पासवर्ड लगा देते हैं, और फिर हैरान होते हैं कि लॉग लॉगिन कोशिशों से क्यों भरे हैं। यह गाइड Ubuntu 24.04 पर Postgres इंस्टॉल करती है, एक डेटाबेस बनाती है और बाहर से जुड़ने के दो सुरक्षित तरीके दिखाती है।

1. इंस्टॉल

apt update && apt install -y postgresql
systemctl status postgresql --no-pager

Ubuntu 24.04 पर यह PostgreSQL 16 है। डिफ़ॉल्ट रूप से यह सिर्फ़ localhost पर सुनता है; जब तक कोई कारण न हो, इसे ऐसे ही रहने दें।

2. एक उपयोगकर्ता और एक डेटाबेस बनाएँ

sudo -u postgres psql <<'SQL'
CREATE USER app WITH PASSWORD 'use-a-long-random-password';
CREATE DATABASE appdb OWNER app;
SQL

उसी सर्वर के ऐप postgresql://app:PASSWORD@localhost:5432/appdb से जुड़ते हैं।

3. अपने लैपटॉप से जुड़ें: SSH टनल (अनुशंसित)

न कुछ खोलना, न सर्वर पर कुछ कॉन्फ़िगर करना। टनल एक लोकल पोर्ट को SSH के ज़रिए आगे भेजती है:

ssh -N -L 5433:localhost:5432 root@203.0.113.10

NAT प्लान पर पैनल से अपना निजी SSH पोर्ट जोड़ें:

ssh -N -p 20123 -L 5433:localhost:5432 root@your-nat-host

जब तक टनल चालू है, अपने डेटाबेस क्लाइंट को localhost:5433 की ओर इंगित करें। SSH सब कुछ एन्क्रिप्ट करता है और पोर्ट 5432 इंटरनेट के लिए बंद रहता है। DBeaver और pgAdmin जैसे ग्राफ़िकल टूल में “SSH टनल” टैब होता है जो यही काम करता है।

4. किसी दूसरे सर्वर के लिए सीधी पहुँच (अनुमति सूची)

अगर कहीं और मौजूद किसी ऐप सर्वर को सीधे जुड़ना हो, तो सिर्फ़ उसके IP को अनुमति दें। इसके लिए डेटाबेस सर्वर डेडिकेटेड IP वाले प्लान पर होना चाहिए, क्योंकि NAT प्लान SSH के अलावा कोई आने वाला कनेक्शन स्वीकार नहीं करते।

/etc/postgresql/16/main/postgresql.conf में:

listen_addresses = '*'

/etc/postgresql/16/main/pg_hba.conf के अंत में:

hostssl  appdb  app  198.51.100.20/32  scram-sha-256

सिर्फ़ उसी एक पते के लिए फ़ायरवॉल खोलें और रीस्टार्ट करें:

ufw allow from 198.51.100.20 to any port 5432 proto tcp
systemctl restart postgresql

hostssl एन्क्रिप्टेड कनेक्शन अनिवार्य करता है; Ubuntu पैकेज एक self-signed सर्टिफ़िकेट के साथ आता है, इसलिए क्लाइंट को sslmode=require के साथ जुड़ना चाहिए।

5. समझदार शुरुआती सेटिंग्स

2 GB RAM वाले सर्वर के लिए, postgresql.conf में:

shared_buffers = 512MB
effective_cache_size = 1536MB
work_mem = 8MB

बदलाव के बाद रीस्टार्ट करें। ज़्यादातर छोटे ऐप के लिए इतना काफ़ी है; असली क्वेरी देखने के बाद बारीकी से ट्यून करें।

6. बैकअप

हर रात का एक डंप, एक हफ़्ते तक रखा हुआ:

mkdir -p /var/backups/pg && chown postgres /var/backups/pg
cat > /etc/cron.d/pg-backup <<'EOF'
30 3 * * * postgres pg_dump -Fc appdb > /var/backups/pg/appdb-$(date +\%u).dump
EOF

-Fc एक कंप्रेस्ड डंप बनाता है जिसे pg_restore से रिस्टोर किया जाता है। डंप को सर्वर के बाहर भी कॉपी करें; Managed Backups पूरी मशीन के रोज़ाना रिस्टोर पॉइंट जोड़ते हैं।

संबंधित

सामान्य प्रश्न

क्या मुझे पोर्ट 5432 इंटरनेट पर खोलना चाहिए?

बेहतर है नहीं। खुले डेटाबेस पोर्ट लगातार स्कैन होते हैं और उन पर ब्रूट-फ़ोर्स हमले होते हैं। SSH टनल से जुड़ें, या अगर किसी ऐप सर्वर को सीधे जुड़ना हो, तो pg_hba.conf और फ़ायरवॉल दोनों में सिर्फ़ उसका IP अनुमति दें।

क्या मैं NAT प्लान पर PostgreSQL इस्तेमाल कर सकता हूँ?

हाँ। उसी सर्वर के ऐप लोकली जुड़ते हैं, और आप अपने लैपटॉप से अपने निजी SSH पोर्ट पर SSH टनल के ज़रिए डेटाबेस तक पहुँचते हैं। NAT प्लान जो नहीं कर सकता, वह है किसी दूसरे सर्वर से 5432 पर आने वाला सीधा कनेक्शन स्वीकार करना।

PostgreSQL को कितनी RAM चाहिए?

यह कुछ सौ मेगाबाइट में चल जाता है और जितना देंगे सब कैश के रूप में इस्तेमाल करता है। शुरुआत का एक आम बिंदु है shared_buffers को RAM का लगभग 25% रखना। किसी छोटे ऐप के डेटाबेस के लिए सर्वर पर 2 GB RAM काफ़ी से ज़्यादा है।

डेटाबेस का बैकअप कैसे लूँ?

pg_dump को कस्टम फ़ॉर्मेट ('pg_dump -Fc') में इस्तेमाल करें और इसे cron से चलाएँ। सर्वर के बाहर भी प्रतियाँ रखें। Managed Backups पूरे सर्वर के रोज़ाना रिस्टोर पॉइंट जोड़ते हैं।

मुझे PostgreSQL का कौन-सा संस्करण मिलेगा?

Ubuntu 24.04 में PostgreSQL 16 आता है और Debian 12 में 15। नए बड़े संस्करण के लिए आधिकारिक PostgreSQL apt रिपॉज़िटरी (apt.postgresql.org) जोड़ें।

टिप्पणियाँ

अभी तक कोई टिप्पणी नहीं। पहले बनें।

एक टिप्पणी छोड़ें

टिप्पणियाँ दिखने से पहले मॉडरेट की जाती हैं।