IPv6 là một trong những bước phát triển lớn nhất trong mạng máy tính. Nó cung cấp không gian địa chỉ lớn hơn cho Internet cùng với những cải tiến về định tuyến và khả năng tìm địa chỉ toàn cầu. Điều đó cho thấy, việc áp dụng IPv6 vẫn còn ở giai đoạn sơ khai và việc chạy các máy tính có hỗ trợ IPv6 trên mạng chỉ có IPv4 có thể dẫn đến các sự cố kết nối. Bài viết này sẽ chỉ cho bạn cách bạn có thể vô hiệu hóa IPv6 trên máy Linux của mình và sử dụng nó trong mạng chỉ có IPv4.
Cách xác minh trạng thái IPv6
Cách nhanh nhất để kiểm tra trạng thái IPv6 của máy là chạy lệnh ip addr trên terminal. Đây là tiện ích sẽ in tất cả các interface mạng có sẵn đang chạy ngăn xếp mạng IPv6:
ip -6 addr
Bạn cũng có thể kiểm tra nhị phân kernel của máy tính nếu nó đang chạy mô-đun kernel cho IPv6. Lệnh sau sẽ in đường dẫn file “/proc” cho mô-đun IPv6 nếu kernel đang tích cực load nó:
ls /proc/net/if_inet6
Cách vô hiệu hóa IPv6 trong Linux
Trong hầu hết các trường hợp, việc vô hiệu hóa vĩnh viễn giao thức IPv6 trên Linux sẽ yêu cầu bạn thêm một đối số mới vào bootloader của mình. Để thực hiện việc này, hãy mở file cấu hình GRUB bằng trình soạn thảo văn bản yêu thích của bạn:
sudo nano /etc/default/grub
Nhấn Ctrl + W, sau đó tìm kiếm “GRUB_CMDLINE_LINUX_DEFAULT”.
Viết ipv6.disable=1 vào cuối giá trị của biến.
Lưu (Ctrl + O) và thoát (Ctrl + X) trình soạn thảo văn bản.
Load lại file cấu hình của bootloader của bạn:
sudo grub-mkconfig -o /boot/grub/grub.cfg
Khởi động lại hệ thống của bạn, sau đó chạy ls /proc/net/if_inet6 để kiểm tra xem bạn đã vô hiệu hóa thành công IPv6 trên máy của mình chưa.
Vô hiệu hóa IPv6 trên các hệ thống dựa trên Red Hat
Ngoài việc cấu hình trực tiếp bootloader của máy tính, bạn cũng có thể vô hiệu hóa IPv6 ở cấp độ người dùng. Điều này hữu ích nếu bạn chỉ muốn vô hiệu hóa IPv6 trên một số interface mạng nhất định.
Để vô hiệu hóa IPv6 trên các bản phân phối dựa trên Red Hat, hãy mở phiên terminal mới sau đó liệt kê tất cả các interface mạng có sẵn cho máy của bạn:
ip -6 addr
Tìm interface mạng mà bạn muốn vô hiệu hóa ngăn xếp IPv6. Trường hợp ví dụ sẽ tắt nó trên interface Ethernet “enp1s0”.
Tạo một file cấu hình mới cho ngăn xếp IPv6 của bạn trong “/etc/sysctl.d”.
sudo nano /etc/sysctl.d/40-ipv6.conf
Dán các dòng code sau vào file cấu hình mới của bạn:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.YOUR-INTERFACE-NAME.disable_ipv6 = 1
Lưu file cấu hình mới của bạn, sau đó chạy các lệnh sau để load lại cài đặt mới của bạn:
sudo sysctl -p /etc/sysctl.d/ipv6.conf
sudo systemctl restart systemd-sysctl.service
Vào bên trong file hosts của máy, sau đó thêm dấu thăng (#) ở đầu mỗi dòng chứa địa chỉ IPv6.
Tạo bản sao lưu initramfs ban đầu của máy, sau đó tạo lại nó mà không cần hỗ trợ IPv6:
sudo cp /boot/initramfs-$(uname -r).img /initramfs-backup.img
sudo dracut -f
Chạy lệnh nmcli và vô hiệu hóa phương thức IPv6 của nó cho interface của bạn. Điều này đảm bảo rằng cài đặt của bạn sẽ tồn tại trong suốt quá trình khởi động lại hệ thống.
sudo nmcli connection modify YOUR-INTERFACE-NAME ipv6.method "disabled"
Cuối cùng, khởi động lại hệ thống của bạn để áp dụng các cài đặt mới.
Vô hiệu hóa IPv6 trên hệ thống dựa trên Debian
Giống như trong các bản phân phối dựa trên Red Hat, bạn cũng có thể vô hiệu hóa giao thức IPv6 khỏi userland của các hệ thống dựa trên Debian. Để thực hiện việc này, hãy mở một terminal mới sau đó chạy ip -6 addr để tìm tên interface mà bạn muốn vô hiệu hóa IPv6 trên đó:
Chạy các lệnh sau để vô hiệu hóa ngăn xếp IPv6 trên một interface cụ thể:
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
sudo sysctl -w net.ipv6.conf.YOUR-INTERFACE-NAME.disable_ipv6=1
Áp dụng các cài đặt mới bằng cách load lại daemon sysctl của bạn và service Systemd của nó:
sudo sysctl -p
sudo systemctl restart systemd-sysctl.service
Vô hiệu hóa phương thức IPv6 để đảm bảo rằng Systemd sẽ không ghi đè cài đặt tùy chỉnh của bạn:
sudo nmcli connection modify YOUR-CONNECTION-NAME ipv6.method "disabled"
Lưu ý: Bạn có thể tìm thấy tên interface mạng của mình trong nmcli bằng cách chạy nmcli connnection show.
Kiểm tra xem interface mạng của bạn có còn địa chỉ IPv6 hay không bằng cách chạy ip addr.
Vô hiệu hóa IPv6 trên Ubuntu
Vô hiệu hóa IPv6 vĩnh viễn trên Ubuntu
Lưu ý : Theo mặc định, IPv6 được bật và sử dụng song song với IPv4.
Để tắt IPv6 trên hệ thống Ubuntu của bạn, hãy mở terminal bằng cách nhấn Ctrl + Alt + T và sử dụng trình chỉnh sửa nano để mở file cấu hình sysctl:
sudo nano /etc/sysctl.conf
Bây giờ, thêm code sau vào file cấu hình để vô hiệu hóa các service IPv6:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
Trong đoạn code trên:
- Dòng đầu tiên vô hiệu hóa IPv6 cho tất cả các interface mạng trên hệ thống
- Dòng thứ hai nhắm mục tiêu cụ thể vào interface mặc định và vô hiệu hóa nó
- Dòng thứ ba vô hiệu hóa IPv6 trên interface loopback, nghĩa là máy sẽ không sử dụng IPV6 cho giao tiếp nội bộ
Sau khi thêm code đã cho, nhấn Ctrl + O để lưu thay đổi và thoát khỏi trình chỉnh sửa. Bây giờ, áp dụng các thay đổi cho hệ thống với:
sudo sysctl -p
Khởi động lại các service mạng của bạn với:
sudo systemctl restart systemd-networkd
Xác minh trạng thái của các service IPv6 bị vô hiệu hóa bằng cách chạy:
cat /proc/sys/net/ipv6/conf/all/disable_ipv6
Nếu đầu ra hiển thị trạng thái là "1", điều đó có nghĩa là IPv6 đã bị vô hiệu hóa thành công trên Ubuntu.
Vô hiệu hóa tạm thời IPv6 trên Ubuntu
Để tạm thời tắt IPv6 trên Ubuntu, hãy chạy lệnh systemctl sau với tùy chọn -w:
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
Bây giờ, khởi động lại các service mạng với:
sudo systemctl restart systemd-networkd
Do đó, tất cả các dependency sẽ được cấu hình để tạm thời vô hiệu hóa các service IPv6.
Ubuntu giúp việc kiểm soát cài đặt IPv6 tương đối đơn giản, đảm bảo rằng bạn có thể cấu hình hoạt động mạng của hệ thống theo nhu cầu cụ thể của mình. Hãy nhớ sử dụng kiến thức này một cách cẩn thận vì IPv6 sẽ tiếp tục đóng một vai trò quan trọng trong cơ sở hạ tầng Internet toàn cầu.
Mẹo: Nếu bạn là người dùng Windows, đây là cách bạn có thể vô hiệu hóa IPv6 trong Windows.