Cách sửa lỗi npm ERR! code ENOTFOUND: Khi Terminal không tìm thấy Registry

beginner💚 Node.js2026-05-02| Node.js (tất cả phiên bản), npm (tất cả phiên bản), Windows, macOS, Linux

Error Message

npm ERR! code ENOTFOUND npm ERR! errno ENOTFOUND npm ERR! network request to https://registry.npmjs.org/package-name failed, reason: getaddrinfo ENOTFOUND registry.npmjs.org
#npm#registry#mạng#proxy#enotfound#dns

Tại sao npm báo lỗi ENOTFOUND?

Gặp lỗi npm ERR! code ENOTFOUND thường có nghĩa là máy tính của bạn và npm registry đã ngừng kết nối với nhau. Cụ thể hơn, quá trình tra cứu DNS của hệ thống đã thất bại. Về mặt kỹ thuật, nó tương đương với việc trình duyệt báo "Server Not Found" (Không tìm thấy máy chủ), nhưng xảy ra ngay trong dòng lệnh của bạn.

Nói một cách đơn giản, máy tính của bạn đang "gào thét" tìm kiếm registry.npmjs.org nhưng không nhận được phản hồi. Điều này thường xuất phát từ việc mất kết nối Wi-Fi, bộ nhớ đệm DNS bị cũ, hoặc tường lửa của công ty đang chặn đường.

Thông báo lỗi chi tiết

Có lẽ bạn đang nhìn thấy một thông báo lỗi trên terminal trông như thế này:

npm ERR! code ENOTFOUND
npm ERR! errno ENOTFOUND
npm ERR! network request to https://registry.npmjs.org/package-name failed, reason: getaddrinfo ENOTFOUND registry.npmjs.org

Cách khắc phục

1. Kiểm tra kết nối trong 10 giây

Bắt đầu với những bước cơ bản. Chạy lệnh ping nhanh để xem bạn có thể kết nối với thế giới bên ngoài hay không:

ping registry.npmjs.org

Một kết nối ổn định sẽ trả về phản hồi dưới 100ms. Nếu bạn thấy thông báo "Ping request could not find host", có thể internet của bạn đã bị ngắt hoặc bộ định tuyến (router) đang gặp trục trặc.

2. Xóa bộ nhớ đệm DNS (Flush DNS)

Các vấn đề về DNS phổ biến một cách đáng ngạc nhiên. Đôi khi máy tính của bạn ghi nhớ một đường dẫn cũ hoặc bị hỏng đến registry. Việc xóa bộ nhớ đệm sẽ buộc nó phải tìm kiếm một lộ trình mới.

Trên Windows:

ipconfig /flushdns

Trên macOS:

sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

Nếu vẫn không thành công, hãy thử chuyển cài đặt mạng của bạn sang một DNS công cộng đáng tin cậy như Google (8.8.8.8) hoặc Cloudflare (1.1.1.1).

3. Kiểm tra URL của npm Registry

Một lỗi đánh máy đơn giản trong cấu hình có thể khiến npm trỏ đến một máy chủ không tồn tại. Kiểm tra các cài đặt hiện tại của bạn bằng lệnh sau:

npm config get registry

Nếu kết quả không phải là https://registry.npmjs.org/, hãy đặt lại về mặc định chính thức:

npm config set registry https://registry.npmjs.org/

4. Quản lý cài đặt Proxy của công ty

Môi trường mạng công ty thường xuyên gặp lỗi này. Nếu bạn đang ở sau tường lửa của công ty, npm cần các chỉ dẫn cụ thể để đi qua. Ngược lại, nếu bạn vừa rời văn phòng, một cài đặt proxy "ma" có thể vẫn còn hoạt động.

Kiểm tra các proxy đang hoạt động:

npm config get proxy
npm config get https-proxy

Xóa chúng (nếu bạn đang dùng mạng tại nhà):

npm config delete proxy
npm config delete https-proxy

Thiết lập proxy (nếu văn phòng của bạn yêu cầu):

npm config set proxy http://username:password@proxy.company.com:8080
npm config set https-proxy http://username:password@proxy.company.com:8080

5. Bật/tắt VPN và Tường lửa

VPN thường can thiệp vào quá trình phân giải DNS. Nếu VPN đang hoạt động, hãy tắt nó đi và thử npm install lại. Một số phần mềm diệt virus quá "nhiệt tình" cũng có thể gắn cờ các tiến trình Node.js là đáng nghi ngờ và âm thầm chặn lưu lượng truy cập ra ngoài.

6. Xóa sạch bộ nhớ đệm (Giải pháp mạnh)

Mặc dù ENOTFOUND là lỗi mạng, nhưng đôi khi bộ nhớ đệm cục bộ bị hỏng cũng khiến npm hoạt động bất thường. Hãy dọn sạch với lệnh sau:

npm cache clean --force

Kiểm tra lại kết nối

Đừng chỉ liên tục chạy lệnh install. Hãy sử dụng lệnh ping có sẵn của npm để xác minh việc sửa lỗi:

npm ping

Nếu sửa lỗi thành công, lệnh sẽ trả về npm notice PING https://registry.npmjs.org/ 185ms. Khi bạn thấy trạng thái 200 OK, các gói thư viện của bạn sẽ được tải xuống mà không gặp trở ngại nào.

Cách phòng tránh và mẹo chuyên nghiệp

Hầu hết các lỗi ENOTFOUND xảy ra do việc thay đổi môi trường mạng. Khi tôi thiết lập một máy chủ mới hoặc khắc phục sự cố mạng cục bộ phứcợ tạp, tôi luôn kiểm tra kỹ các thông số để đảm bảo mọi thứ đều khớp.

Tôi thường sử dụng Subnet Calculator từ ToolCraft để xác minh cài đặt IP và gateway của máy mình. Đây là một công cụ trên trình duyệt nhanh chóng, giúp giữ kín dữ liệu của bạn trong khi giải quyết các vấn đề đau đầu về hạ tầng.

Để tránh các sự cố trong tương lai, hãy sử dụng biến môi trường cho các cài đặt proxy của bạn. Việc này giúp bạn tránh việc ghi cứng (hardcode) proxy công ty vào tệp .npmrc, vốn là lý do phổ biến nhất khiến lỗi này xuất hiện khi bạn làm việc ở quán cà phê sau đó.

Related Error Notes