पोर्ट: कौन-से खोलें और कैसे जाँचें
आम सर्विसेज़ को कौन-से पोर्ट चाहिए, मशीन किस पोर्ट पर सुन रही है यह कैसे देखें, बाहर से उपलब्धता कैसे जाँचें, और पोर्ट बंद हो तो क्या करें।
23 अगस्त 2026 को अपडेट किया गया
पोर्ट एक नंबर होता है जो सिस्टम को बताता है कि आने वाले कनेक्शन को कौन-सी सर्विस रिसीव करेगी। नियम आसान है: सिर्फ़ वही खुला रखें जो आप वाकई इस्तेमाल करते हैं। हर अतिरिक्त खुला पोर्ट एक और दरवाज़ा है, जिसकी कमज़ोरियाँ कोई न कोई ज़रूर टेस्ट करेगा।
आम पोर्ट नंबर
| पोर्ट | सर्विस | बाहर के लिए खुला |
|---|---|---|
| 22 | SSH | हाँ, बेहतर होगा कि एड्रेस से सीमित रखें |
| 80 | HTTP | हाँ, अगर आपकी वेबसाइट है |
| 443 | HTTPS | हाँ, अगर आपकी वेबसाइट है |
| 25, 465, 587 | मेल | इनबाउंड — सिर्फ़ तब, जब आप खुद का मेल सर्वर चलाते हों। आउटबाउंड हमारी तरफ़ से बंद रहता है और रिक्वेस्ट पर खोला जाता है |
| 3306 | MySQL | नहीं, सिर्फ़ लोकल |
| 5432 | PostgreSQL | नहीं, सिर्फ़ लोकल |
| 6379 | Redis | नहीं, सिर्फ़ लोकल |
| 27017 | MongoDB | नहीं, सिर्फ़ लोकल |
| 25565 | Minecraft | हाँ, अगर यह गेम सर्वर है |
मेल पर एक बात: इनबाउंड कनेक्शन सीमित नहीं हैं, जबकि 25, 465 और 587 पर आउटबाउंड कनेक्शन नोड लेवल पर बंद रहते हैं, जब तक आप हमसे उन्हें खोलने के लिए न कहें। मशीन के अंदर के नियम इसमें कोई बदलाव नहीं करते — जानकारी के लिए Mail server: why it's hard and what to consider देखें।
डेटाबेस लगभग कभी बाहर के लिए खुले नहीं रखे जाते। अगर आपको अपने ऑफ़िस कंप्यूटर से एक्सेस चाहिए, तो सही तरीका SSH टनल है, खुला पोर्ट नहीं:
ssh -L 5432:127.0.0.1:5432 artem@<address>
मशीन किस पर लिसन कर रही है
ss -tulpn
ss -tlpn | grep 443
lsof -i -P -n | grep LISTEN
पोर्ट नंबर से पहले एड्रेस देखें। 127.0.0.1:5432 का मतलब है कि सर्विस सिर्फ़ अंदर से उपलब्ध है — आप चाहे कितने भी नियम जोड़ लें, यह बाहर से रीच नहीं होगी। 0.0.0.0:5432 का मतलब है कि सर्विस सभी नेटवर्क इंटरफ़ेस पर खुली है और इसे फ़ायरवॉल से प्रोटेक्ट करना ज़रूरी है।
बाहर से जाँचना
अपने कंप्यूटर से:
nc -vz <address> 443
curl -I http://<address>
ping से जाँचना बेकार है: ICMP और TCP अलग-अलग चीज़ें हैं; हो सकता है पोर्ट काम करे और ping ब्लॉक हो, और इसका उल्टा भी।
पोर्ट बंद है: स्टेप-बाय-स्टेप ट्रबलशूटिंग
- क्या सर्विस चल रही है?
systemctl status <service> - क्या यह सही एड्रेस पर लिसन कर रही है?
ss -tulpn—127.0.0.1पर नहीं - क्या फ़ायरवॉल इसे अलाउ करता है?
ufw status verboseयाnft list ruleset - कहीं Docker बीच में नहीं है? पब्लिश किए गए कंटेनर पोर्ट ufw को बायपास कर देते हैं
- सर्विस लॉग देखें:
journalctl -u <service> -n 50
क्रम मायने रखता है: ज़्यादातर मामलों में दिक्कत स्टेप दो पर होती है, फ़ायरवॉल में नहीं।
सर्विस का पोर्ट बदलना
उदाहरण के लिए, SSH को शिफ्ट करना:
sed -i "s/^#\?Port 22/Port 2222/" /etc/ssh/sshd_config
ufw allow 2222/tcp
sshd -t
systemctl restart ssh
पहले एक अलग विंडो में चेक करें कि आप नए पोर्ट पर लॉग इन कर पा रहे हैं, और उसके बाद ही पोर्ट 22 का नियम हटाएँ। जानकारी के लिए SSH hardening देखें।
आम गलतियाँ
| लक्षण | कारण | समाधान |
|---|---|---|
Connection refused | सर्विस चल नहीं रही | systemctl status, लॉग देखें |
Connection timed out | पैकेट फ़ायरवॉल से ड्रॉप हो रहा है | नियम चेक करें |
| लोकल चलता है, बाहर से नहीं | 127.0.0.1 पर बाइंड है | कॉन्फ़िग में एड्रेस बदलें |
Address already in use | पोर्ट किसी और सर्विस ने ले रखा है | ss -tulpn चलाएँ और अतिरिक्त सर्विस बंद करें |
पोर्ट सिर्फ़ तब खोलें, जब आप चेक कर लें कि उस पर क्या जवाब दे रहा है। किसी पुराने एक्सपेरिमेंट से छूटा हुआ पोर्ट हैकिंग का आम एंट्री पॉइंट होता है; signs of compromise देखें।