Thêm phần này vào dòng kernel của bạn trong bộ tải khởi động để vô hiệu hóa IPv6 hoàn toàn:
ipv6.disable=1
Nếu bạn đang sử dụng Grub (nếu bạn chưa cài đặt trình tải khởi động của riêng mình, thì bạn đang sử dụng Grub), dòng kernel của bạn sẽ trông giống như thế này:
linux /boot/vmlinuz-linux root=UUID=978e3e81-8048-4ae1-8a06-aa727458e8ff ipv6.disable=1
Cách tiếp cận được đề xuất, để thêm một cái gì đó vào dòng kernel, là thêm tham số kernel mong muốn vào GRUB_CMDLINE_LINUX_DEFAULT
biến trong /etc/default/grub
tệp:
GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1"
Khi bạn đã thêm nó vào /etc/default/grub
, hãy chạy lệnh sau để tạo lại grub.cfg
:
sudo grub-mkconfig -o /boot/grub/grub.cfg
Ngoài ra, việc thêm ipv6.disable_ipv6=1
thay vào đó sẽ giữ chức năng ngăn xếp IPv6 nhưng sẽ không gán địa chỉ IPv6 cho bất kỳ thiết bị mạng nào của bạn.
HOẶC LÀ
Để tắt IPv6 qua sysctl, hãy đặt phần sau vào /etc/sysctl.conf
tệp của bạn :
net.ipv6.conf.all.disable_ipv6 = 1
Đừng quên nhận xét bất kỳ máy chủ IPv6 nào trong /etc/hosts
tệp của bạn :
#::1 localhost.localdomain localhost
CHÚ THÍCH
khởi động lại có thể được yêu cầu cho phương pháp sysctl và chắc chắn cần phải khởi động lại cho phương pháp tiếp cận dòng kernel.
HOẶC LÀ
Để tạm thời vô hiệu hóa ipv6:
sysctl -w net.ipv6.conf.all.disable_ipv6 = 1
Để tạm thời kích hoạt nó:
sysctl -w net.ipv6.conf.all.disable_ipv6 = 0
Vì vậy, nếu bạn cần vô hiệu hóa ipv6 trong một điều kiện nhất định , hãy viết một tập lệnh bash ở đâu đó dọc theo các dòng này:
#!/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
CHÚ THÍCH
Bạn có thể cần phải tắt bất kỳ máy chủ ipv6 nào trong /etc/hosts
tệp của mình cho phương thức này, giống như tôi đã đề xuất trong phương pháp trước.