Lỗi ERR_CONNECTION_REFUSED: Nguyên nhân và cách sửa nhanh
Lỗi ERR_CONNECTION_REFUSED là thông báo Chrome hiển thị khi máy đích từ chối ngay lời mời kết nối. Trình duyệt không chờ, không treo, mà báo lỗi gần như tức thì. Nguyên nhân thường không nằm ở đường truyền mạng, mà ở chỗ cổng đích không có chương trình nào nhận kết nối. Bài này ProxyVN giải thích lỗi nghĩa là gì, cách khoanh vùng nguyên nhân bằng vài lệnh đơn giản, và cách sửa cho cả người dùng web lẫn lập trình viên. Tham khảo dịch vụ tại ProxyVN.
Tổng quan về lỗi ERR_CONNECTION_REFUSED
Hiểu đúng bản chất của lỗi giúp anh em bớt làm những thao tác vô ích như xoá cache hay cài lại trình duyệt. Phần này đi qua ý nghĩa kỹ thuật, dấu hiệu nhận biết và cách lỗi khác với những thông báo trông na ná.
Lỗi này nghĩa là gì
Mỗi lần mở trang web, trình duyệt cần mở một kết nối TCP tới địa chỉ IP và cổng của máy chủ. Bước đầu tiên là gửi gói SYN để hỏi xem có ai ở cổng đó không. Nếu có chương trình đang lắng nghe, máy chủ trả lời SYN-ACK và kết nối được lập. Nếu không có ai lắng nghe, hệ điều hành của máy đích trả về gói RST, nghĩa là "cổng này không nhận kết nối".
Chrome nhận gói RST đó và hiển thị ERR_CONNECTION_REFUSED, kèm dòng chữ "This site can't be reached" và "refused to connect". Trong bản tiếng Việt, anh em sẽ thấy "Không thể truy cập trang web này" và "đã từ chối kết nối". Điểm cần nhớ: máy đích vẫn sống và vẫn trả lời, chỉ là nó nói "không".
Dấu hiệu nhận biết
Lỗi từ chối kết nối có vài đặc điểm khá riêng. Nắm được các dấu hiệu này, anh em phân biệt nhanh với các lỗi mạng khác:
- Thông báo hiện ra gần như ngay lập tức, không phải chờ 20–30 giây như lỗi hết thời gian.
- Thường chỉ một trang hoặc một cổng bị lỗi, các trang khác vẫn vào được.
- Nếu là localhost, thông báo ghi "localhost refused to connect".
- Thử bằng công cụ dòng lệnh, curl báo "Connection refused" và mã thoát 7.
- Khi dùng proxy, mọi trang đều lỗi cùng lúc, kể cả Google.
Dấu hiệu cuối cùng rất quan trọng. Nếu mọi trang đều báo từ chối kết nối, thủ phạm gần như luôn nằm ở máy của anh em, cụ thể là cấu hình proxy.
Phân biệt với các lỗi kết nối khác
Chrome có cả chục mã lỗi kết nối, và ba lỗi hay bị nhầm với nhau nhất là refused, timed out và reset. Bảng dưới đây so sánh theo thời điểm xảy ra và nguyên nhân thường gặp.
Mã lỗi |
Thời điểm |
Máy đích phản ứng |
Nguyên nhân thường gặp |
|---|---|---|---|
ERR_CONNECTION_REFUSED |
Ngay khi mở kết nối |
Trả RST, từ chối |
Không có dịch vụ ở cổng, proxy trỏ vào phần mềm đã tắt |
ERR_CONNECTION_TIMED_OUT |
Sau 20–30 giây |
Im lặng, không trả lời |
Tường lửa thả gói, máy chủ sập, sai IP |
ERR_CONNECTION_RESET |
Giữa phiên đã lập |
Cắt ngang bằng RST |
Thiết bị lọc nội dung, proxy cắt kết nối |
ERR_PROXY_CONNECTION_FAILED |
Khi gọi tới proxy |
Proxy không phản hồi |
Proxy chết, sai địa chỉ proxy |
Lỗi kết nối bị cắt giữa chừng có bài riêng là lỗi ERR_CONNECTION_RESET, anh em đọc thêm nếu trang tải được một nửa rồi mới báo lỗi. Tóm lại, refused là lỗi "có người ở nhà nhưng không mở cửa", còn timed out là "gõ cửa mãi không ai trả lời".
Các nguyên nhân gây lỗi ERR_CONNECTION_REFUSED

