เพิ่มสิ่งนี้ลงในเคอร์เนลไลน์ในบูตโหลดเดอร์ของคุณเพื่อปิดการใช้งาน IPv6 ทั้งหมด:
ipv6.disable=1
หากคุณกำลังใช้ Grub (หากคุณยังไม่ได้ติดตั้ง boot-loader ของคุณเองคุณกำลังใช้ Grub อยู่) สายเคอร์เนลของคุณควรมีลักษณะดังนี้:
linux /boot/vmlinuz-linux root=UUID=978e3e81-8048-4ae1-8a06-aa727458e8ff ipv6.disable=1
แนวทางที่แนะนำสำหรับการเพิ่มบางอย่างลงในบรรทัดเคอร์เนลคือการเพิ่มพารามิเตอร์เคอร์เนลที่ต้องการให้กับGRUB_CMDLINE_LINUX_DEFAULT
ตัวแปรใน/etc/default/grub
ไฟล์:
GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1"
เมื่อคุณเพิ่มเข้าไปแล้วให้/etc/default/grub
รันคำสั่งต่อไปนี้เพื่อสร้างของคุณใหม่grub.cfg
:
sudo grub-mkconfig -o /boot/grub/grub.cfg
อีกวิธีหนึ่งการเพิ่มipv6.disable_ipv6=1
แทนจะทำให้ IPv6 stack ทำงานได้ แต่จะไม่กำหนดที่อยู่ IPv6 ให้กับอุปกรณ์เครือข่ายของคุณ
หรือ
หากต้องการปิดการใช้งาน IPv6 ผ่าน sysctl ให้ใส่ข้อมูลต่อไปนี้ใน/etc/sysctl.conf
ไฟล์ของคุณ:
net.ipv6.conf.all.disable_ipv6 = 1
อย่าลืมคอมเม้นต์โฮสต์ IPv6 ใด ๆ ใน/etc/hosts
ไฟล์ของคุณ:
#::1 localhost.localdomain localhost
บันทึก
รีบูตอาจจะจำเป็นสำหรับวิธี sysctl และมีการรีบูตแน่นอนจำเป็นสำหรับวิธีเส้นเคอร์เนล
หรือ
หากต้องการปิดใช้งาน ipv6 ชั่วคราว :
sysctl -w net.ipv6.conf.all.disable_ipv6 = 1
หากต้องการเปิดใช้งานชั่วคราว :
sysctl -w net.ipv6.conf.all.disable_ipv6 = 0
ดังนั้นหากคุณต้องการปิดการใช้งาน ipv6 บนเงื่อนไขที่กำหนดให้เขียนสคริปต์ทุบตีที่ใดที่หนึ่งตามบรรทัดเหล่านี้:
#!/bin/bash
ipv6_disabled="$(sysctl net.ipv6.conf.all.disable_ipv6 | awk '{print $NF}')"
if (connected_to_vpn &> /dev/null); then
(($ipv6_disabled)) || sysctl -w net.ipv6.conf.all.disable_ipv6=1
else
(($ipv6_disabled)) && sysctl -w net.ipv6.conf.all.disable_ipv6=0
fi
บันทึก
คุณอาจต้องปิดการใช้งานโฮสต์ ipv6 ใด ๆ ใน/etc/hosts
ไฟล์ของคุณสำหรับวิธีนี้เช่นเดียวกับที่ฉันแนะนำในวิธีก่อนหน้านี้