netstat - IPv4 डेमॉन केवल एईटी 6 में सूचीबद्ध बंदरगाहों को क्यों सुन रहे हैं?


22

मेरे पास एक कंप्यूटर है:

Linux superhost 3.2.0-4-amd64 #1 SMP Debian 3.2.60-1+deb7u3 x86_64 GNU/Linux

यह सभी इंटरफेस पर पोर्ट 80 पर अपाचे चलाता है, और यह इसमें नहीं दिखा netstat -planA inet, हालांकि यह अप्रत्याशित रूप से इसमें पाया जा सकता है netstat -planA inet6:

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp6       0      0 :::5672                 :::*                    LISTEN      2402/beam.smp   
tcp6       0      0 :::111                  :::*                    LISTEN      1825/rpcbind    
tcp6       0      0 :::9200                 :::*                    LISTEN      2235/java       
tcp6       0      0 :::80                   :::*                    LISTEN      2533/apache2    
tcp6       0      0 :::34611                :::*                    LISTEN      1856/rpc.statd  
tcp6       0      0 :::9300                 :::*                    LISTEN      2235/java       
...
tcp6       0      0 10.0.176.93:80          10.0.76.98:53704        TIME_WAIT   -               
tcp6       0      0 10.0.176.93:80          10.0.76.98:53700        TIME_WAIT   -               

मैं इसे ठीक से TCP4 तक पहुंचा सकता हूं, जैसा कि ऊपर देखा गया है। हालांकि, यहां तक ​​कि इन कनेक्शनों के तहत सूचीबद्ध हैं tcp6। क्यूं कर?


1
सभी IPv4 पते सीधे IPv6 पतों (लेकिन इसके विपरीत नहीं) के लिए मैप करते हैं। देखें: en.wikipedia.org/wiki/IPv6#IPv4-mapped_IPv6_addresses
पैट्रिक

4
कृपया का उपयोग बंद करो netstat? यह एक दशक पहले मर गया । उपयोग iproute2 कीss
mikeserv

जवाबों:


16

डिफ़ॉल्ट रूप से यदि आप अपाचे Listenपैरामीटर को पता निर्दिष्ट नहीं करते हैं , तो यह पते का उपयोग करके आईपीवी 6 पते को संभालता है IPv4-mapped IPv6। आप Apache ipv6 में देख सकते हैं

के उत्पादन में netstatअपाचे मतलब यह नहीं है IPv4 पता पर नहीं सुन रहा है। इसका IPv4-mapped IPv6पता है।


ऐसी अन्य सेवाएँ हैं जो IPv4 पतों को सुनती हैं लेकिन netstat द्वारा tcp6 के रूप में सूचीबद्ध हैं, जैसे ElasticSearch
Mischa Arefiev

मुझे लगता है कि आप @Prickrick द्वारा प्रदान की गई विकिपीडिया लिंक को पढ़ते हैं। वे सभी सेवाएँ जो IPv4- मैप्ड IPv6 एड्रेस का उपयोग करती हैं, tcp6उन्हें netstat के आउटपुट में दिखाया जाएगा ।
शुरुआती

14

इसका कारण यह है क्योंकि सभी IPv4 पते IPv6 पते भी हैं। IPv6 पतों की एक छोटी श्रृंखला को IPv4 पतों की एक-से-एक मैपिंग के लिए उपयोग करने के लिए अलग रखा गया था। उदाहरण के लिए, IPv4 पता 192.0.2.128IPv6 पते के माध्यम से सुलभ है ::ffff:192.0.2.128। ऐसा इसलिए किया गया था कि जो भी एप्लिकेशन केवल IPv6 का समर्थन करते हैं, वे अभी भी IPv4 पते पर सुन सकते हैं। ध्यान दें कि इसका उपयोग IPv6 पते (नॉन-मैप्ड) के लिए नहीं किया जा सकता है, इसमें शामिल अन्य चीजों के बिना IPv4 पते पर बात करने के लिए, क्योंकि IPv4 को पता नहीं होगा कि IPv6 एड्रेस को कैसे हैंडल किया जाए (आप NAT, या अन्य समाधानों का उपयोग कर सकते हैं) हालांकि)।

चूंकि IPv6 में सभी IPv4 पतों का प्रतिनिधित्व किया गया है, जब netstatIPv6 का उपयोग करने वाले ऐप्स को सूचीबद्ध करने के लिए कहा जाता है, तो आपको IPv4 भी मिलने वाला है।
यह प्रतिनिधित्व करते हैं सकता है 10.0.176.93के रूप में ::ffff:10.0.176.93भी, या ::ffff:a00:b05d, लेकिन एप्लिकेशन डेवलपर के एक नियमित रूप से डॉटेड-अंकन IPv4 पता के रूप में यह दिखाने के लिए चुना है।


धन्यवाद, लेकिन यह जवाब नहीं देता है कि नियमित होने पर वे पॉप क्यों नहीं करते हैं-A inet
मिशा आरिफिएव

मुझे लगता है कि सुनने के कारण केवल टीसीपी 6 सॉकेट के रूप में सूचीबद्ध हैं क्योंकि वे वास्तव में आईपीवी 6 सॉकेट हैं, लेकिन अतिरिक्त सुविधा के साथ वे आईपीवी 4 कनेक्शन स्वीकार करते हैं, यदि ऐसा करने के लिए कॉन्फ़िगर किया गया है। सॉकेट्स INADDR_ANY6 से बंधे हैं, और जब पते में एक IPv4 कनेक्शन आता है, तो उपसर्ग के साथ IPv6 पते पर मैप किया जाता है :: ffff: 0000/96। इन मैप किए गए पतों के लिए यह एकमात्र उपयोग है; उन्हें तार पर इस्तेमाल नहीं किया जाना चाहिए।
जोहान मायरेन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.