Không có dịch vụ nào lắng nghe ở cổng
Nguyên nhân của lỗi chia làm hai nhóm lớn tuỳ người gặp phải. Người dùng web thông thường hay vướng cấu hình proxy, tường lửa, tiện ích. Lập trình viên thì hay vướng dev server, Docker, địa chỉ bind. Phần này liệt kê lần lượt cả hai nhóm.
Nhóm nguyên nhân phía người dùng web
Với người dùng phổ thông, đây là những nguyên nhân ProxyVN gặp nhiều nhất khi hỗ trợ anh em:
- Proxy hệ thống trỏ vào phần mềm đã tắt. Các phần mềm như công cụ đổi IP, phần mềm chặn quảng cáo, công cụ debug thường đặt proxy Windows về 127.0.0.1 kèm một cổng. Khi phần mềm bị tắt hoặc gỡ đi mà không trả lại cấu hình, trình duyệt vẫn gửi mọi kết nối về cổng đó và bị từ chối.
- Proxy bên ngoài sai cổng. Nhập nhầm cổng 8080 thành 8000, hoặc nhập cổng SOCKS5 vào ô HTTP, máy proxy sẽ từ chối vì cổng đó không mở.
- Tường lửa hoặc phần mềm diệt virus đứng giữa và trả RST thay cho máy chủ thật. Một số bộ lọc web của antivirus làm đúng như vậy với trang nó coi là nguy hiểm.
- Tiện ích trình duyệt về proxy, VPN, chặn quảng cáo can thiệp vào yêu cầu.
- Website đang bảo trì hoặc sập dịch vụ web, trong khi máy chủ vẫn bật. Máy chủ còn sống nên trả RST thay vì im lặng.
Trường hợp proxy 127.0.0.1 phổ biến tới mức có hẳn một bài riêng: proxy 127.0.0.1 là gì và cách gỡ an toàn. Nếu anh em mở cài đặt proxy và thấy địa chỉ 127.0.0.1, gần như tìm ra thủ phạm rồi.
Nhóm nguyên nhân phía lập trình viên
Với người làm phần mềm, lỗi từ chối kết nối thường xuất hiện khi chạy ứng dụng trên máy cá nhân hoặc trong container:
- Dev server chưa chạy hoặc đã dừng vì lỗi. Lệnh npm run dev báo lỗi biên dịch rồi thoát, nhưng tab trình duyệt vẫn mở và bấm tải lại.
- Sai cổng. Ứng dụng tự đổi sang cổng 3001 vì 3000 đã có người dùng, nhưng anh em vẫn mở 3000.
- Bind vào 127.0.0.1 thay vì 0.0.0.0. Ứng dụng chỉ nhận kết nối từ chính máy đó, nên mở từ điện thoại hay máy khác trong mạng sẽ bị từ chối.
- Docker chưa publish cổng. Container chạy, ứng dụng bên trong lắng nghe, nhưng cổng chưa được ánh xạ ra máy chủ.
- Nhầm IPv4 và IPv6. Trình duyệt phân giải localhost thành ::1, trong khi ứng dụng chỉ lắng nghe trên 127.0.0.1.
Nhóm nguyên nhân này có chung một điểm: dịch vụ không lắng nghe ở đúng địa chỉ và cổng mà trình duyệt đang gọi. Chỉ cần kiểm tra đúng cặp địa chỉ và cổng là ra vấn đề.
Khi lỗi xuất hiện trên điện thoại hoặc trong game
Trên Android và iPhone, lỗi từ chối kết nối hay đi kèm cấu hình proxy trong phần Wi-Fi. Người dùng nhập proxy thủ công cho một mạng Wi-Fi, sau đó proxy hết hạn hoặc đổi cổng, nhưng cấu hình vẫn nằm đó. Mỗi lần kết nối mạng Wi-Fi ấy, mọi ứng dụng đều bị từ chối. Ứng dụng VPN hoặc chặn quảng cáo trên điện thoại cũng có thể gây lỗi tương tự.
Một số game như Roblox hiển thị mã lỗi kết nối khi máy chủ game từ chối phiên hoặc khi ứng dụng bị chặn bởi proxy, VPN, tường lửa. Trong trường hợp đó, anh em nên tắt proxy và VPN rồi thử lại trước tiên, sau đó mới tính tới chuyện máy chủ game đang bảo trì.
Cách sửa lỗi ERR_CONNECTION_REFUSED cho người dùng web

