मैक फ़ायरवॉल नेगिनैक्स (पोर्ट 80) को बाहरी तरफ से अवरुद्ध किया


10

मैंने बंदरगाहों का उपयोग करके नाज़िनक्स स्थापित किया और इसे सुडो के साथ शुरू किया। लोकलहोस्ट से नगनेक्स के स्वागत पृष्ठ तक पहुँचना पूरी तरह से काम करता है, हालाँकि इसे बाहरी कंप्यूटर से एक्सेस करना विफल हो जाता है।

बाहर से कंप्यूटर पर एक झपकी का पता चलता है

80/tcp   filtered http

तो स्पष्ट रूप से मैक फ़ायरवॉल पोर्ट को ब्लॉक कर रहा है। मैं तब फ़ायरवॉल अपवाद सूची में nginx निष्पादन योग्य को जोड़ने के लिए आगे बढ़ता हूं, हालांकि nmap अभी भी पोर्ट 80 के फ़िल्टर किए जाने के रूप में दिखाता है और मैं वेबपृष्ठ तक पहुंचने में असमर्थ हूं। सूची में जो सटीक द्विआधारी है वह / ऑप्ट / स्थानीय / sbin / nginx है जो मेरे ज्ञान को सही लगता है

किसी भी विचार मुझे क्या करना चाहिए? धन्यवाद!

पुनश्च फ़ायरवॉल बंद करने से मुझे बाहरी दुनिया से वेबसाइट का उपयोग करने की अनुमति मिलती है, हालांकि यह एक आदर्श समाधान नहीं है।


मेरे पास कोई जवाब नहीं है, लेकिन यहाँ कुछ चीजें देखने लायक हैं: check /var/log/appfirewall.log यह देखने के लिए कि क्या उसके पास कुछ उपयोगी है, और sudo lsof -i:80यह सुनिश्चित करने के लिए चलाएं कि यह सुनने में वास्तव में nginx है (और यह सभी IP पर सुन रहा है, न कि केवल 127.0.0.1)।
गॉर्डन डेविसन

