IPv6 लोकलहोस्ट को कर्ल अनुरोध अटक जाता है


9

मेरा एक डॉकटर कंटेनर पोर्ट 8500 पर एक एचटीटीपी इंटरफेस को उजागर करता है, जिसे पोर्ट 8500 होस्ट करने के लिए मैप किया जाता है। यह IP66 सक्षम नहीं है । इसका अभी भी मतलब है, मुझे इसे स्थानीयहोस्ट: 8500 पर एक्सेस करने में सक्षम होना चाहिए। IPv6 को प्राथमिकता दी जाती है, इसलिए मैं [:: 1]: 8500 के अनुरोध के साथ समाप्त होता हूं। यह एक अटक जाता है, यह कभी नहीं लौटता है।

इसे कर्ल के साथ पुन: प्रस्तुत करने पर, यह कमांड अटक जाती है:

curl -g -6 "http://[::1]:8500"

कर्ल का --verbose विकल्प कुछ भी नहीं बताता है, न ही --ascii-ट्रेस। उसी समय, IPv4 के स्थानीयहोस्ट के लिए एक अनुरोध सफल होता है:

curl http://127.0.0.1:8500

मुझे अपेक्षित HTML दे रहा है। अगर मैं लूपबैक पर, उपयोग करके IPv4 HTTP सर्वर चलाता हूं

python -m SimpleHTTPServer 4001

तब मुझे IPv4 के लोकलहोस्ट के लिए बहुत सारे HTML मिलते हैं

curl http://127.1:4001

और IPv6 के लिए एक उचित कनेक्शन विफलता:

curl -g -6 "http://[::1]:4001"
curl: (7) Failed to connect to ::1 port 4001: Connection refused

ध्यान देने योग्य बातें: डॉकटर 1.7.1। IPv6 कंटेनर के लिए सक्षम नहीं है , इसलिए IPv6 iptable नियम नहीं हैं। (ip6tables -v -L कुछ नहीं देता है)

मेरा सवाल है: अनुरोध क्यों अटक जाता है, और क्या कर रहा है?


1
क्या आप हमें "netstat -6 -an" का आउटपुट दिखाएंगे?
रुई एफ रिबेरो

हां, डॉकटर उस बंदरगाह पर सुन रहा है: tcp6 0 0 :::8500 :::* LISTEN 1648/docker आकर्षक। क्यों? और यह क्यों अवरुद्ध है?
mknecht

सुन और कॉन्फ़िगर नहीं किया गया है, या IPv6 sysctl में अक्षम है, मुझे लगता है। nginx, apache, lIIIttp, क्या आप पोस्ट के लिए प्रश्न में वेब सर्वर को जोड़ेंगे, कृपया?
रुई एफ रिबेरो

कंटेनर के अंदर, कंसुल, कॉन्फ़िगरेशन के लिए एक महत्वपूर्ण-मूल्य स्टोर, सुन रहा है। लेकिन मुझे नहीं लगता कि यह प्रासंगिक है: कंटेनर IPv6- सक्षम नहीं किया गया है। यह अनुरोध कभी भी कौंसल तक नहीं पहुंचना चाहिए। मैं किस परत पर नहीं फंसता, हालांकि। होस्ट पर, /proc/sys/net/ipv6/conf/all/disable_ipv60 देता है, इसलिए IPv6 सक्षम होना चाहिए।
mknecht

2
इसका ज्यादा मतलब नहीं है। आप IPv6 को sysctl में भी निष्क्रिय कर सकते हैं, और नए कर्नेल में, जब तक कि प्रोग्राम IPv6 सॉकेट से जुड़ जाता है, अनुरोध सम्मानित होता है। गधे में दर्द, जैसा कि आपको प्रत्येक डेमन के माध्यम से जाना चाहिए जो IPv6 का समर्थन करता है और IPv6 कॉन्फ़िगरेशन को अक्षम करता है।
रुई एफ रिबेरो 14

जवाबों:


0

IPv6 और अग्रेसिव फ़ॉरवर्डिंग सक्षम करें।

# cat /etc/sysctl.conf | grep ipv6
net.ipv6.conf.all.forwarding=1
net.ipv6.conf.all.disable_ipv6=0
net.ipv6.conf.default.disable_ipv6=0

1
जाहिर है, ओपी कुछ काम करने की कोशिश नहीं कर रहा है; वास्तविक प्रश्न "अनुरोध क्यों अटक जाता है, और क्या कर रहा है?"। क्या आपका जवाब उसके लिए स्पष्टीकरण प्रदान करता है? यदि हां, तो क्या आप स्पष्ट कर सकते हैं कि कैसे?
fra-san
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.