Proxy hệ thống trỏ vào phần mềm đã tắt
Thứ tự sửa nên đi từ đơn giản tới phức tạp, và luôn bắt đầu bằng việc khoanh vùng. Mỗi bước dưới đây đều có cách kiểm tra kết quả, anh em làm xong bước nào thì thử tải lại trang ngay.
Bước 1: Kiểm tra địa chỉ và thử trang khác
Trang hỗ trợ của Google trong bài khắc phục lỗi khi tải trang trên Chrome khuyên bước đầu là kiểm tra lỗi đánh máy trong địa chỉ rồi bấm nút "Reload this page". Nếu chỉ một trang lỗi, vấn đề nằm ở trang đó. Nếu nhiều trang lỗi, vấn đề nằm ở kết nối hoặc máy của anh em.
- Kiểm tra http và https: một số trang nội bộ chỉ chạy http, gõ https sẽ bị từ chối ở cổng 443.
- Kiểm tra cổng trong địa chỉ, ví dụ :8080 hay :8443.
- Mở cùng địa chỉ trên điện thoại dùng 4G. Nếu điện thoại vào được, lỗi nằm ở máy hoặc mạng của anh em.
Bước 2: Tắt proxy hệ thống trên Windows
Đây là bước sửa được nhiều ca nhất. Trên Windows 10 và 11, anh em làm theo thứ tự sau:
- Mở Settings, chọn Network & Internet, chọn Proxy.
- Ở mục Automatic proxy setup, tạm tắt "Automatically detect settings" nếu không dùng PAC công ty.
- Ở mục Manual proxy setup, bấm Set up hoặc Edit, tắt "Use a proxy server", bấm Save.
- Đóng hẳn Chrome rồi mở lại để trình duyệt nhận cấu hình mới.
Nếu sau khi tắt mà trang vào được, lỗi do proxy. Lúc này cần tìm xem phần mềm nào đã đặt proxy đó. Nếu proxy là của nhà cung cấp, kiểm tra lại địa chỉ, cổng và giao thức. Hướng dẫn kiểm tra chi tiết có trong bài cách kiểm tra proxy và tường lửa.
Bước 3: Phân biệt với lỗi proxy từ chối kết nối
Nhiều anh em nhầm ERR_CONNECTION_REFUSED với ERR_PROXY_CONNECTION_FAILED. Thông báo thứ hai có câu "The proxy server is refusing connections", tức chính máy chủ proxy từ chối. Khi đó Chrome biết mình đang dùng proxy và nói rõ điều đó. Cách xử lý riêng cho trường hợp này có trong bài sửa lỗi proxy server is refusing connections và bài sửa lỗi máy chủ proxy từ chối kết nối.
Còn ERR_CONNECTION_REFUSED thường xuất hiện khi proxy cục bộ dạng SOCKS hoặc PAC đang chuyển hướng kết nối, hoặc khi không có proxy nào cả. Đọc kỹ dòng chữ dưới mã lỗi giúp anh em tiết kiệm nhiều thời gian.
Bước 4: Thử chế độ ẩn danh và tắt tiện ích
Chế độ ẩn danh tắt phần lớn tiện ích theo mặc định. Theo hướng dẫn của Google, nếu lỗi biến mất trong chế độ ẩn danh, anh em nên quay lại chế độ thường và tắt từng tiện ích một để tìm thủ phạm:
- Gõ chrome://extensions vào thanh địa chỉ.
- Tắt toàn bộ tiện ích bằng công tắc ở góc mỗi thẻ.
- Tải lại trang lỗi. Nếu vào được, bật lại từng tiện ích, mỗi lần bật thì thử lại.
- Gỡ tiện ích gây lỗi hoặc chỉnh lại cấu hình proxy của tiện ích đó.
Các tiện ích quản lý proxy như SwitchyOmega hay tiện ích VPN thường là nguyên nhân. Chúng có quyền ghi đè cấu hình proxy của Chrome mà không cần đụng tới cài đặt Windows.
Bước 5: Kiểm tra tường lửa và phần mềm diệt virus
Tường lửa có hai cách chặn: thả gói tin (gây timed out) hoặc trả RST (gây refused). Một số phần mềm diệt virus dùng cách thứ hai với trang chúng coi là nguy hiểm. Anh em kiểm tra như sau:
- Mở Windows Security, chọn Firewall & network protection, xem có quy tắc chặn nào cho Chrome không.
- Mở phần mềm diệt virus, tìm mục Web Protection hoặc Web Shield, tạm tắt rồi thử lại.
- Nếu trang vào được, thêm địa chỉ đó vào danh sách ngoại lệ thay vì tắt hẳn bảo vệ.
Tắt hẳn tường lửa để "cho chắc" là cách không nên làm, vì máy sẽ phơi ra mạng mà không có lớp bảo vệ nào.
Bước 6: Khởi động lại modem và kiểm tra trên mạng khác
Trường hợp hiếm hơn là modem nhà mạng có bộ lọc nội dung hoặc chế độ kiểm soát của phụ huynh trả RST. Khởi động lại modem, hoặc chuyển sang 4G để so sánh, sẽ cho biết lỗi có nằm ở mạng hay không. Nếu chỉ một trang lỗi ở mọi mạng, khả năng cao là chính website đang có vấn đề, anh em chỉ cần chờ.
Kiểm tra lỗi ERR_CONNECTION_REFUSED bằng dòng lệnh

