Port 80 की जांच से आपको पता चलता है कि आपका वेब सर्वर HTTP के जरिए पहुंच योग्य है या नहीं - यही वो protocol है जिसे browser तब इस्तेमाल करता है जब आप URL में "https://" नहीं लिखते। अगर port 80 block है या कोई सर्विस उस पर listen नहीं कर रही, तो visitors को connection error मिलेगा और आपकी साइट काम करना बंद कर देगी। यहाँ जानें इसे कैसे diagnose और ठीक करें।
विषय सूची
Port 80 असल में क्या करता है
Port 80,
HTTP (Hypertext Transfer Protocol)
के लिए default TCP port है। जब browser किसी
http://example.com
से connect करता है, तो वह उस server के IP address पर automatically port 80 को target करता है। server software - Apache, Nginx, IIS, Caddy, या कोई भी अन्य - को उस connection के सफल होने के लिए port 80 पर actively listen करना होता है।
Port 80 को IANA की आधिकारिक port registry में परिभाषित किया गया है और RFC 9110 में standardize किया गया है। यह एक "well-known" port है, यानी 0-1023 range के port नंबर system-level सेवाओं के लिए reserved हैं और Linux/macOS पर bind करने के लिए elevated privileges की जरूरत होती है।
Port 80 खुला है या नहीं - कैसे जांचें
Port 80 खुला है या नहीं, यह जांचने के कई तरीके हैं - यह इस बात पर निर्भर करता है कि आप locally (server पर) जांच कर रहे हैं या remotely (किसी दूसरी मशीन या internet से)।
telnet का उपयोग करके
Telnet सबसे तेज manual test है। इसे किसी भी ऐसी मशीन से चलाएं जिसकी target host तक network पहुंच हो:
telnet example.com 80
अगर port 80 खुला है और कोई web server listen कर रहा है, तो आपको एक blank cursor या HTTP banner दिखेगा। अगर यह बंद है या filter हो गया है, तो "Connection refused" मिलेगा या command timeout होने तक रुकी रहेगी।
curl का उपयोग करके
curl से ज्यादा विवरण मिलता है - यह actual HTTP response दिखाता है:
curl -v http://example.com
-v
flag verbose output प्रिंट करता है, जिसमें TCP handshake और response headers शामिल हैं। सफल connection पर
* Connected to example.com (93.184.216.34) port 80
दिखता है। विफलता पर
curl: (7) Failed to connect
दिखता है।
nmap का उपयोग करके
nmap port scanning के लिए सबसे भरोसेमंद tool है। खास तौर पर port 80 test करने के लिए:
nmap -p 80 example.com
परिणाम तीन में से एक स्थिति दिखाएगा: open (कोई listen कर रहा है), closed (port पहुंच योग्य है लेकिन कोई listen नहीं कर रहा), या filtered (firewall packets drop कर रहा है और nmap स्थिति नहीं बता सकता)।
Windows पर PowerShell का उपयोग करके
Test-NetConnection -ComputerName example.com -Port 80
PowerShell का
Test-NetConnection
साफ
TcpTestSucceeded : True
या
False
लौटाता है, जिससे scripting आसान हो जाती है। Windows पर port जांचने की पूरी गाइड के लिए देखें
Windows पर open ports जांचना
।
netstat से Port 80 की जांच
जब आप server पर ही हों, तो
netstat
आपको बताता है कि port 80 से कौन सा process bind है। यह सही tool है जब आपको यह जानना हो कि "क्या इस मशीन पर port 80 पर कुछ actually listen कर रहा है?"
Linux / macOS
sudo netstat -tlnp | grep :80
Flags का विवरण:
-
-t- केवल TCP connections -
-l- केवल listening sockets -
-n- numeric addresses दिखाएं (तेज, DNS lookups छोड़ता है) -
-p- process का नाम और PID दिखाएं
एक सामान्य परिणाम ऐसा दिखता है:
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1234/nginx
। इससे पता चलता है कि nginx (PID 1234) सभी interfaces पर port 80 पर listen कर रहा है।
आधुनिक Linux systems पर,
ss
तेज है और
netstat
से बेहतर माना जाता है:
sudo ss -tlnp | grep :80
Windows
netstat -ano | findstr :80
यह port 80 वाले सभी connections और उनके PID सूचीबद्ध करता है। PID से process का नाम जानने के लिए (मान लें PID 4892):
tasklist /fi "pid eq 4892"
Firewall द्वारा Port 80 block होने का पता लगाना
Firewall block सबसे सामान्य कारण है जिससे port 80 बाहर से बंद दिखता है, भले ही आपका web server locally ठीक से चल रहा हो। block तीन स्तरों पर हो सकता है:
| स्तर | कहाँ जांचें | Tool |
|---|---|---|
| OS firewall (server) | iptables / ufw (Linux), Windows Defender Firewall |
iptables -L -n
या Windows Firewall नियम
|
| Cloud security group | AWS EC2 Security Groups, Azure NSG, GCP Firewall Rules | Cloud console के inbound rules |
| Network/ISP firewall | Router ACL, ISP residential port blocking | ISP से संपर्क करें या external port scanner इस्तेमाल करें |
Linux पर iptables जांचें
sudo iptables -L INPUT -n -v | grep 80
अगर port 80 के लिए DROP या REJECT rule दिखे, तो वही समस्या है। ufw से port 80 allow करने के लिए:
sudo ufw allow 80/tcp
sudo ufw reload
AWS Security Groups जांचें
अगर आपका server EC2 पर है, तो EC2 console - Security Groups - Inbound rules पर जाएं। आपको
0.0.0.0/0
(या अपनी specific IP range) से TCP port 80 allow करने वाला नियम चाहिए। इसके बिना, सभी port 80 traffic आपके OS firewall तक पहुंचने से पहले ही drop हो जाती है।
Linux पर port diagnostics की गहरी जानकारी के लिए देखें Linux पर open ports जांचने की पूरी गाइड जिसमें iptables, ufw, firewalld और nftables विस्तार से कवर हैं।
HTTP Port respond नहीं कर रहा: सामान्य कारण और समाधान
जब HTTP port respond नहीं करता, तो समस्या इन्हीं में से किसी एक श्रेणी में होती है:
-
Web server चल नहीं रहा
-
systemctl status nginxयाsystemctl status apache2से जांचें। अगर बंद है, तो start करें:sudo systemctl start nginx। -
Web server startup पर crash हो गया
- logs जांचें:
sudo journalctl -u nginx --since "10 minutes ago"। config syntax error या port conflict यहाँ लॉग होगा। -
Server केवल localhost पर bind है
- अगर आपके server config में
listen 127.0.0.1:80लिखा हैlisten 0.0.0.0:80की जगह, तो वह external connections स्वीकार नहीं करेगा। अपने server config में bind address ठीक करें। - Port 80 पहले से उपयोग में है - किसी दूसरे process ने आपके web server से पहले port 80 ले लिया। netstat से उसे पहचानें, फिर उसे बंद करें या किसी एक service को reconfigure करें।
-
SELinux या AppArmor bind को block कर रहा है
- RHEL/CentOS systems पर, SELinux किसी non-standard process को port 80 पर bind करने से रोक सकता है। denials के लिए
ausearch -m AVC -ts recentजांचें।
curl http://127.0.0.1
चलाएं। अगर यह काम करे लेकिन external connections विफल हों, तो समस्या firewall या network rule में है - web server में नहीं।
अपने network के बाहर से Port 80 की connectivity जांचें
अपनी मशीन से testing भ्रामक हो सकती है - आप server के समान LAN पर हो सकते हैं, जिससे वो firewall rules bypass हो जाते हैं जो external traffic पर लागू होते हैं। Port 80 connectivity को एक real visitor की तरह test करने के लिए, आपको external test की जरूरत है।
आप हमारे HTTP Headers Checker tool से बाहर से अपने server के HTTP response headers जांच सकते हैं। यह आपके URL से headers fetch करता है और दिखाता है कि browser को वास्तव में क्या मिलता है - status codes, server type, redirect chains और बहुत कुछ - सब कुछ external नजरिए से।
अन्य external विकल्प:
- Online port scanners - portchecker.co या canyouseeme.org जैसी साइटें आपको IP और port number डालकर उनके servers से test करने देती हैं।
-
VPS या cloud shell से
- किसी अलग region में free-tier cloud instance शुरू करें और वहाँ से
nc -zv your-server-ip 80चलाएं। -
nc (netcat) से locally
-
nc -zv example.com 80अधिकतर Linux/macOS systems पर बिना कुछ extra install किए open/closed का त्वरित परिणाम देता है।
Port 80 बनाम Port 443: कब कौन सा जरूरी है
Port 443, HTTPS (TLS के जरिए encrypted HTTP) handle करता है। अधिकतर आधुनिक साइटें सभी port 80 traffic को तुरंत port 443 पर redirect कर देती हैं। लेकिन port 80 कई कारणों से अभी भी महत्वपूर्ण है:
- ACME/Let's Encrypt HTTP-01 challenges - Let's Encrypt का certbot domain ownership verify करने के लिए port 80 इस्तेमाल करता है। अगर port 80 block है, तो certificate जारी नहीं होगा।
- TLS के बिना internal services - कई internal tools, monitoring agents और microservices private network के अंदर plain HTTP पर port 80 के जरिए communicate करते हैं।
- Legacy clients और IoT devices - कुछ embedded devices और पुराने clients TLS support नहीं करते और port 80 पर निर्भर रहते हैं।
- Redirect infrastructure - भले ही आप सब कुछ HTTPS पर serve करते हों, HTTP requests को catch करके redirect करने के लिए port 80 खुला रखना जरूरी है, वरना users को connection error मिलेगा।
Port 80 actually क्या return कर रहा है - तुरंत देखें
हमारा HTTP Headers Checker किसी भी URL से live response fetch करता है ताकि आप confirm कर सकें कि port 80 खुला है, redirect chains जांच सकें और देख सकें कि आपका server कौन से exact status codes भेज रहा है - बिना command line के।
अभी HTTP Headers जांचें →
Linux पर
sudo ss -tlnp | grep :80
या
sudo netstat -tlnp | grep :80
चलाएं। दोनों commands port 80 से bind process का नाम और PID दिखाती हैं। Windows पर PID पाने के लिए
netstat -ano | findstr :80
इस्तेमाल करें, फिर process का नाम जानने के लिए
tasklist /fi "pid eq [PID]"
। सामान्य रूप से यहाँ nginx, apache2, IIS और Node.js servers मिलते हैं।
वही netstat या ss commands इस्तेमाल करें लेकिन 8080 के लिए filter करें: Linux पर
sudo ss -tlnp | grep :8080
, या Windows पर
netstat -ano | findstr :8080
। Port 8080 development servers, Tomcat, Jenkins और proxies द्वारा उपयोग किया जाने वाला एक सामान्य alternative HTTP port है। अगर वहाँ कुछ पहले से bind है, तो उसे बंद करना होगा या अपनी नई service को किसी अलग port पर configure करना होगा।
dedicated web servers और VPS instances पर हाँ - port 80 आमतौर पर खुला और अपेक्षित होता है। residential internet connections पर, कई ISPs inbound port 80 block कर देते हैं ताकि customers घर के connections पर public servers न चला सकें। cloud instances पर, port 80 अक्सर default रूप से security group में बंद होता है जब तक आप explicitly inbound rule नहीं जोड़ते।
Server के बाहर से
nmap -p 80 your-server-ip
या
telnet your-server-ip 80
इस्तेमाल करें। Server पर खुद से
ss -tlnp | grep :80
से confirm करें कि कुछ listen कर रहा है। अपने firewall rules भी जांचें - Linux पर ufw के साथ
sudo ufw status
चलाएं और देखें कि port 80 allowed है या नहीं।
Linux पर ufw के साथ:
sudo ufw allow 80/tcp
। सीधे iptables से:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
। Windows पर, Windows Defender Firewall में TCP port 80 के लिए inbound rule जोड़ें। cloud server पर, अपने security group या network security group में desired source range से TCP port 80 allow करने वाला inbound rule जोड़ें।
Port 80 तब खुला होता है जब web server HTTP traffic serve करने के लिए configure किया गया हो, जो किसी भी public-facing website के लिए मानक है। यह उन servers पर भी खुला रहता है जो HTTP को HTTPS (port 443) पर redirect करते हैं, क्योंकि redirect के लिए initial port 80 connection स्वीकार करना जरूरी है। Let's Encrypt certbot जैसे certificate renewal tools को भी HTTP-01 domain validation challenges के लिए port 80 चाहिए।
Windows Defender Firewall with Advanced Security खोलें, "Inbound Rules" पर क्लिक करें, फिर "New Rule"। "Port" चुनें, TCP select करें, specific local port में 80 डालें, "Allow the connection" चुनें, सभी profiles (Domain, Private, Public) पर apply करें और rule को एक नाम दें। वैकल्पिक रूप से, elevated PowerShell prompt में यह चलाएं:
New-NetFirewallRule -DisplayName "HTTP Port 80" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow
।
हाँ, Linux और macOS पर port 80 एक privileged port है (ports 0-1023 को bind करने के लिए root या CAP_NET_BIND_SERVICE capability चाहिए)। इसका मतलब है कि एक सामान्य user process बिना elevated permissions के port 80 पर listen नहीं कर सकती। nginx और Apache जैसे web servers आमतौर पर port 80 bind करने के लिए root के रूप में शुरू होते हैं, फिर request handling के लिए कम privilege वाले user पर आ जाते हैं। Windows पर port 80 के लिए ऐसी कोई समकक्ष restriction नहीं है।
Port 80 (HTTP) का उपयोग 443 (HTTPS) की जगह उन situations में होता है जहाँ TLS अनावश्यक या अव्यावहारिक हो - जैसे trusted private network पर internal microservices, local development environments, या TLS support के बिना IoT devices। Let's Encrypt HTTP-01 certificate challenges के लिए भी port 80 जरूरी है। किसी भी public-facing साइट के लिए, TLS के साथ port 443 दृढ़ता से अनुशंसित है, और port 80 केवल redirects के लिए खुला रखा जाता है।
नहीं, ये अलग-अलग ports हैं। Port 80 HTTP के लिए IANA-assigned standard है और browser तब automatically इसे use करता है जब URL में कोई port specify नहीं होता। Port 8000 एक unofficial alternative है जो development servers में आमतौर पर इस्तेमाल होता है - Python का
python -m http.server
और Django का development server default रूप से 8000 पर चलते हैं। Port 8000 पर किसी service तक पहुंचने के लिए URL में explicitly specify करना होता है:
http://example.com:8000
।