IPv6 को स्थायी रूप से कैसे निष्क्रिय करें?


54

हम टर्मिनल कमांड के माध्यम से आईपीवी 6 सिस्टम को कैसे अक्षम कर सकते हैं?

मैंने संपादन /etc/modprobe.d/aliases और प्रतिस्थापन पढ़ा है :

alias net-pf-10 ipv6

साथ में:

alias net-pf-10 off
alias ipv6 off

क्या यह लागू करने के लिए सुरक्षित है और क्या यह रिबूट के पार स्थायी रूप से ipv6 को अक्षम करता है?


5
आप स्थायी रूप से IPv6 को अक्षम क्यों करना चाहते हैं?
एंडरसन ग्रीन

2
पूरी तरह से हैं (ठीक है, मैं वास्तव में एमएस विंडोज पर एक पा सकता हूं) आईपीवी 6 को बंद करने का कोई कारण नहीं है। आप ऐसा क्यों करना चाहते हो?
एंडर्स

17
वास्तव में ipv6 को चालू करने के लिए कोई कारण नहीं है। सब कुछ अभी भी ipv4 है और यह किसी को कोई लाभ नहीं देता है जो एक छोटे नेटवर्क का प्रबंधन कर रहा है और जिसके पास सीमित समय है। यह हमले और संभावित गलतफहमी के लिए एक और वेक्टर है और इसे निष्क्रिय करने के लिए विवेकपूर्ण है। शायद कोई भी IETF इंजीनियर नहीं सुनना चाहता, लेकिन यह उनकी समस्या है मेरी नहीं। मैं इसे तब सक्षम करूँगा जब मेरे पास एक अच्छा कारण होगा, तब तक, बस एक और हमला वेक्टर मुझे प्रबंधित करना होगा।
जोनाथन एस। फिशर

8
IPv6 को निष्क्रिय करने से आप IPv6 के हमलों से प्रतिरक्षा नहीं कर सकते हैं। इसे सक्षम किया जाना बेहतर है, इससे निपटें और इससे सीखें, यही एकमात्र तरीका है जो आपके वातावरण को थोड़ा सुरक्षित बनाता है। इसके बजाय हर किसी के लिए "आईपीवी 4 को स्थायी रूप से अक्षम कैसे करें" सीखना बेहतर है। IPv6 IPv4 की तुलना में कहीं अधिक आसान है, इसके साथ शुरू करने के लिए, कोई NAT नहीं है, इसलिए, प्रबंधन करने के लिए एक कम चीज ... इंटरनेट वास्तव में तेजी से बढ़ रहा है, कुछ वर्षों में, IPv6 नेटवर्क IPv4 से बड़ा होगा, इसलिए, IPv4 के साथ, आप वास्तविक इंटरनेट से बाहर हो जाएंगे। आगे बढ़ो यार! अपना IP अपग्रेड करें !! बदलाव अच्छी बात है।
थियागो सीएमसी

7
@ जोनाथन.फिशर और अन्य - ये टिप्पणियां कोई मददगार नहीं हैं। सिर्फ इसलिए कि आप IPv6 को निष्क्रिय करने के एक कारण के बारे में नहीं जानते होंगे, इसका मतलब यह नहीं है कि कोई भी नहीं है। एक प्रमुख मामला वीपीएन सेवाओं के लिए है जो आईपीवी 6 का समर्थन नहीं करते हैं। यदि आप इसे अक्षम नहीं करते हैं, तो आप अपना IPv6 पता लीक कर देंगे।
स्कोन

जवाबों:


74

मैंने निम्नलिखित पंक्तियों को डालते हुए IPv6 को सफलतापूर्वक अक्षम कर दिया है /etc/sysctl.conf:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

परिवर्तनों को लोड करने के लिए यह कमांड भी चलाएं

sudo sysctl -p

VMware पर उबंटु पिंग नहीं हो सकता है, और मैं उबंटू पर आईपीवी 6 को बंद कर देता हूं, यह अब ठीक है।
होंगहु।

12
इन लाइनों को sysctl.conf में जोड़ने के बाद, sudo sysctl -pपरिवर्तन को प्रभावी होने देने के लिए रन या रिबूट करें।
रजत गुप्ता