Kiểm tra cổng bằng dòng lệnh
Thử bằng trình duyệt thì nhiều yếu tố chồng lên nhau: cache, tiện ích, proxy, HSTS. Công cụ dòng lệnh cho câu trả lời gọn hơn: cổng đó có mở hay không. Đây là cách ProxyVN hay dùng để khoanh vùng trong vài giây.
Dùng Test-NetConnection trên Windows
PowerShell có sẵn lệnh Test-NetConnection. Theo tài liệu Test-NetConnection của Microsoft, tham số -Port dùng để thử kết nối TCP tới một cổng, còn -InformationLevel Detailed cho kết quả chi tiết hơn.
Test-NetConnection -ComputerName example.com -Port 443
Test-NetConnection -ComputerName 127.0.0.1 -Port 8080 -InformationLevel Detailed
Test-NetConnection -ComputerName 192.168.1.20 -Port 3000 -InformationLevel Quiet
Kết quả quan trọng nhất là dòng TcpTestSucceeded. Nếu là True, cổng đang mở và có dịch vụ lắng nghe. Nếu là False kèm cảnh báo "TCP connect to ... failed", cổng đóng hoặc bị chặn. Với -InformationLevel Quiet, lệnh chỉ trả True hoặc False, tiện cho việc viết script kiểm tra hàng loạt.
Dùng curl để xem chi tiết
curl có mặt sẵn trên Windows 10, 11, macOS và hầu hết bản Linux. Tham số -v in ra từng bước kết nối, giúp thấy rõ curl đang gọi IP nào, qua proxy nào và bị từ chối ở đâu. Danh sách tham số đầy đủ nằm trong trang hướng dẫn của curl.
curl -v http://localhost:3000/
curl -v --connect-timeout 5 https://example.com/
curl -v --noproxy "*" http://192.168.1.20:8080/
curl -v -x http://203.0.113.10:8080 https://example.com/
Khi bị từ chối, curl in ra dòng "connect to 127.0.0.1 port 3000 failed: Connection refused" và thoát với mã 7. Dòng thứ ba bỏ qua mọi biến môi trường proxy, dùng để xác nhận lỗi có phải do proxy hay không. Dòng cuối thử đi qua một proxy cụ thể, nếu báo refused ở bước kết nối tới 203.0.113.10 thì chính proxy đóng cổng.
Xem cổng nào đang lắng nghe
Khi lỗi xảy ra với localhost, việc cần làm là xem chương trình đang lắng nghe ở đâu. Trên Windows dùng netstat, trên Linux dùng ss, trên macOS dùng lsof.
netstat -ano | findstr :3000
ss -ltnp | grep 3000
lsof -iTCP -sTCP:LISTEN -n -P | grep 3000
Nếu lệnh không trả về dòng nào, không có chương trình nào lắng nghe ở cổng đó. Nếu có dòng 127.0.0.1:3000, ứng dụng chỉ nhận kết nối từ chính máy. Nếu thấy 0.0.0.0:3000 hoặc [::]:3000, ứng dụng nhận từ mọi địa chỉ. Cột cuối của netstat là PID, tra trong Task Manager để biết chương trình nào.
Đọc kết quả để khoanh vùng
Ba công cụ trên kết hợp lại cho anh em một bảng khoanh vùng khá rõ ràng:
Kết quả kiểm tra |
Ý nghĩa |
Hướng xử lý |
|---|---|---|
Không có dòng LISTEN |
Dịch vụ chưa chạy |
Khởi động lại ứng dụng, đọc log lỗi |
LISTEN trên 127.0.0.1, gọi từ máy khác |
Bind sai địa chỉ |
Đổi sang 0.0.0.0 hoặc IP mạng LAN |
LISTEN đúng cổng, curl --noproxy vào được |
Proxy chen giữa |
Sửa hoặc tắt proxy, thêm vào danh sách bỏ qua |
TcpTestSucceeded False với máy ngoài |
Cổng đóng hoặc bị chặn |
Kiểm tra tường lửa máy chủ, nhà cung cấp hosting |
curl vào được, Chrome vẫn lỗi |
Lỗi riêng trình duyệt |
Tắt tiện ích, kiểm tra HSTS, thử hồ sơ mới |
Cách làm này có một ưu điểm lớn: mỗi bước loại bỏ được một nhóm nguyên nhân. Sau ba lệnh, anh em gần như biết lỗi nằm ở máy mình, ở proxy hay ở máy chủ.
Sửa lỗi ERR_CONNECTION_REFUSED khi lập trình trên localhost
Lỗi "localhost refused to connect" là lỗi quen thuộc với người làm web. Phần lớn trường hợp chỉ mất vài phút để sửa nếu đi đúng thứ tự.
Dev server chưa chạy hoặc đã thoát
Kiểm tra đầu tiên luôn là cửa sổ terminal đang chạy dev server. Rất nhiều lần server đã dừng vì một lỗi cú pháp, cổng bận, hoặc thiếu biến môi trường, và dòng báo lỗi bị cuộn lên trên. Anh em nên:
- Cuộn lên đầu log để xem dòng báo lỗi đầu tiên, không phải dòng cuối.
- Chạy lại lệnh khởi động và chờ thông báo dạng "Local: http://localhost:5173/".
- Mở đúng địa chỉ và cổng mà server in ra, không tự đoán cổng.
Vite, Next.js, Create React App đều tự chuyển sang cổng khác khi cổng mặc định bận. Cổng in ra trong log mới là cổng thật.
Bind 127.0.0.1 hay 0.0.0.0
Khi mở trang từ điện thoại hoặc máy khác trong mạng LAN mà bị từ chối, nguyên nhân thường là ứng dụng chỉ lắng nghe trên 127.0.0.1. Địa chỉ này chỉ nhận kết nối từ chính máy chạy ứng dụng. Muốn máy khác truy cập, cần lắng nghe trên 0.0.0.0 hoặc IP LAN cụ thể.
npx vite --host 0.0.0.0
python -m http.server 8000 --bind 0.0.0.0
flask run --host=0.0.0.0 --port=5000
uvicorn main:app --host 0.0.0.0 --port 8000
Mở cổng ra mạng LAN đồng nghĩa với việc mọi máy cùng mạng đều gọi được. Ở quán cà phê hay Wi-Fi công cộng, anh em nên tắt lại sau khi thử xong. Ngoài ra, tường lửa Windows có thể hỏi có cho phép ứng dụng nhận kết nối không, cần chọn Allow cho mạng Private.
Localhost phân giải ra IPv6
Từ Node.js 17 trở đi, tên localhost có thể được phân giải ra ::1 trước 127.0.0.1. Nếu ứng dụng chỉ lắng nghe trên 127.0.0.1, một client gọi localhost có thể đập vào ::1 và bị từ chối. Cách sửa đơn giản nhất là gọi thẳng 127.0.0.1 trong cấu hình, hoặc cho ứng dụng lắng nghe cả IPv6.
Dấu hiệu nhận biết là curl -v in ra dòng "Trying [::1]:3000" rồi mới báo refused. Đổi địa chỉ thành 127.0.0.1 là lỗi biến mất. Đây là một lỗi rất khó thấy nếu không đọc log chi tiết.
Proxy chặn cả localhost
Nhiều anh em đặt biến môi trường HTTP_PROXY, HTTPS_PROXY để công cụ dòng lệnh đi qua proxy, rồi quên mất. Khi đó các công cụ như npm, pip, curl cũng gửi yêu cầu localhost qua proxy, và proxy từ xa không thể thấy localhost của anh em. Cách sửa là đặt biến NO_PROXY:
# Windows PowerShell
$env:NO_PROXY = "localhost,127.0.0.1,::1"
# Linux, macOS
export NO_PROXY="localhost,127.0.0.1,::1,.local"
Trên Windows, phần Manual proxy setup cũng có ô "Use the proxy server except for addresses starting with the following entries" và tuỳ chọn "Don't use the proxy server for local (intranet) addresses". Bật tuỳ chọn này giúp localhost không đi qua proxy.
Lỗi ERR_CONNECTION_REFUSED với Docker và máy chủ

