Nguyên nhân và hướng sửa lỗi No Internet Access dù vẫn có thể truy cập các Website bằng trình duyệt bình thường.

Windows hiển thị icon “No Internet Access” trên Taskbar dù vẫn truy cập Internet bình thường là một lỗi rất khó chịu, cả về hình thức là cái icon cho đến việc ảnh hưởng hoạt động một số chức năng như đồng bộ OneDrive.

Nguyên nhân là do Windows 10 có tính năng Microsoft Internet Connection Test. Tính năng này đánh giá trạng thái Internet bằng cách thử truy vấn (probe) DNS server và tải file từ website của Microsoft. Nhưng vì lý do nào đó (như cá mập cắn cáp chẳng hạn) không phải lúc nào cũng truy vấn thành công.

Thông tin về các DNS server và test website được định nghĩa tại registry key HKEY_LOCAL_MACHINE \SYSTEM\ CurrentControlSet\ Services\ NlaSvc\ Parameters\ Internet, nội dung như sau:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet]
"ActiveDnsProbeContent"="131.107.255.255"
"ActiveDnsProbeContentV6"="fd3e:4f5a:5b81::1"
"ActiveDnsProbeHost"="dns.msftncsi.com"
"ActiveDnsProbeHostV6"="dns.msftncsi.com"
"ActiveWebProbeContent"="Microsoft Connect Test"
"ActiveWebProbeContentV6"="Microsoft Connect Test"
"ActiveWebProbeHost"="www.msftconnecttest.com"
"ActiveWebProbeHostV6"="ipv6.msftconnecttest.com"
"ActiveWebProbePath"="connecttest.txt"
"ActiveWebProbePathV6"="connecttest.txt"
"CaptivePortalTimer"=dword:00000000
"CaptivePortalTimerBackOffIncrementsInSeconds"=dword:00000005
"CaptivePortalTimerMaxInSeconds"=dword:0000001e
"EnableActiveProbing"=dword:00000001
"PassivePollPeriod"=dword:0000000f
"StaleThreshold"=dword:0000001e
"WebTimeout"=dword:00000023

Như ta thấy có 2 cấu hình tương ứng để kiểm tra kết nối của IPv4 và IPv6. Như cấu hình trên, Windows 10 sẽ thực hiện 2 việc:

  • Truy vấn địa chỉ dns.msftncsi.com và kỳ vọng nhận được địa chỉ IP là 131.107.255.255 với IPv4 hoặc fd3e:4f5a:5b81::1 với IPv6.
  • Truy cập www.msftconnecttest.com bằng IPv4 hoặc ipv6.msftconnecttest.com bằng IPv6 bằng giao thức HTTP để tải một file có tên là connecttest.txt. Nội dung của file sau khi tải là Microsoft Connect Test.

Tất nhiên nếu một trong hai truy vấn trên gặp vấn đề thì kết quả sẽ là “No Internet Access” thôi.

Ngoài ra những truy vấn trên được thực hiện với số lượng lớn nên sẽ ảnh hưởng đến hiệu năng của máy. Ta có thể thấy các service như svchost.exe (NetworkService)svchost.exe (utcsvc) thi đua vã vào máy chủ kia.

Từ đó ta có hẳn 2 cách để xử lý vấn đề này:

  1. Sửa lại registry để Windows truy vấn những địa chỉ khác dễ ăn hơn.
  2. Tắt hẳn tính năng Microsoft Internet Connection Test đi.

Sửa registry để truy vấn địa chỉ khác

Như đã nói ở trên, Windows 10 thực hiện hai truy vấn 1) là DNS và 2) là tải file connecttest.txt nên bạn có thể trỏ đi đâu bạn thấy ổn định nhất là được.

Mở Registry Editor (Win+C › regedit), rồi truy cập key HKEY_LOCAL_MACHINE\ SYSTEM\ CurrentControlSet\ Services\ NlaSvc\ Parameters\ Internet.

Thứ nhất về vấn đề DNS, tôi sửa địa chỉ của Microsoft DNS thành Google DNS

"ActiveDnsProbeContent"="8.8.4.4"
"ActiveDnsProbeContentV6"="2001:4860:4860::8844"
"ActiveDnsProbeHost"="dns.google"
"ActiveDnsProbeHostV6"="dns.google"

Thứ hai về vấn đề tải file, thì tôi chỉ gặp vấn đề ở cái host IPv6 ipv6.msftconnecttest.com vì thế tôi chỉ thay đổi địa chỉ host IPv6 thành host của IPv4.

"ActiveWebProbeHostV6"="www.msftconnecttest.com"
Chỉnh sửa cấu hình của Microsoft Internet Connection Test bằng Registry Editor

Hoặc nếu bạn có một cái Web server nào đó, bạn có thể tạo một file text có nội dung bất kỳ rồi sửa cấu hình để Connection Test truy vấn cũng được.

Ví dụ bạn có một file text tên là connecttest.txt có nội dung là iCreativ Connect Test đặt tại thư mục ‘/’ của host http://icreativ.pro (HTTP nhé) thì ta cấu hình như sau:

"ActiveWebProbeContent"="iCreativ Connect Test"
"ActiveWebProbeContentV6"="iCreativ Connect Test"
"ActiveWebProbeHost"="icreativ.pro"
"ActiveWebProbeHostV6"="icreativ.pro"
"ActiveWebProbePath"="connecttest.txt"
"ActiveWebProbePathV6"="connecttest.txt"

OK, hãy đóng Registry Editor rồi thử reboot máy xem có đỡ hơn không.

Tắt tính năng Microsoft Internet Connection Test

Thực ra theo tôi tính năng này cũng chẳng cần thiết lắm. Chẳng những tốn tài nguyên, mà sau nhiều lần hụt hẫng vì cái icon này, tôi cũng không còn nhu cầu ngắm nó nữa.

Để tắt tính năng này, bạn hãy mở Registry Editor (Win+C › regedit), rồi truy cập key HKEY_LOCAL_MACHINE\ SYSTEM\ CurrentControlSet\ Services\ NlaSvc\ Parameters\ Internet giống như trên.

Tìm EnableActiveProbing rồi thiết lập giá trị (value data) của nó bằng 0.

Tắt tính năng Microsoft Internet Connection Test

Đóng Registry Editor lại rồi khởi động lại máy.