SSD Nodes Learn
गाइड Matt Connorलेखक: Matt Connor · अपडेट किया गया: 2026-07-24

Port क्या है और Linux में service कैसे देखें

Port क्या होता है और Linux में ss command का उपयोग करके listening services कैसे पहचानें, इसके बारे में विस्तार से जानें। TCP और UDP ports के बीच का अंतर समझें।

Port वास्तव में क्या होता है

Port एक नंबर है जो एक ही server को एक साथ कई services चलाने की अनुमति देता है, ताकि उनका traffic आपस में न मिले। आपके VPS का एक IP address होता है, लेकिन वह एक ही समय में web server, SSH server, और database चला सकता है। जब कोई packet आता है, तो operating system को यह जानने की आवश्यकता होती है कि वह किसके लिए है। Port number इसका उत्तर है। Web traffic port 443 पर जाता है, और SSH port 22 पर। IP address packet को आपके server तक पहुँचाता है; port उसे उस server पर सही program तक पहुँचाता है।

Port एक 16-bit number है: 16 bits 0 से 65535 तक की range देते हैं, और 0 reserved है, इसलिए व्यवहार में ports 1 से 65535 तक चलते हैं। 1024 से नीचे के ports "well-known" ports होते हैं और उन्हें खोलने के लिए root access की आवश्यकता होती है, इसीलिए standard services वहीं रहती हैं: SSH के लिए 22, HTTP के लिए 80, HTTPS के लिए 443, और DNS के लिए 53। 1024 से ऊपर का कुछ भी ordinary programs के लिए उपलब्ध है।

दो प्रकार के ports होते हैं, TCP और UDP, और एक में port number दूसरे के समान number से अलग होता है। TCP एक connection-based protocol है जिसका उपयोग अधिकांश services करती हैं, जैसे SSH, HTTP, और databases। UDP connectionless है और इसका उपयोग DNS और कुछ VPNs जैसी चीजों के लिए किया जाता है। जब आप firewall खोलते हैं, तो आप आमतौर पर उसे नाम देते हैं, उदाहरण के लिए 22/tcp

Listening का अर्थ है कि एक program port पर इंतज़ार कर रहा है

एक program जो connections प्राप्त करना चाहता है, वह kernel से किसी port पर "listen" करने के लिए कहता है। उस क्षण से machine पर port खुल जाता है और program firewall के अधीन, वहां आने वाली किसी भी चीज़ का उत्तर देता है। जिस port पर कुछ भी listen नहीं कर रहा होता, वह simply connections को refuse कर देता है। इसलिए किसी भी security check में पहला प्रश्न यह होता है: क्या listen कर रहा है, और कहाँ।

इसका उत्तर देने वाला command ss है:

sudo ss -tlnp

Flags का अर्थ है TCP (t), केवल listening sockets (l), numeric ports (n, ताकि आप 22 के बजाय ssh देखें), और owning process (p)। एक typical result:

State   Recv-Q  Local Address:Port   Process
LISTEN  0       0.0.0.0:22           sshd
LISTEN  0       127.0.0.1:5432       postgres
LISTEN  0       [::]:80              nginx

Process column आपको बताता है कि प्रत्येक port का owner कौन सा program है, जिससे आप उस चीज़ को track कर सकते हैं जिसे आप गलती से running छोड़ गए थे।

Local Address column सबसे महत्वपूर्ण हिस्सा है

प्रत्येक port के सामने दिए गए address को ध्यान से पढ़ें, क्योंकि यह तय करता है कि कौन service तक पहुँच सकता है। आपको लगातार तीन cases देखने को मिलेंगे।

0.0.0.0:22 का अर्थ है "इस machine के पास मौजूद प्रत्येक IPv4 address पर listen करें," जिसमें इसका public address भी शामिल है। firewall की अनुमति होने पर service internet से IPv4 के माध्यम से reachable है।

[::]:80 का IPv6 के लिए वही अर्थ है: प्रत्येक IPv6 address पर listen करें, public सहित। कई programs default रूप से यहाँ bind होते हैं, और Linux पर एक :: socket अक्सर IPv4 को भी accept करता है।

