दूरस्थ स्थान से पोर्ट 80 तक नहीं पहुंच सकता, लेकिन स्थानीय पर काम करता है?


14

मेरे पास अपाचे के साथ कॉन्फ़िगरेशन पर एक लिनक्स सर्वर है। हालाँकि मैं दूरस्थ कंप्यूटर का उपयोग करके इसे प्राप्त नहीं कर सकता।

मैं सर्वर पर सामान्य रूप से ssh कर सकता हूं।

मेरी आईपी तालिका:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

netstat -ant

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN
tcp        0      0 SERVERIP:80                 0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:45117               0.0.0.0:*                   LISTEN
tcp        0    196 SERVERIP:22                 MyIP:3149                   ESTABLISHED
tcp        0      0 :::111                      :::*                        LISTEN
tcp        0      0 :::22                       :::*                        LISTEN
tcp        0      0 :::47193                    :::*                        LISTEN

उपयोग करना Curl SERVERIP:80और curl localhost:80, दोनों अपाचे से डिफ़ॉल्ट पृष्ठ लौटाते हैं।

क्या समस्या हो सकती है?

जवाबों:


26

आपको पोर्ट 80 पर अपने सर्वर तक पहुंच को सक्षम करने की आवश्यकता है क्योंकि यह वर्तमान में iptables द्वारा अवरुद्ध किया जा रहा है।

sudo /sbin/iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT

यह प्रारंभ में आपके iptables कॉन्फ़िगरेशन में नियम सम्मिलित करेगा। एक बार जब आपने यह कर लिया और यह जांच लिया कि यह काम करता है तो आपको कॉन्फ़िगरेशन को सहेजना चाहिए ताकि अगली बार सेवा शुरू होने पर इसका उपयोग किया जाए,

sudo /sbin/service iptables save

यह वर्तमान कॉन्फ़िगरेशन को लिखेगा /etc/sysconfig/iptables

यदि आप CentOS 7 का उपयोग करते हैं तो FirewallD जाने का सही तरीका है:

फ़ायरवॉल- cmd --zone = सार्वजनिक --add-port = 80 / tcp

अपने ब्राउज़र से सत्यापित करें कि यह काम करता है, और फिर:

फ़ायरवॉल- cmd --zone = जनता --add-port = 80 / tcp --permanent

फ़ायरवॉल- cmd --reload

परिवर्तन को स्थायी बनाने के लिए


1

आपके iptables नियम केवल पोर्ट 22 पर आने वाले कनेक्शन की अनुमति देते हैं। पोर्ट 80 भी खोलें।


... और cmd हैiptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
onik

... जो सही है, लेकिन काम नहीं करेगा, क्योंकि यह इस नियम को पीछे छोड़ देगा, जो आने वाले सभी कनेक्शनों को पहले स्वीकार नहीं करता है।
पावेल ब्रोडैकी

यह सच है, मैं इसे सही स्थिति में नियमों की फाइल में जोड़ने के लिए उपयोग कर रहा हूं, उल्लेख करना भूल गया। iptables -D FORWARD -j REJECT --reject-with icmp-host-prohibited, फिर पिछला, उसके बाद deny-all catchruleiptables -A FORWARD -j REJECT --reject-with icmp-host-prohibited
onik

0

आप डिफॉल्ट http सर्विस का भी सीधे इस्तेमाल कर सकते हैं

फ़ायरवॉल- cmd --permanent --zone = public --add-service = http

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.