4
मुझे बग पर वर्कअराउंड के रूप में केवल वायरलेस पर ऐसा करने की आवश्यकता है ताकि मैं फिर से कनेक्ट कर सकूं। यहां केवल एक एडॉप्टर के लिए इसे कैसे किया जाता है:net.ipv6.conf.wlan0.disable_ipv6 = 1
सेमी

1
यह उबंटू 17.10 पर काम नहीं करता है। ग्रब फिक्स के लिए नीचे NullNoname टिप्पणी देखें।
ल्यूक

1
उबंटू 16.04 पर भी काम नहीं करता है। ग्रब विधि काम करती है।
पेंघ गेंग

53

यदि आपका पीसी बूट समय (जो मेरे लिए मामला है) पर /etc/sysctl.conf लोड नहीं करता है, तो ग्रब से IPv6 को अक्षम करने की आवश्यकता है। लिनक्स कर्नेल में एक बूट विकल्प है जिसका नाम "ipv6.disable = 1" है जो स्टार्टअप से IPv6 को निष्क्रिय करता है।

बूट विकल्पों को संपादित करने के लिए, रूट यूजर के रूप में किसी भी टेक्स्ट एडिटर के साथ "/ etc / default / grub" संपादित करें:

sudo nano /etc/default/grub

वह रेखा ढूंढें जिसमें "GRUB_CMDLINE_LINUX_DEFAULT" शामिल हो:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

बूट विकल्प में "ipv6.disable = 1" जोड़ें, फिर अपनी ग्रब फ़ाइल सहेजें:

GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 quiet splash"

अंत में, अपडेट ग्रब करें:

sudo update-grub

6
+1 यह काम करता है और पूरी तरह से IPv6 को निष्क्रिय कर देता है, इसलिए /proc/sys/net/ipv6/बाईं ओर कोई निशान नहीं है जो समस्या उत्पन्न कर सकता है जैसे X11 forwarding request failedकि sshdगैर-कॉन्फ़िगर किए गए IPv6 इंटरफ़ेस से बांधने का प्रयास करता है। ध्यान दें कि इसी तरह आप शुद्ध आईपीवी 6 वीएम पर इस तरह से आईपीवी 4 से छुटकारा पा सकते हैं। धन्यवाद।
तिनो

7

कार्वाल्हो के जवाब सहित sudo sysctl -Pमुझे चलाने के बारे में टिप्पणी ने सबसे अधिक मदद की है।

हालांकि, मेरे मामले में कम से कम:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.<mydevice>.disable_ipv6 = 1

और ऐसा लगता है कि दूसरी पंक्ति आवश्यक थी।

शायद यह इस तथ्य के साथ करना है कि मैं टीपी-लिंक आर्चर टी 2 यू का उपयोग कर रहा हूं, जिसके लिए मुझे कस्टम से स्रोत से ड्राइवर का निर्माण करना था।
मेरी धारणा यह है कि परिणामस्वरूप, <mydevice>" all" में से एक के रूप में नहीं गिना जाता है ।
इसलिए, संक्षेप में, यदि आपने एक कस्टम (कस्टम) नेटवर्किंग ड्राइवर जोड़ा है, तो net.ipv6.conf.all.disable_ipv6 = 1IPv6 नेटवर्किंग को अक्षम करने के लिए पर्याप्त नहीं हो सकता है।

हालांकि स्वीकार करना होगा, कि मैंने रेखा की कोशिश नहीं की
net.ipv6.conf.default.disable_ipv6 = 1


1
उल्लेख करना कि विभिन्न उपकरणों को अक्षम करना कभी-कभी आवश्यक होता है।
स्कोन

defaultलाइन की कमी शायद यहां की समस्या है। अपने ड्राइवर बूट प्रक्रिया जब sysctl मार डाला गया था में बिंदु पर अभी तक लोड नहीं किया गया था, तो यह में शामिल नहीं किया गया allहै - लेकिन डिफ़ॉल्ट सेटिंग मतलब था यह सेटिंग को बाद में प्राप्त होंगे, जब यह किया गया था भरा हुआ।
चार्ल्स डफी

