Lỗi ERR_CONNECTION_CLOSED là gì? Cách khắc phục

Advertisement
ERR_CONNECTION_CLOSED là gì?
ERR_CONNECTION_CLOSED là lỗi của Chrome và Edge với thông báo "Không thể truy cập trang web này. example.com đã đóng kết nối một cách bất ngờ." Trong Chromium, đây là mã lỗi mạng -100, được định nghĩa là "một kết nối đã bị đóng (tương ứng với một gói TCP FIN)."
Gói FIN là cách lịch sự để kết thúc một kết nối TCP. Nó ngược lại với gói reset: không có gì bị crash hay bị kill, một bên chỉ đơn giản nói "tôi xong rồi" và ngắt máy. Vấn đề nằm ở thời điểm. Bên kia đã ngắt kết nối trước khi trình duyệt nhận được trang, nên không có gì để hiển thị.
Một thứ gì đó đã chọn kết thúc kết nối của bạn quá sớm. Đó có thể là máy chủ của trang web, CDN đứng trước nó, bộ lọc trên mạng của bạn, hoặc phần mềm trên chính máy tính của bạn. Các cách khắc phục dưới đây giúp bạn biết đó là thứ nào.
Kết nối bị đóng ở đâu: thường là lúc bắt tay HTTPS
Mã xử lý mạng của Chromium cho biết nên tìm ở đâu. Khi kết nối kết thúc trong lúc bắt tay TLS (HTTPS), lớp mã hóa chuyển việc kết thúc kết nối đó thành ERR_CONNECTION_CLOSED. Khi một kết nối mới đã gửi được yêu cầu và sau đó máy chủ đóng kết nối mà không trả lời, Chrome sẽ báo ERR_EMPTY_RESPONSE thay vào đó.
Chrome cũng tự động thử lại yêu cầu khi một kết nối cũ đang được tái sử dụng bị đóng giữa chừng, nên bạn hiếm khi thấy lỗi từ trường hợp đó. Kết quả là, trang lỗi ERR_CONNECTION_CLOSED trên một trang HTTPS thường có nghĩa là có thứ gì đó đã ngắt kết nối trong lúc kết nối bảo mật đang được thiết lập. Điều đó chỉ đến bất kỳ thứ gì xử lý TLS trên đường truyền: trình quét HTTPS của phần mềm diệt virus, VPN hoặc proxy, thiết bị lọc trên mạng của bạn, CDN của trang web, hoặc cấu hình TLS của máy chủ web.
Advertisement
Nguyên nhân gây ra lỗi ERR_CONNECTION_CLOSED
| Nguyên nhân | Phía | Dấu hiệu |
|---|---|---|
| VPN hoặc proxy kết thúc kết nối | Bạn | Mọi trang HTTPS đều lỗi, hoặc chỉ khi bật VPN |
| Tính năng quét HTTPS của phần mềm diệt virus | Bạn | Hoạt động trong hồ sơ trình duyệt khác hoặc sau khi tạm dừng bảo vệ web |
| Bộ lọc mạng chặn tên miền (trường học, nơi làm việc, ISP) | Mạng | Một trang chỉ lỗi trên một mạng |
| Máy chủ không có chứng chỉ cho hostname đó (SNI) | Trang web | Lỗi với tất cả mọi người; thường chỉ bản www hoặc chỉ bản không www |
| Cài đặt TLS cũ hoặc quá nghiêm ngặt trên máy chủ | Trang web | Lỗi trên một số trình duyệt hoặc thiết bị, số khác thì không |
| Giới hạn kết nối của máy chủ hoặc CDN, chống DDoS | Trang web | Lỗi khi tải cao hoặc từ một số quốc gia nhất định |
| Cài đặt mạng bị hỏng | Bạn | Nhiều trang lỗi chỉ trên một thiết bị |
Cách 1: Thử mạng khác để tìm ra thủ phạm
Mở trang trên điện thoại bằng dữ liệu di động (tắt Wi-Fi), hoặc trên một máy tính khác thuộc mạng khác.
Hoạt động ở nơi khác: việc đóng kết nối đến từ thiết bị hoặc mạng của bạn. Tiếp tục với Cách 2 đến Cách 6.
Lỗi ở mọi nơi: máy chủ hoặc CDN của trang web đang ngắt kết nối. Chỉ chủ trang web mới khắc phục được. Nếu đó là trang của bạn, hãy chuyển đến phần dành cho chủ website bên dưới.
Kiểm tra chứng chỉ từ bên ngoài: SSL Checker của DNS Robot kết nối đến trang web từ máy chủ của chúng tôi và cho biết quá trình bắt tay HTTPS có thành công không và chứng chỉ nào đang được phục vụ.
Advertisement
Cách 2: Tắt VPN và proxy
Máy chủ VPN và proxy xử lý mọi kết nối của bạn, và khi bị quá tải hoặc bị chặn, chúng thường kết thúc kết nối ngay lúc bắt tay. Hãy ngắt kết nối VPN hoàn toàn, sau đó kiểm tra proxy:
Windows 11: Cài đặt → Mạng & Internet → Proxy → trong mục Thiết lập proxy thủ công (Manual proxy setup), tắt Sử dụng máy chủ proxy (Use a proxy server).
macOS: Cài đặt hệ thống → Mạng → kết nối của bạn → Chi tiết… → Proxy → tắt tất cả.
Tiện ích mở rộng trình duyệt hoạt động như VPN hoặc proxy cũng tính. Hãy thử trong cửa sổ Ẩn danh, nơi các tiện ích mở rộng mặc định bị tắt.
Cách 3: Tạm dừng tính năng quét HTTPS của phần mềm diệt virus
Các bộ phần mềm bảo mật kiểm tra lưu lượng mã hóa đứng ở giữa mọi quá trình bắt tay HTTPS. Nếu trình quét không thể thương lượng với một trang web, ví dụ vì một tính năng TLS mới hơn hoặc một chứng chỉ bất thường, nó thường chỉ đơn giản đóng kết nối.
Hãy tìm cài đặt có tên HTTPS scanning, Web Shield, SSL/TLS protocol filtering hoặc Scan encrypted connections (quét kết nối được mã hóa), chỉ tắt riêng tùy chọn đó, rồi tải lại trang. Nếu trang tải được, hãy thêm trang web vào danh sách ngoại lệ và bật lại tính năng quét. Cập nhật phần mềm diệt virus thường khắc phục được vĩnh viễn.
Advertisement
Cách 4: Đổi DNS để loại trừ khả năng bị lọc
Một số ISP và bộ lọc mạng chặn trang web bằng cách trỏ tên miền đến máy chủ riêng của họ, và máy chủ đó sẽ ngắt các kết nối HTTPS mà nó không phục vụ được. Nếu công cụ DNS Lookup của DNS Robot trả về địa chỉ IP của trang web khác với kết quả trên máy tính của bạn (nslookup example.com), resolver của bạn đang chuyển hướng bạn.
Hãy chuyển sang resolver công cộng như Cloudflare (1.1.1.1), Google (8.8.8.8) hoặc Quad9 (9.9.9.9), sau đó xóa bộ nhớ đệm DNS và thử lại. Nếu mạng của bạn cũng chặn DNS được mã hóa, hãy xem bài mạng này đang chặn lưu lượng DNS được mã hóa.
Cách 5: Xóa trạng thái SSL, socket pool và dữ liệu trình duyệt
Socket pool của Chrome: mở
chrome://net-internals/#socketsvà nhấp Flush socket pools, để Chrome ngừng tái sử dụng các kết nối có thể đã cũ.Trạng thái SSL của Windows: nhấn Win + R, gõ
inetcpl.cpl, mở thẻ Nội dung (Content) và nhấp Xóa trạng thái SSL (Clear SSL state).Dữ liệu trang web: nhấp vào biểu tượng bên trái thanh địa chỉ → Cài đặt trang web → Xóa dữ liệu, để cookie và dữ liệu đệm của trang đó được làm mới.
Cập nhật trình duyệt: vào
chrome://settings/help. Các phiên bản cũ có thể bắt tay thất bại với máy chủ dùng tính năng TLS mới hơn.
Advertisement
Cách 6: Đặt lại network stack và khởi động lại router
Nếu nhiều trang lỗi chỉ trên một thiết bị, hãy đặt lại cấu hình mạng của thiết bị đó. Khởi động lại cả router để xóa bảng kết nối của nó. Trên Windows, chạy các lệnh sau trong Command Prompt với quyền quản trị viên, rồi khởi động lại máy:
netsh winsock reset
netsh int ip reset
ipconfig /release
ipconfig /renew
ipconfig /flushdnsWindows 11 còn có Cài đặt → Mạng & Internet → Cài đặt mạng nâng cao → Đặt lại mạng (Network reset), tùy chọn này cài đặt lại các bộ điều hợp mạng. Trên Mac, hãy xóa mạng Wi-Fi trong Cài đặt hệ thống → Wi-Fi rồi kết nối lại.
Khắc phục ERR_CONNECTION_CLOSED trên Android và iPhone
Chuyển mạng: từ Wi-Fi sang dữ liệu di động hoặc ngược lại, để biết có bộ lọc mạng nào liên quan không.
Tắt các ứng dụng VPN, chặn quảng cáo và "bảo mật". Nhiều ứng dụng trong số đó định tuyến lưu lượng qua một VPN cục bộ và kiểm tra nó.
DNS riêng tư trên Android: Cài đặt → Mạng và Internet → DNS riêng tư (Private DNS) → Tự động (Automatic). Xem hướng dẫn về Private DNS để biết từng tùy chọn có tác dụng gì.
Cập nhật Chrome hoặc Safari qua kho ứng dụng, và cập nhật hệ điều hành nếu nó đã cũ hơn vài phiên bản.
Đặt lại cài đặt mạng: trên iPhone, Cài đặt → Cài đặt chung → Chuyển hoặc đặt lại iPhone → Đặt lại → Đặt lại cài đặt mạng. Trên Android, Cài đặt → Hệ thống → Tùy chọn đặt lại → Đặt lại Bluetooth và Wi-Fi (Reset Bluetooth & Wi-Fi) (và Đặt lại cài đặt mạng di động nếu dữ liệu di động cũng lỗi).
Dành cho chủ website: Vì sao máy chủ của bạn ngắt kết nối
Nếu khách truy cập trên nhiều mạng khác nhau gặp lỗi ERR_CONNECTION_CLOSED, hãy tự kiểm tra quá trình bắt tay TLS từ một máy bên ngoài mạng của bạn. openssl s_client cho biết chính xác nó dừng ở đâu:
SNI và chứng chỉ: mọi hostname mà khách truy cập dùng, cả
example.comvàwww.example.com, đều cần một mụcserver_namevà một chứng chỉ bao phủ nó. Các hostname rơi vào khối server mặc định không có chứng chỉ thường bị đóng kết nối ngay lúc bắt tay.Giao thức: phục vụ
TLSv1.2vàTLSv1.3. Các cấu hình rất cũ chỉ cung cấp TLS 1.0/1.1, hoặc danh sách cipher bất thường, sẽ lỗi với các trình duyệt hiện nay. SSL Checker hiển thị chứng chỉ và chuỗi chứng chỉ mà khách truy cập nhận được.Giới hạn kết nối: nếu nginx ghi log
worker_connections are not enough, hoặc một quy tắcconnlimitcủa tường lửa hay quy tắc chống DDoS được kích hoạt, các kết nối mới sẽ bị loại bỏ hoặc đóng khi tải cao. Hãy nâng giới hạn hoặc tìm nguồn lưu lượng.CDN và WAF: kiểm tra sự kiện bảo mật của CDN đối với những khách truy cập bị ảnh hưởng. Các quy tắc chống bot và chặn theo vị trí địa lý có thể đóng kết nối từ cả một khu vực.
Log: tìm trong log lỗi của máy chủ web các dòng
SSL_do_handshake() failedquanh thời điểm có báo cáo lỗi. nginx ghi hầu hết các lỗi bắt tay phía máy khách ở mứcinfo, nên với mứcerrormặc định, bạn có thể không thấy gì: hãy tạm đặterror_log /var/log/nginx/error.log info;trong lúc điều tra.
# Full handshake with SNI (the hostname visitors use)
openssl s_client -connect example.com:443 -servername example.com </dev/null
# Good: certificate chain, "Verify return code: 0 (ok)", a TLSv1.3 or TLSv1.2 protocol line
# Bad: "unexpected eof while reading" or "no peer certificate available"
# = the server (or something in front of it) closed the handshake
# Test a specific protocol version
openssl s_client -connect example.com:443 -servername example.com -tls1_2 </dev/nullSau đó kiểm tra lần lượt các mục sau:
ERR_CONNECTION_CLOSED khác gì Reset, Empty Response và lỗi SSL
| Lỗi | Mã | Điều đã xảy ra |
|---|---|---|
| ERR_CONNECTION_CLOSED | -100 | Đóng kết nối bình thường (FIN) trước khi trang được gửi đến, thường trong lúc bắt tay HTTPS |
| ERR_CONNECTION_RESET | -101 | Cắt đột ngột (RST) một kết nối đang mở |
| ERR_EMPTY_RESPONSE | -324 | Đã gửi yêu cầu, sau đó kết nối bị đóng mà không nhận lại byte nào |
| ERR_SSL_PROTOCOL_ERROR | -107 | Quá trình bắt tay TLS vi phạm quy tắc giao thức |
| ERR_SSL_VERSION_OR_CIPHER_MISMATCH | -113 | Không có phiên bản TLS hoặc cipher chung |
Các hướng dẫn liên quan của chúng tôi: ERR_CONNECTION_RESET, ERR_SSL_PROTOCOL_ERROR, ERR_SSL_VERSION_OR_CIPHER_MISMATCH và ERR_CONNECTION_REFUSED.
Quá trình bắt tay HTTPS của trang web có hoạt động từ bên ngoài không?
SSL Checker miễn phí của DNS Robot kết nối đến bất kỳ tên miền nào từ máy chủ của chúng tôi và hiển thị chứng chỉ, chuỗi chứng chỉ và ngày hết hạn. Nếu kết nối được với chúng tôi nhưng bị đóng với bạn, vấn đề nằm ở phía bạn.
Thử Kiểm Tra Chứng Chỉ SSLAdvertisement
Câu hỏi thường gặp
Nó có nghĩa là máy chủ, hoặc thứ gì đó giữa bạn và máy chủ, đã kết thúc kết nối bằng một lệnh đóng TCP bình thường (FIN) trước khi trình duyệt nhận được trang. Trong Chromium, đây là mã lỗi mạng -100. Trên các trang HTTPS, lỗi này thường xảy ra trong lúc bắt tay TLS.