हे गॉर्डन, सुझाव के लिए धन्यवाद! जब मैं कनेक्ट करने का प्रयास करता हूं तो मेरा फ़ायरवॉल लॉग इस तरह दिखता है: Dec 18 02:12:56 MacBook-Pro.local socketfilterfw [80663] <जानकारी>: my.ip.is.here.55843 से कनेक्ट होने से इनकार करते हुए पोर्ट 80 प्रोटो = 6 तक और यह सुनने की मेज का आउटपुट है: nginx 80437 रूट 6u IPv4 0x35ec104ccb86c175 0t0 TCP *: http (LISTEN) nginx 80438 कोई नहीं 6u IPv4 0x35ec104ccb86c175 0t0 TCP *: http (LISTEN) सब कुछ सही होना चाहिए, लेकिन :(
एलेक्स Ionescu

क्या यह संभव है कि आपके पास दो नग्नेक्स निष्पादन योग्य हैं, एक को फ़ायरवॉल में अनुमति है और एक को नहीं? यही एक चीज है जो मैं सोच सकता हूं ...
गॉर्डन डेविसन

जवाबों:


10

यह मेरे लिए काम किया (OSX 10.9):

sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /usr/local/Cellar/nginx/1.4.4/bin/nginx
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --unblockapp /usr/local/Cellar/nginx/1.4.4/bin/nginx

जब इसे सिम्लिंक के माध्यम से करने की कोशिश की जाती है (इस प्रक्रिया को फिर से शुरू करने से बचने के लिए जब नेनेक्स को अपग्रेड किया जाता है), तो निम्न त्रुटि हुई: आवेदन चलाने के बाद फ़ायरवॉल का हिस्सा नहीं है :

sudo /usr/libexec/ApplicationFirewall/socketfilterfw --unblockapp /usr/local/bin/nginx

मुझे एक ही संदेश मिला "आवेदन फ़ायरवॉल का हिस्सा नहीं है", और मेरे कैस में यह एक मामला संवेदनशील मुद्दा था ... मैंने सेलर के बजाय सेलर लिखा। जब मैंने Capital C का उपयोग किया, तो यह काम किया !! धन्यवाद
Ofer Segev

3

उम्र के लिए यह पता लगाने की कोशिश कर रहा है, अंततः टर्मिनल में निम्नलिखित कर रहा है:

$ sudo /usr/libexec/ApplicationFirewall/socketfilterfw --remove /usr/local/Cellar/nginx/1.10.0/bin/nginx
Application at path ( /usr/local/Cellar/nginx/1.10.0/bin/nginx ) removed from firewall

$ sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /usr/local/Cellar/nginx/1.10.0/bin/nginx
The application is already a part of the firewall

$ sudo /usr/libexec/ApplicationFirewall/socketfilterfw --unblockapp /usr/local/Cellar/nginx/1.10.0/bin/nginx
Incoming connection to the application is permitted

और इस मुद्दे को ठीक करने के लिए लग रहा था।

मैंने OS X फ़ायरवॉल पर स्वीकृत एप्लिकेशन सूची में nginx एप्लिकेशन को भी खींचा था।


इन चरणों ने मेरे लिए काम किया, लेकिन मुझे nginxवेबसाइट को वास्तव में लोड करना शुरू करने के लिए भी पुनरारंभ करना पड़ा ।
हिप्पो

0

मैं इसी समस्या में चला गया हूँ। मुझे संदेह है कि यह Apple के appfirewall कार्यान्वयन को भ्रमित करने वाले nginx के मास्टर / कार्यकर्ता प्रक्रिया मॉडल के साथ करना है।

मैंने जो समाधान पाया है, वह nginx प्रक्रिया की अनुमति देने के लिए appfirewall को बताने के लिए है:

$ sudo /usr/libexec/ApplicationFirewall/socketfilterfw -t nginx

मुझे याद नहीं है कि क्या यह रिबूट में बना रहता है या नहीं। यदि ऐसा नहीं है, तो आप बूट / लाइब्रेरी / लॉन्चएगेंट में लॉन्च प्लिस्ट बना सकते हैं, यदि आप चाहें तो बूट पर ऐसा कर सकते हैं।


1
यह 10.8 पर काम नहीं करता है। यह शिकायत करता है कि -t एक अमान्य विकल्प है। इसके अलावा, अगर मैं --add `जो nginx` के माध्यम से जोड़ता हूं, तो यह इसे जोड़ता है, लेकिन अगर मैं इसे --remove विकल्प के साथ हटाने के लिए जाता हूं, तो यह इसे नहीं पहचानता है।
ब्रेंडन

यह Mac OS X 10.9.3 पर भी काम नहीं करता है। Apple ने -tविकल्प हटा दिया है ।
सियु चिंग पोंग -आसुका केंजी-

0

अपना $ PATH बदलें

सिस्टम को पहले nginx का पता लगाने दें/usr/local/Cellar/nginx/nginx-xx/bin/nginx


0

मैं एल कैपिटन (10.11.6) पर हूं। आप nginxGUI का उपयोग करके मैन्युअल रूप से फ़ायरवॉल से बाहर कर सकते हैं । इससे मेरे लिए हल हो गया।

सबसे पहले, सिस्टम प्राथमिकताएं पर जाएं। इसके बाद Security & Privacy पर जाएं और Firewall टैब पर क्लिक करें।

'फ़ायरवॉल ऑप्शन्स' बटन पर क्लिक करें और nginxएक बहिष्कृत आवेदन के रूप में यहाँ जोड़ें :

यहाँ छवि विवरण दर्ज करें

Nginx /usr/local/Cellar/nginx/1.10.3/bin/nginxमेरे लिए स्थित था । मैं सिस्टम वरीयता में फ़ाइल एक्सप्लोरर में इसे नेविगेट नहीं कर सका, इसलिए इसके चारों ओर पाने के लिए मैंने nginxअपने डेस्कटॉप पर शॉर्टकट बनाया और उसे चुना।

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