1
मेरे पास defaultप्रविष्टि थी और मुझे इसे सफलतापूर्वक अक्षम करने के लिए विशिष्ट डिवाइस को कॉन्फ़िगर करना था।
अल्फोंस निशिकोवा

7

यह देखने के लिए कि आपके कंप्यूटर पर ipv6 सक्षम है या नहीं, कैसे देखें

test -f /proc/net/if_inet6 && echo "Running kernel is IPv6 ready"

अगर आप देखें

Running kernel is IPv6 ready

यह सक्षम है।

यदि आप कोई आउटपुट नहीं देखते हैं, तो यह नहीं है।

IPv6 को अक्षम करने के लिए यदि इस पृष्ठ पर अन्य उत्तर आपके लिए काम नहीं करते हैं, तो ipv6 को सभी को एक साथ ब्लैकलिस्ट करें। ऐसा करने के लिए, निम्न आदेश का उपयोग करें:

echo 'blacklist ipv6' | sudo tee -a '/etc/modprobe.d/blacklist.local' >/dev/null 

इसके अलावा, यह भी मदद कर सकता है:

echo 'install ipv6 /bin/true' | sudo tee -a '/etc/modprobe.d/blacklist.local' >/dev/null

परिवर्तन प्रभावी होने के लिए रिबूट। यह जाँचने के बाद कि क्या यह कमांड चलाने के बाद फिर से सक्षम है:

test -f /proc/net/if_inet6 && echo "Running kernel is IPv6 ready"

कोई आउटपुट नहीं होना चाहिए।

बूट पर IPV6 को अक्षम करने के बारे में जानकारी के लिए यहां क्लिक करें।


यह उत्तर मानता है कि कर्नेल ipv6सुविधा एक कर्नेल मॉड्यूल है ( blacklist.localइसका लोड रोकने के लिए उपयोग करके )। ऐसा मामला है कि ipv6 को कर्नेल (मॉड्यूल नहीं) में संकलित किया गया है, जिस स्थिति में कर्नेल को ipv6.disable=1बूट paremeter के साथ बूट करना आवश्यक है (ऐसा करने के लिए: (1) sudo gedit /etc/default/grub(2) लाइन के लिए खोज करें GRUB_CMDLINE_LINUX_DEFAULT=<args>और (3) ipv6.disable=1बूट पैरामीटर्स में जोड़ें )
मानवतावाद

@humanityANDpeace आप इस अधिक व्यापक उत्तर में रुचि रख सकते हैं: unix.stackexchange.com/a/190189
mchid

6

यदि आप उबंटू का एक आधुनिक संस्करण (मैं 16.04 एलटीएस पर हूं) का उपयोग कर रहा हूं तो आप इस सुव्यवस्थित समाधान का उपयोग कर सकते हैं:

/etc/sysctl.d/60-ipv6-disable.confनिम्नलिखित पाठ युक्त बनाएँ :

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

Daud service procps start


2
यह इसे करने का सबसे साफ तरीका है - समझ में नहीं आता कि नीचे क्यों रखा गया था। यह फ़ेडोरा / सेंटोस / रेडहैट पर भी काम करता है। इसका यह फायदा है कि यह सिस्टम डिफॉल्ट फाइल में बदलाव नहीं करता है (जैसे सीधे sysctl.conf जैसा कि सबसे लोकप्रिय उत्तर में सुझाया गया है)
कॉस्टिन गुए

@ कॉस्टिन मैंने नीचा नहीं देखा, लेकिन यह हमेशा काम नहीं करेगा। कभी-कभी आपको विशिष्ट डिवाइस नाम (जैसे कस्टम ड्राइवर स्थापना के मामले में) रखना होगा। मेरे जवाब पर अल्फांसो निशिकवास की टिप्पणी देखें।
polynomial_donut

मैं आभारी हूं कि मैंने इस दृष्टिकोण का पालन किया, क्योंकि मैंने एक दूरस्थ सर्वर पर अपना कनेक्शन खो दिया (इसे IPv6 की आवश्यकता थी ), और एक फ़ाइल को हटाने और रीबूट करने के लिए साइट पर अपने सहायक को निर्देशित करना बहुत आसान था।
रोजर ड्यूक

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