Container chạy nhưng cổng chưa mở ra ngoài
Khi ứng dụng chạy trong container hoặc trên máy chủ từ xa, có thêm vài lớp có thể chặn kết nối. Phần này đi qua các tình huống điển hình.
Container chạy nhưng chưa publish cổng
Theo tài liệu publish cổng của Docker, Docker chặn truy cập vào các cổng chưa được publish. Container trong cùng mạng bridge gọi nhau được, nhưng từ máy chủ hoặc mạng bên ngoài thì không. Muốn mở, cần thêm tham số -p khi chạy container.
# Cổng 8080 của máy chủ trỏ tới cổng 80 trong container
docker run -p 8080:80 nginx
# Chỉ cho phép truy cập từ chính máy chủ
docker run -p 127.0.0.1:8080:80 nginx
# Xem container đang publish cổng nào
docker ps --format "table {{.Names}}\t{{.Ports}}"
docker port ten_container
Nếu docker ps không hiện dạng 0.0.0.0:8080->80/tcp ở cột Ports, cổng chưa được publish. Với docker compose, phần ports trong file cấu hình phải có dạng "8080:80". Phần expose chỉ mở cổng giữa các container, không mở ra ngoài.
Ứng dụng trong container lắng nghe sai địa chỉ
Một lỗi khó thấy hơn: đã publish cổng, nhưng ứng dụng bên trong container lại lắng nghe 127.0.0.1. Địa chỉ đó là loopback của riêng container, Docker không chuyển được kết nối vào. Kết quả là trình duyệt nhận lỗi từ chối hoặc kết nối bị đóng ngay.
Cách sửa là cho ứng dụng trong container lắng nghe 0.0.0.0. Với Node.js, gọi app.listen(3000, "0.0.0.0"). Với Python, dùng --host 0.0.0.0 như phần trên. Bên trong container luôn bind 0.0.0.0, còn giới hạn truy cập thì làm ở tham số -p bên ngoài.
Máy chủ từ xa và tường lửa đám mây
Với VPS hoặc máy chủ đám mây, đường đi của kết nối qua nhiều lớp: nhóm bảo mật của nhà cung cấp, tường lửa hệ điều hành như ufw hoặc firewalld, rồi mới tới ứng dụng. Lớp nào cũng có thể trả RST hoặc thả gói.
- Nếu lỗi là refused, kết nối đã tới máy chủ và bị hệ điều hành trả RST. Thường là dịch vụ không chạy.
- Nếu lỗi là timed out, kết nối bị thả ở đâu đó, thường là nhóm bảo mật hoặc tường lửa.
- Đăng nhập SSH, chạy curl -v http://127.0.0.1:port ngay trên máy chủ. Vào được nghĩa là ứng dụng ổn, lỗi nằm ở lớp mạng bên ngoài.
Ngoài ra cần kiểm tra reverse proxy như Nginx. Nếu Nginx trỏ tới upstream sai cổng, người dùng sẽ nhận lỗi 502 chứ không phải refused. Lỗi refused chỉ xuất hiện trực tiếp khi trình duyệt gọi thẳng vào cổng không có dịch vụ.
Sửa lỗi ERR_CONNECTION_REFUSED trên điện thoại
Lỗi trên điện thoại ít khi do ứng dụng, mà thường do cấu hình mạng còn sót lại. Cách sửa khác nhau giữa Android và iPhone.
Trên Android
Android cho phép đặt proxy riêng cho từng mạng Wi-Fi. Đây là chỗ cấu hình hay bị quên nhất. Anh em kiểm tra theo các bước:
- Mở Cài đặt, chọn Kết nối hoặc Mạng và Internet, chọn Wi-Fi.
- Bấm vào biểu tượng bánh răng cạnh mạng đang kết nối.
- Chọn Nâng cao hoặc Xem thêm, tìm mục Proxy.
- Đổi từ Thủ công về Không có, lưu lại và kết nối lại mạng.
Nếu lỗi chỉ xảy ra trên Wi-Fi mà 4G vẫn bình thường, nhiều khả năng proxy Wi-Fi là nguyên nhân. Ngoài ra kiểm tra các ứng dụng VPN, chặn quảng cáo, DNS riêng tư trong phần cài đặt mạng.
Trên iPhone và iPad
iPhone cũng đặt proxy theo từng mạng Wi-Fi. Vào Cài đặt, chọn Wi-Fi, bấm vào chữ i bên cạnh mạng đang dùng, kéo xuống mục Định cấu hình proxy. Nếu đang là Thủ công hoặc Tự động mà anh em không chủ ý đặt, đổi về Tắt.
Thêm nữa, kiểm tra mục VPN và quản lý thiết bị trong Cài đặt chung. Hồ sơ cấu hình do công ty cài có thể áp proxy cho cả máy. Nếu máy là máy công ty, nên hỏi bộ phận IT trước khi gỡ hồ sơ.
Khi dùng điện thoại truy cập máy tính trong mạng LAN
Lập trình viên hay mở web đang phát triển trên điện thoại để thử giao diện. Lỗi từ chối kết nối lúc này gần như luôn do ứng dụng trên máy tính bind 127.0.0.1, hoặc tường lửa Windows chặn kết nối đến. Làm theo phần bind 0.0.0.0 ở trên, rồi mở bằng IP LAN dạng http://192.168.1.20:5173, không mở bằng localhost.
Lỗi ERR_CONNECTION_REFUSED khi dùng proxy cho công việc
Với anh em chạy nhiều tài khoản, thu thập dữ liệu hay kiểm thử quảng cáo, lỗi từ chối kết nối hay xuất hiện khi đổi proxy liên tục. Hiểu đúng nguyên nhân giúp phân biệt proxy hỏng với cấu hình sai.
Sai giao thức hoặc sai cổng proxy
Nhà cung cấp thường cấp hai cổng khác nhau cho HTTP và SOCKS5. Nhập cổng SOCKS5 vào ô HTTP, hoặc ngược lại, đôi khi khiến kết nối bị từ chối hoặc bị đóng ngay. Thói quen tốt là kiểm tra proxy bằng curl trước khi đưa vào trình duyệt chống phát hiện hay công cụ tự động:
curl -v -x http://user:pass@203.0.113.10:8080 https://api.ipify.org
curl -v -x socks5h://user:pass@203.0.113.10:1080 https://api.ipify.org
Nếu lệnh trả về IP của proxy, proxy hoạt động. Nếu báo refused ngay ở bước kết nối tới proxy, cổng proxy không mở: proxy đã hết hạn, bị đổi cổng, hoặc IP của anh em chưa được thêm vào danh sách cho phép.
Proxy cục bộ trong phần mềm chống phát hiện
Các trình duyệt chống phát hiện thường dựng một proxy cục bộ trên 127.0.0.1 để chuyển tiếp tới proxy thật. Khi phần mềm bị treo hoặc cập nhật dở dang, cổng cục bộ này đóng lại và mọi hồ sơ đều báo từ chối kết nối. Khởi động lại phần mềm, hoặc kiểm tra cổng đó bằng netstat, thường giải quyết được vấn đề.
Chọn proxy ổn định để tránh lỗi lặp lại
Lỗi do cấu hình sửa một lần là xong, còn lỗi do proxy chập chờn sẽ quay lại liên tục. Khi cần IP Việt Nam ổn định cho công việc, anh em có thể mua proxy dân cư tĩnh hoặc datacenter tại ProxyVN, hỗ trợ cả HTTP và SOCKS5, cấp sẵn tên đăng nhập và mật khẩu.
Lỗi từ chối kết nối là lỗi "dễ thương" nhất trong các lỗi mạng: máy đích vẫn trả lời, chỉ cần tìm đúng cổng đang đóng.
ProxyVN đảm bảo mạng kết nối luôn ổn định, proxy không bị mất kết nối giữa chừng, và có đội hỗ trợ 24/24 khi anh em gặp lỗi cấu hình. Gặp lỗi refused với proxy của ProxyVN, anh em chỉ cần gửi kết quả lệnh curl -v để được kiểm tra nhanh.
Những sai lầm thường gặp khi sửa lỗi ERR_CONNECTION_REFUSED
Khi gặp lỗi, nhiều anh em làm theo các hướng dẫn chung chung trên mạng và mất thời gian vào những bước không liên quan. Phần này chỉ ra các thao tác ít tác dụng với lỗi từ chối kết nối.
Xoá cache và cookie ngay từ đầu
Xoá dữ liệu duyệt web chỉ giúp được khi trang lỗi do dữ liệu cũ. Lỗi từ chối kết nối xảy ra ở tầng TCP, trước khi trình duyệt gửi cookie hay đọc cache. Vì vậy xoá cache gần như không thay đổi gì, trừ khi trình duyệt đang giữ một chuyển hướng cũ tới cổng sai. Anh em nên để bước này về sau, sau khi đã kiểm tra proxy và cổng.
Cài lại trình duyệt
Cài lại Chrome mất thời gian và làm mất cấu hình, nhưng không giải quyết được lỗi do proxy hệ thống hay do dịch vụ không chạy. Proxy Windows nằm ngoài Chrome, cài lại trình duyệt thì cấu hình đó vẫn còn. Chỉ nên cài lại khi đã thử hồ sơ mới mà vẫn lỗi, và curl vào được trang.
Đổi DNS mà không kiểm tra
Đổi DNS sang 8.8.8.8 hay 1.1.1.1 chỉ hữu ích khi tên miền phân giải sai IP. Với lỗi từ chối kết nối, DNS đã chạy xong và trả về một IP, máy ở IP đó đã trả RST. Nếu nghi DNS, anh em chạy nslookup tên miền để xem IP có đúng không, rồi mới đổi. Thao tác flushdns hay reset Winsock đã có nhiều bài hướng dẫn, nhưng với lỗi refused thì hiếm khi cần tới.
Tắt hết lớp bảo vệ để thử
Tắt tường lửa, tắt antivirus, tắt Windows Defender cùng lúc có thể khiến trang vào được, nhưng anh em không biết lớp nào gây lỗi. Tệ hơn, nhiều người quên bật lại. Cách đúng là tắt từng lớp, thử, rồi bật lại ngay, sau đó thêm ngoại lệ cụ thể cho trang hoặc ứng dụng cần dùng.
Phòng tránh lỗi ERR_CONNECTION_REFUSED về lâu dài
Sửa xong một lần, anh em nên có vài thói quen nhỏ để lỗi không quay lại. Phần lớn đều liên quan tới việc quản lý proxy và cổng có chủ đích.
Quản lý proxy có chủ đích
- Ghi lại phần mềm nào đặt proxy hệ thống, gỡ phần mềm thì kiểm tra lại mục Proxy trong Settings.
- Dùng proxy theo từng ứng dụng hoặc từng hồ sơ trình duyệt thay vì đặt cho cả máy.
- Đặt NO_PROXY cho localhost và các dải IP nội bộ.
- Kiểm tra proxy bằng curl trước khi đưa vào công cụ.
Quản lý cổng khi phát triển phần mềm
- Cố định cổng trong cấu hình dev server thay vì để tự đổi.
- Dùng tham số --strictPort với Vite để server báo lỗi khi cổng bận, không tự nhảy sang cổng khác.
- Ghi cổng vào file README hoặc .env để cả nhóm dùng chung.
- Với Docker compose, luôn khai báo rõ phần ports và kiểm tra bằng docker ps.
Giám sát dịch vụ trên máy chủ
Với máy chủ chạy thật, lỗi refused nghĩa là dịch vụ đã chết. Anh em nên đặt dịch vụ dưới systemd với chế độ tự khởi động lại, hoặc dùng restart: unless-stopped trong Docker. Kết hợp một công cụ theo dõi uptime gọi vào cổng mỗi phút, anh em sẽ biết dịch vụ sập trước khi khách hàng báo.
Thêm một thói quen đáng giá là ghi log khởi động. Khi dịch vụ chết vì hết bộ nhớ hay lỗi cấu hình, log sẽ cho biết lý do. Không có log, lần sau lỗi lặp lại anh em lại phải đoán từ đầu.
Kết luận
Lỗi ERR_CONNECTION_REFUSED cho biết máy đích vẫn sống nhưng không có dịch vụ nhận kết nối ở cổng được gọi. Người dùng web nên kiểm tra proxy hệ thống, tiện ích và tường lửa trước. Lập trình viên nên kiểm tra dev server, địa chỉ bind và cổng Docker. Cần proxy ổn định cho công việc, hãy liên hệ Proxy.vn - Nhà cung cấp dịch vụ proxy chất lượng hàng đầu Việt Nam để được tư vấn khi gặp lỗi ERR_CONNECTION_REFUSED.