127.0.0.1:5432 का अर्थ है "केवल loopback पर listen करें।" 127.0.0.1 वह address है जिसका उपयोग machine खुद से बात करने के लिए करती है, और यह कहीं और से routable नहीं है। यहाँ bound service केवल उसी server से reachable है, internet से कभी नहीं, चाहे आपका firewall कुछ भी कहे। ऊपर दिया गया Postgres line structure के अनुसार सुरक्षित है।

इसका practical rule सीधे तौर पर निकलता है: एक database, cache, या admin panel जिसका उपयोग केवल आपके अपने applications करते हैं, उसे 127.0.0.1 पर bind होना चाहिए, न कि 0.0.0.0 पर। यदि यह कभी public address पर listen नहीं करता है, तो attacker के पास पहुँचने के लिए कुछ नहीं होता।

Listening और reachable एक समान नहीं हैं

एक और अंतर बहुत confusion बचाता है। Machine पर port का open होना, जिसका अर्थ है कि एक program listen कर रहा है, उस port के बाहर से reachable होने से अलग है, जिसका अर्थ है कि firewall इसकी अनुमति देता है। एक remote client को connect करने के लिए दोनों का सच होना आवश्यक है।

इसलिए control के दो layers हैं। आप प्रत्येक service के bind address को set करके तय करते हैं कि क्या listen करेगा। और आप firewall के साथ तय करते हैं कि बाहर की दुनिया क्या access कर सकती है। एक well-run server दोनों का उपयोग करता है: services केवल वहीं bind होती हैं जहाँ उन्हें आवश्यकता होती है, और firewall उन सभी चीज़ों को deny कर देता है जिन्हें आपने explicitly allow नहीं किया है। ss के साथ यह देखना कि क्या listen कर रहा है, पहला step है; firewall क्या allow करता है, यह तय करना दूसरा step है, जो firewalls 101 with UFW में कवर किया गया है।

यहाँ एक बारीकी है जो लोगों को परेशान करती है। IPv4 और IPv6 अलग-अलग हैं, और एक firewall जो केवल IPv4 को cover करता है, वह IPv6 पर [::] services को खुला छोड़ देता है। उस specific trap के लिए अपना post है: the IPv6 firewall trap

FAQ

मैं अपने Linux server पर कौन से ports open हैं, यह कैसे देखूँ?

TCP के लिए sudo ss -tlnp या UDP के लिए sudo ss -ulnp चलाएँ। यह प्रत्येक listening socket, port, वह local address जिस पर वह bound है, और उसका owner process सूचीबद्ध करता है। Local Address column पढ़ें: 0.0.0.0 या [::] का अर्थ है कि service network के लिए exposed है, जबकि 127.0.0.1 का अर्थ है कि यह केवल machine पर ही listen करती है।

0.0.0.0 और 127.0.0.1 में क्या अंतर है?

0.0.0.0 का अर्थ है "सभी IPv4 addresses पर listen करें," जिसमें public address भी शामिल है, ताकि service network से reachable हो सके। 127.0.0.1 loopback है, वह address जिसका उपयोग machine खुद से बात करने के लिए करती है, और यह कहीं और से routable नहीं है, इसलिए इससे bound service केवल locally ही reachable है। Internal services को 127.0.0.1 पर bind करें ताकि वे कभी exposed न हों।

क्या service को काम करने के लिए मुझे firewall में port खोलने की आवश्यकता है?

केवल उन services के लिए जिन्हें अन्य machines से access करने की आवश्यकता होती है। 127.0.0.1 पर bound service को किसी firewall rule की आवश्यकता नहीं होती क्योंकि कोई भी external चीज़ उसे access नहीं कर सकती। 0.0.0.0 या [::] पर मौजूद service को traffic allow करने के लिए firewall rule की आवश्यकता होती है, और जब तक आप एक add नहीं करते, तब तक उसे default रूप से deny किया जाना चाहिए।

TCP port और UDP port में क्या अंतर है?

TCP connection-based है और अधिकांश services द्वारा उपयोग किया जाता है, जैसे SSH, web servers, और databases। UDP connectionless है और DNS और कुछ VPNs द्वारा उपयोग किया जाता है। TCP और UDP में समान number अलग-अलग ports होते हैं, इसलिए 53/tcp और 53/udp अलग हैं। जब आप firewall rules लिखते हैं, तो आप protocol का नाम देते हैं, उदाहरण के लिए 22/tcp