Cách tắt hoàn toàn IPv6 và chuyển sang chế độ chỉ IPv4

IPv6 được cho là tương lai của mạng, và về lâu dài đúng là như vậy. Nhưng thực tế đôi khi nó gây ra nhiều rắc rối hơn là giải quyết: VPN bị rò rỉ ra ngoài đường hầm, kết nối chậm do nhà mạng xử lý IPv6 kém, phần mềm cũ hoặc NAS không hỗ trợ. Trong các trường hợp này, quay về chỉ dùng IPv4 thường khắc phục được sự cố trong vài phút. Đây là cách làm đúng tùy theo hệ thống của bạn.

Trước khi tắt IPv6, hãy tự hỏi điều này

Tắt IPv6 không phải là một ý hay về nguyên tắc. Nếu mọi thứ trên máy bạn vẫn ổn, hãy để nó bật: đó là hướng mà internet đang đi và ngày càng nhiều dịch vụ dựa vào nó. Những lý do hợp lệ để tắt nó rất cụ thể:

  • VPN của bạn không bảo vệ IPv6 và làm lộ địa chỉ thật (bài test trên ipleak.net hoặc dnsleaktest.com sẽ xác nhận điều này)
  • Bạn gặp tình trạng chậm hoặc lỗi kết nối biến mất khi tắt IPv6, dấu hiệu nhà mạng xử lý nó kém
  • Một thiết bị mạng cũ hoặc ứng dụng cụ thể không hỗ trợ IPv6 và gây xung đột
  • Bạn quản trị mạng doanh nghiệp nơi IPv6 chưa được triển khai và là bề mặt tấn công không cần thiết

Nếu không có trường hợp nào áp dụng cho bạn, việc tắt IPv6 chẳng đem lại lợi ích gì và có nguy cơ phá vỡ thứ gì đó về sau.

Tắt IPv6 trên Windows

Trên Windows 10 và Windows 11, cách qua giao diện đồ họa là đơn giản nhất. Mở các kết nối mạng: nhấp chuột phải vào biểu tượng mạng, sau đó chọn "Cài đặt Mạng và Internet" và nhấp vào "Thay đổi tùy chọn bộ điều hợp".

Nhấp chuột phải vào kết nối đang hoạt động (Wi-Fi hoặc Ethernet), chọn "Thuộc tính", sau đó trong danh sách bỏ chọn ô "Internet Protocol Version 6 (TCP/IPv6)". Xác nhận bằng OK.

Cách này chỉ tắt IPv6 trên giao diện đó. Để tắt hoàn toàn ở cấp hệ thống, cần dùng đến registry. Mở Registry Editor (phím Windows + R, gõ regedit) và đi đến:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters

Tạo một giá trị DWORD (32-bit) mới tên là DisabledComponents và đặt giá trị ff ở hệ thập lục phân để tắt tất cả các thành phần IPv6. Khởi động lại máy tính để áp dụng thay đổi.

Lưu ý: Microsoft chính thức không khuyến nghị tắt hoàn toàn IPv6 qua registry, vì một số thành phần Windows mong đợi nó có mặt. Nếu sau đó bạn nhận thấy hành vi lạ (vấn đề chia sẻ mạng, khởi động chậm), đặt lại DisabledComponents về 0 hoặc xóa khóa đó.

Tắt IPv6 trên Mac

Trên macOS, việc tắt được thực hiện qua Terminal, vì tùy chọn này đã không còn trong giao diện đồ họa từ vài phiên bản. Mở Terminal và trước tiên xác định tên dịch vụ mạng:

networksetup -listallnetworkservices

Thông thường bạn sẽ thấy "Wi-Fi" và "Ethernet". Để tắt IPv6 trên Wi-Fi, gõ:

sudo networksetup -setv6off Wi-Fi

Với Ethernet:

sudo networksetup -setv6off Ethernet

Hệ thống sẽ yêu cầu mật khẩu quản trị viên. Để bật lại IPv6 sau này, thay -setv6off bằng -setv6automatic.

Tắt IPv6 trên Linux

Trên hầu hết các bản phân phối Linux (Ubuntu, Debian, Fedora), cách làm sạch dùng sysctl. Chỉnh sửa tệp cấu hình:

sudo nano /etc/sysctl.conf

Thêm ba dòng này vào cuối tệp:

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

Áp dụng thay đổi mà không cần khởi động lại bằng:

sudo sysctl -p

Cách này có thể đảo ngược: đặt lại các giá trị về 0 hoặc xóa các dòng, rồi chạy lại sysctl -p.

Tắt IPv6 trên router

Nếu bạn muốn tắt IPv6 cho toàn bộ mạng cùng lúc, hãy làm trên router. Đăng nhập vào giao diện quản trị bằng cách nhập địa chỉ IP của nó vào trình duyệt (thường là 192.168.1.1).

Tìm phần IPv6 trong cài đặt mạng hoặc WAN. Vị trí chính xác tùy thuộc vào kiểu máy, nhưng thường nằm dưới "WAN", "Internet" hoặc "Cài đặt nâng cao". Tắt tùy chọn và lưu lại. Tất cả thiết bị trong mạng sẽ trở về IPv4 sau khi DHCP lease được gia hạn hoặc sau khi khởi động lại.

Kiểm tra IPv6 đã thực sự tắt

Khi hoàn tất, hãy kiểm tra kết quả. Cách dễ nhất là truy cập ipme.co, nơi cho bạn biết kết nối đang dùng IPv4 hay IPv6. Bạn cũng có thể kiểm tra qua dòng lệnh.

Trên Windows, gõ ipconfig trong Command Prompt: bạn không nên thấy dòng "IPv6 Address" nữa. Trên Mac và Linux, ifconfig hoặc ip a không nên hiển thị địa chỉ bắt đầu bằng inet6 trên các giao diện đang hoạt động.

Nếu bạn vẫn thấy một địa chỉ IPv6 bắt đầu bằng fe80::, đừng lo: đó là địa chỉ link-local, hoàn toàn nội bộ, không ảnh hưởng đến kết nối internet và một số lớp hệ thống vẫn giữ nó dù sao.