ERR_CONNECTION_REFUSED: Ý nghĩa & Cách khắc phục

Advertisement
ERR_CONNECTION_REFUSED là gì?
ERR_CONNECTION_REFUSED là lỗi của Chrome xuất hiện khi trình duyệt của bạn đã tiếp cận được máy chủ của trang web nhưng máy chủ chủ động từ chối kết nối. Ở cấp độ mạng, máy tính của bạn đã gửi một yêu cầu kết nối TCP (SYN) đến địa chỉ IP và cổng của máy chủ, và thay vì chấp nhận, máy chủ — hoặc tường lửa đứng trước nó — trả lời bằng một gói tin reset (RST) với thông điệp "không có gì ở đây muốn nói chuyện với bạn."
Điều này khiến ERR_CONNECTION_REFUSED khác biệt về bản chất so với các lỗi DNS như DNS_PROBE_FINISHED_NXDOMAIN. Với lỗi DNS, tên miền không bao giờ được phân giải thành địa chỉ IP. Với ERR_CONNECTION_REFUSED, DNS đã hoạt động hoàn hảo — trình duyệt của bạn biết chính xác máy chủ nằm ở đâu — nhưng chiếc máy tại địa chỉ đó từ chối mở cửa.
Sự từ chối này thường mang một trong ba ý nghĩa: không có dịch vụ nào đang lắng nghe trên cổng đó (máy chủ web đã ngừng hoạt động hoặc bị crash), tường lửa đang từ chối lưu lượng đến cổng đó, hoặc thiết bị của bạn đang kết nối đến một địa chỉ IP hoàn toàn sai — ví dụ do bộ nhớ đệm DNS lỗi thời hoặc proxy bị hỏng.
Lỗi này hiển thị như thế nào trên các trình duyệt khác
Mỗi trình duyệt báo lỗi kết nối bị từ chối theo một cách khác nhau, nhưng sự từ chối TCP bên dưới là giống hệt nhau.
| Trình duyệt | Thông báo lỗi |
|---|---|
| Google Chrome | Không thể truy cập trang web này — [site] đã từ chối kết nối. ERR_CONNECTION_REFUSED |
| Microsoft Edge | Hmmm… không thể truy cập trang này — [site] đã từ chối kết nối. |
| Mozilla Firefox | Không thể kết nối — Firefox không thể thiết lập kết nối đến máy chủ. |
| Safari | Safari không thể kết nối đến máy chủ |
| Brave / Opera | Không thể truy cập trang web này — ERR_CONNECTION_REFUSED |
Các trình duyệt nền Chromium (Chrome, Edge, Brave, Opera) đều hiển thị mã lỗi thô ERR_CONNECTION_REFUSED. Firefox và Safari diễn đạt bằng ngôn ngữ thông thường, nhưng nguyên nhân và cách khắc phục hoàn toàn giống nhau.
Nguyên nhân phổ biến gây ra ERR_CONNECTION_REFUSED
Khoảng một nửa số trường hợp vấn đề nằm ở phía máy chủ, nửa còn lại là do thứ gì đó trên thiết bị hoặc mạng của bạn gây cản trở. Dưới đây là các nguyên nhân phổ biến nhất, xếp từ thường gặp nhất đến ít gặp nhất.
Máy chủ của trang web ngừng hoạt động — Dịch vụ web (nginx, Apache, Node.js) bị crash, đang khởi động lại, hoặc đã bị dừng. Máy vẫn trực tuyến nhưng không có gì trả lời trên cổng 80/443.
Tường lửa chặn cổng — Tường lửa trên máy chủ, trên mạng của bạn, hoặc trên thiết bị của bạn từ chối các kết nối đến cổng đó.
Cài đặt proxy sai cấu hình — Hệ thống của bạn định tuyến lưu lượng qua một máy chủ proxy đã ngoại tuyến hoặc không thể truy cập. Đây là một trong những nguyên nhân phía máy khách phổ biến nhất.
Bộ nhớ đệm DNS lỗi thời — Trang web đã chuyển sang máy chủ mới, nhưng bản ghi DNS trong bộ nhớ đệm của bạn vẫn trỏ đến địa chỉ IP cũ, nơi không còn gì đang lắng nghe.
Can thiệp từ VPN hoặc phần mềm diệt virus — Phần mềm bảo mật chặn kết nối và từ chối nó, hoặc máy chủ thoát của VPN không thể truy cập trang web.
Can thiệp từ tiện ích mở rộng trình duyệt — Trình chặn quảng cáo, tiện ích bảo vệ quyền riêng tư, hoặc tiện ích nhiễm mã độc có thể chặn kết nối đến các máy chủ cụ thể.
File hosts ghi đè — Tên miền bị ánh xạ đến một IP sai (thường là 127.0.0.1) trong file hosts của bạn, nên trình duyệt kết nối đến chính máy của bạn, và máy này từ chối.
Không có gì lắng nghe trên localhost — Dành cho lập trình viên: dev server cục bộ không chạy, đã crash, hoặc được gắn vào một cổng khác với cổng bạn đang mở.
Sự cố router — Router hoặc modem bị trục trặc làm hỏng các kết nối cho đến khi được khởi động lại.
Cách 1: Kiểm tra xem trang web có sập với tất cả mọi người không
Trước khi thay đổi bất cứ điều gì trên thiết bị, hãy tìm hiểu xem vấn đề có nằm ở phía máy chủ không — nếu trang web sập với tất cả mọi người, không có cách khắc phục cục bộ nào giúp được.
Cách kiểm tra sạch nhất là từ một đường mạng khác. Mở trang web trên điện thoại bằng dữ liệu di động (tắt Wi-Fi). Nếu vẫn thất bại, chính máy chủ đang từ chối kết nối và bạn chỉ có thể chờ chủ trang web khắc phục.
Bạn cũng có thể kiểm tra máy chủ trực tiếp bằng các công cụ sau của DNS Robot:
[Port Checker](/port-checker) — Nhập tên miền của trang web và kiểm tra cổng 443 (HTTPS) và cổng 80 (HTTP). Nếu cả hai đều hiển thị đóng, máy chủ web đã ngừng hoạt động hoặc bị tường lửa chặn với tất cả mọi người, không chỉ riêng bạn.
[Ping Test](/ping) — Kiểm tra xem máy chủ có phản hồi hay không. Nếu ping hoạt động nhưng các cổng bị đóng, máy vẫn chạy nhưng dịch vụ web đã chết.
[HTTP Headers Checker](/http-headers) — Gửi một yêu cầu HTTP thực từ máy chủ của DNS Robot. Nếu nó nhận được phản hồi trong khi trình duyệt của bạn thì không, vấn đề nằm cục bộ ở thiết bị hoặc mạng của bạn.
Advertisement
Cách 2: Khởi động lại router và thiết bị
Bước đi đầu tiên kinh điển này tồn tại có lý do: khởi động lại sẽ xóa bảng kết nối của router, bộ nhớ đệm DNS, và mọi trạng thái NAT bị lỗi có thể gây ra kết nối bị từ chối.
Rút nguồn điện của router (và modem, nếu là thiết bị riêng), đợi 30 giây, cắm lại và cho nó 2–3 phút để kết nối lại hoàn toàn. Khởi động lại cả máy tính hoặc điện thoại của bạn để đặt lại network stack, sau đó thử truy cập trang web lần nữa.
Cách 3: Xóa bộ nhớ đệm và cookie trình duyệt
Chrome có thể đã lưu vào bộ nhớ đệm một chuyển hướng bị hỏng, một mục HSTS cũ, hoặc cookie dẫn bạn đến một máy chủ đã chết. Xóa chúng sẽ buộc tạo một kết nối hoàn toàn mới.
Mở Chrome → nhấp vào menu ba chấm → Xóa dữ liệu duyệt web
Phạm vi thời gian → chọn Từ trước đến nay
Đánh dấu chọn "Cookie và các dữ liệu khác của trang web" và "Ảnh và tệp được lưu trong bộ nhớ đệm"
Nhấp Xóa dữ liệu, khởi động lại Chrome và thử truy cập trang web lần nữa
Cách 4: Tắt cài đặt proxy
Proxy sai cấu hình hoặc đã chết là một trong những nguyên nhân phổ biến nhất khiến ERR_CONNECTION_REFUSED xuất hiện trên mọi trang web cùng lúc. Khi hệ thống của bạn được đặt để định tuyến lưu lượng qua một proxy không còn tồn tại — thường do VPN cũ, cấu hình của trường học/công ty, hoặc phần mềm độc hại để lại — mọi kết nối đều bị từ chối.
Windows: Mở Settings → Network & Internet → Proxy. Tắt "Use a proxy server" trong phần Manual proxy setup, và tắt "Automatically detect settings" nếu bạn không dùng proxy công ty.
macOS: Mở System Settings → Network → Wi-Fi → Details → Proxies. Bỏ chọn mọi giao thức trong danh sách (Web Proxy HTTP, Secure Web Proxy HTTPS, SOCKS Proxy) trừ khi tổ chức của bạn yêu cầu, sau đó nhấp OK.
Chrome sử dụng cài đặt proxy của hệ điều hành, vì vậy sau khi thay đổi, hãy khởi động lại trình duyệt và kiểm tra lại.
Cách 5: Xóa bộ nhớ đệm DNS
Nếu trang web vừa chuyển sang máy chủ mới, bản ghi DNS trong bộ nhớ đệm của bạn vẫn có thể trỏ đến địa chỉ IP cũ — nơi không còn gì lắng nghe, nên kết nối bị từ chối. Xóa bộ nhớ đệm buộc thiết bị của bạn tra cứu địa chỉ hiện tại.
# Windows (Command Prompt as Administrator)
ipconfig /flushdns
# macOS
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
# Linux (systemd-resolved)
sudo resolvectl flush-caches
# Also clear Chrome's internal DNS cache:
# chrome://net-internals/#dns → Clear host cacheSau khi xóa, hãy xóa cả bộ nhớ đệm DNS riêng của Chrome tại chrome://net-internals/#dns và giải phóng socket pool tại chrome://net-internals/#sockets — Chrome lưu cả hai riêng biệt với hệ điều hành. Để xem hướng dẫn đầy đủ, hãy đọc bài viết cách xóa bộ nhớ đệm DNS trên mọi hệ điều hành.
Bạn có thể xác nhận tên miền hiện đang phân giải về IP nào bằng công cụ DNS Lookup của DNS Robot — nếu nslookup trên terminal của bạn hiển thị IP khác với kết quả toàn cầu, bộ nhớ đệm của bạn chính là vấn đề.
Advertisement
Cách 6: Chuyển sang máy chủ DNS công cộng
Nếu máy chủ DNS của ISP đang trả về các bản ghi lỗi thời, xóa bộ nhớ đệm sẽ không giúp ích — bạn chỉ tải lại đúng IP cũ đó. Chuyển sang một bộ phân giải công cộng nhanh giúp bạn nhận bản ghi mới nhất và thường tăng tốc duyệt web nói chung.
| Nhà cung cấp | DNS chính | DNS phụ | Phù hợp nhất cho |
|---|---|---|---|
| Cloudflare | 1.1.1.1 | 1.0.0.1 | Tốc độ và quyền riêng tư |
| Google Public DNS | 8.8.8.8 | 8.8.4.4 | Độ tin cậy |
| Quad9 | 9.9.9.9 | 149.112.112.112 | Chặn phần mềm độc hại |
| OpenDNS | 208.67.222.222 | 208.67.220.220 | Lọc nội dung |
Windows: Settings → Network & Internet → kết nối của bạn → Edit DNS server assignment → Manual → bật IPv4 → nhập 1.1.1.1 và 1.0.0.1 → Save.
macOS: System Settings → Network → Wi-Fi → Details → DNS → thêm 1.1.1.1 và 1.0.0.1, xóa các mục cũ → OK.
Không chắc bộ phân giải nào nhanh nhất từ vị trí của bạn? Hãy chạy DNS Speed Test của DNS Robot — công cụ này đo hiệu năng của Cloudflare, Google, Quad9 và các nhà cung cấp khác ngay từ kết nối của bạn trong vài giây.
Cách 7: Tạm thời tắt VPN, phần mềm diệt virus và tường lửa
VPN, tấm chắn web của phần mềm diệt virus và tường lửa đều nằm giữa trình duyệt của bạn và internet, và mỗi thứ đều có thể từ chối kết nối. Tính năng quét HTTPS của phần mềm diệt virus là thủ phạm thường gặp: chúng chuyển lưu lượng bảo mật của bạn qua một dịch vụ cục bộ, và khi dịch vụ đó hỏng, mọi trang HTTPS đều bị từ chối.
Kiểm tra theo thứ tự sau: ngắt kết nối VPN và tải lại trang. Sau đó tắt mô-đun bảo vệ web của phần mềm diệt virus trong một phút và tải lại. Cuối cùng, tắt tường lửa trong chốc lát (Windows Defender Firewall hoặc macOS Firewall) và tải lại.
Nếu trang web tải được sau khi tắt một trong số đó, hãy bật lại và thêm ngoại lệ cho trang web — hoặc chuyển sang vị trí máy chủ VPN khác — thay vì để tắt hẳn lớp bảo vệ.
Cách 8: Kiểm tra tiện ích mở rộng bằng chế độ Ẩn danh
Trình chặn quảng cáo, công cụ bảo vệ quyền riêng tư và tiện ích VPN có thể âm thầm chặn kết nối đến các máy chủ cụ thể. Cách kiểm tra nhanh: mở trang web trong cửa sổ Ẩn danh (Ctrl+Shift+N / Cmd+Shift+N), nơi hầu hết tiện ích mở rộng bị tắt theo mặc định.
Nếu trang web tải được trong chế độ Ẩn danh, một tiện ích mở rộng chính là nguyên nhân. Vào chrome://extensions, tắt tất cả, sau đó bật lại từng cái một cho đến khi lỗi xuất hiện trở lại — đó chính là thủ phạm. Gỡ bỏ nó hoặc loại trừ trang web khỏi bộ lọc của nó.
Cách 9: Kiểm tra file hosts
File hosts của bạn ghi đè DNS cho các tên miền cụ thể. Nếu trang web bị ánh xạ trong đó đến 127.0.0.1, 0.0.0.0, hoặc một IP máy chủ cũ, trình duyệt sẽ kết nối đến địa chỉ đó — và bị từ chối. Các mục còn sót lại từ quá trình phát triển và danh sách hosts chặn quảng cáo là những nghi phạm thường gặp.
# Windows — open as Administrator:
notepad C:\Windows\System32\drivers\etc\hosts
# macOS / Linux:
sudo nano /etc/hosts
# Look for lines containing the domain, e.g.:
# 127.0.0.1 example.com ← forces the connection to your own PC
# 203.0.113.7 example.com ← forces an old server IP
# Delete the offending line, save, then flush DNS.Advertisement
Localhost Refused to Connect (Dành cho lập trình viên)
Gặp lỗi localhost refused to connect hoặc ERR_CONNECTION_REFUSED trên 127.0.0.1 là trải nghiệm mà lập trình viên nào cũng từng trải qua. Nó có nghĩa là không có gì trên máy của bạn đang chấp nhận kết nối trên cổng bạn yêu cầu. Các lý do thường gặp:
Dev server không chạy — Bạn chưa khởi động nó, hoặc nó đã crash. Kiểm tra terminal nơi lệnh
npm run dev,rails shoặcpython manage.py runserverđáng lẽ đang chạy.Sai cổng — Server khởi động trên một cổng khác (ví dụ 3001 vì cổng 3000 đang bận) còn bạn lại mở cổng cũ. Đọc dòng log khởi động cho biết nó đã gắn vào cổng nào.
Gắn vào interface khác — Server gắn vào
0.0.0.0hoặc IP nội bộ của container, còn bạn lại truy cậplocalhost— hoặc ngược lại. Ánh xạ cổng của Docker (-p 3000:3000) phải khớp với cổng mà ứng dụng lắng nghe bên trong container.Tường lửa hoặc phần mềm bảo mật — Tường lửa cục bộ có thể chặn cả cổng loopback; điều này phổ biến trên máy tính công ty.
HTTPS vs HTTP — Bạn đang mở https://localhost:3000 nhưng dev server chỉ nói chuyện bằng HTTP thuần. Hãy thử gõ rõ http://.
# Which process is listening on port 3000?
# macOS / Linux:
lsof -i :3000
# Windows (PowerShell):
netstat -ano | findstr :3000
# No output = nothing is listening = connection refused.
# Start your dev server, or kill the stale process and restart it.Nếu bạn cần kiểm tra xem một cổng trên máy chủ công khai của mình có truy cập được từ internet hay không (không chỉ từ chính máy đó), hãy dùng Port Checker của DNS Robot — công cụ này kiểm tra kết nối từ bên ngoài mạng của bạn, đúng như những gì khách truy cập thực sự trải nghiệm.
Dành cho chủ website: Trang của bạn từ chối kết nối
Nếu khách truy cập báo lỗi ERR_CONNECTION_REFUSED trên chính website của bạn, máy chủ vẫn đang chạy (DNS phân giải được, máy nhiều khả năng vẫn phản hồi ping) nhưng dịch vụ web không chấp nhận kết nối. Hãy kiểm tra lần lượt danh sách sau:
Tiến trình máy chủ web có đang chạy không? SSH vào và kiểm tra:
systemctl status nginx(hoặc apache2, caddy). Tiến trình bị crash sau một lần reload thất bại hoặc bị kill do hết bộ nhớ là nguyên nhân số 1. Khởi động lại:sudo systemctl restart nginx.Nó có đang lắng nghe đúng cổng không? Chạy
ss -tlnp | grep -E ':80|:443'. Nếu không có gì lắng nghe trên cổng 443, cấu hình TLS của bạn không tải được — kiểm tra lỗi cấu hình bằngnginx -t.Tường lửa có mở không? Kiểm tra
ufw statushoặc security group của nhà cung cấp đám mây. Cổng 80 và 443 phải cho phép TCP đi vào từ 0.0.0.0/0.IP máy chủ của bạn có thay đổi không? So sánh bản ghi A trong DNS với IP thực tế của máy chủ bằng DNS Lookup. Sau một lần di chuyển máy chủ, bản ghi A cũ sẽ đưa khách truy cập đến máy cũ.
Kiểm tra từ bên ngoài — Dùng Port Checker trên cổng 80 và 443, và HTTP Headers Checker để xác nhận máy chủ của bạn trả lời các yêu cầu thực từ internet công cộng.
Cách xác minh lỗi đã được khắc phục
Sau mỗi cách khắc phục, hãy xác nhận kết nối ở cấp độ mạng thay vì chỉ tải lại trang — điều này cho bạn biết cổng có thực sự mở hay chưa.
# Test the TCP connection directly (Mac/Linux):
nc -zv example.com 443
# "succeeded" = port open, "refused" = still rejected
# Windows (PowerShell):
Test-NetConnection example.com -Port 443
# TcpTestSucceeded : True = fixed
# Then confirm what IP you're actually connecting to:
nslookup example.comHoặc bỏ qua terminal: nhập tên miền và cổng vào Port Checker của DNS Robot để nhận câu trả lời mở/đóng tức thì từ một mạng bên ngoài. Nếu cổng mở từ bên ngoài nhưng trình duyệt của bạn vẫn hiển thị ERR_CONNECTION_REFUSED, thứ gây chặn nằm trên thiết bị của bạn — hãy xem lại các cách khắc phục về proxy, VPN, phần mềm diệt virus và file hosts ở trên.
Cổng có mở không — hay máy chủ thực sự đang từ chối?
Port Checker miễn phí của DNS Robot kiểm tra bất kỳ tên miền và cổng nào từ một mạng bên ngoài trong vài giây. Xem ngay lập tức cổng 80/443 của một trang web đang mở, đóng hay bị lọc — câu trả lời dứt khoát cho câu hỏi "trang sập với tất cả mọi người hay chỉ mình tôi?"
Thử Port CheckerAdvertisement
Câu hỏi thường gặp
Nó có nghĩa là trình duyệt của bạn đã tiếp cận được máy chủ của trang web nhưng máy chủ chủ động từ chối kết nối TCP trên cổng đó. Phân giải DNS đã hoạt động — trình duyệt biết IP của máy chủ — nhưng không có gì chấp nhận kết nối: dịch vụ web ngừng hoạt động, tường lửa từ chối, hoặc thiết bị của bạn kết nối sai địa chỉ do bộ nhớ đệm cũ hoặc proxy.