Bạn vừa đổi hosting, trỏ domain sang server mới, nhưng chưa muốn cả thế giới thấy sự thay đổi này trước khi kiểm tra kỹ. Hoặc ngược lại: trình duyệt tự nhiên đưa bạn tới một trang lạ dù gõ đúng địa chỉ ngân hàng quen thuộc. Cả hai tình huống đều xoay quanh cùng một file: file hosts (thường gọi tắt là file host). Bài này lập luận rằng sức mạnh của file này và rủi ro của nó đến từ đúng một cơ chế, không phải hai chuyện tách biệt: quyền được hệ điều hành tin tuyệt đối, không cần kiểm chứng lại.
Lưu ý: bài này nói về file hosts trên máy tính cá nhân, khác hoàn toàn với file hosting (dịch vụ lưu trữ website). Ở bài viết này, chúng tôi đi từ cơ chế hoạt động, vị trí file trên từng hệ điều hành, đến cách sửa an toàn và cách khôi phục khi có sự cố.
Contents
File hosts là một file văn bản đơn giản (mở được bằng bất kỳ trình soạn thảo nào, không cần phần mềm chuyên dụng) do hệ điều hành đọc, dùng để ánh xạ trực tiếp hostname hoặc domain với một địa chỉ IP cụ thể, không qua bất kỳ máy chủ DNS nào. Cú pháp cơ bản là một địa chỉ IP đứng trước, theo sau là domain hoặc hostname:
127.0.0.1 example.com
192.168.1.10 test.local
Không có ký hiệu đặc biệt, không có dấu ngoặc, chỉ là IP và tên cách nhau bằng khoảng trắng. Chính vì đơn giản đến mức này, file hosts đã tồn tại từ thời kỳ đầu của Internet, trước khi hệ thống DNS ra đời để phân giải tên miền trên quy mô toàn cầu. Đến nay, mọi hệ điều hành hiện đại (Windows, macOS, Linux) vẫn giữ lại file hosts như một lớp tra cứu được ưu tiên đọc trước.
File hosts chỉ có hiệu lực trên đúng máy đang chỉnh sửa, còn DNS là hệ thống phân giải tên miền công khai, ảnh hưởng đến bất kỳ ai truy cập domain đó từ bất kỳ đâu. Sửa một dòng trong file hosts không đổi được cách người khác nhìn thấy website của bạn, dù bạn trỏ đúng hay sai IP.
Cũng cần tách bạch với file hosting, tức dịch vụ lưu trữ và chia sẻ file trực tuyến (kiểu Google Drive, WeTransfer). Hai khái niệm chỉ trùng âm đọc, không liên quan về mặt kỹ thuật. Nếu bạn tìm cách chia sẻ file qua Internet, file hosts không phải thứ cần tìm.

File hosts hoạt động bằng cách chen vào trước bước tra cứu DNS: hệ điều hành luôn kiểm tra file này đầu tiên mỗi khi bạn nhập một domain, và chỉ hỏi DNS khi không tìm thấy dòng ánh xạ tương ứng. Theo mặc định, file hosts đứng ở vị trí ưu tiên cao nhất trong chuỗi tra cứu tên miền trên Windows, macOS và Linux.
Ví dụ, nếu bạn thêm dòng sau vào file hosts:
203.0.113.10 mywebsite.com
Khi gõ mywebsite.com trên trình duyệt, máy sẽ dùng thẳng IP 203.0.113.10, kể cả khi DNS thật sự đang trỏ domain đó về một IP hoàn toàn khác. Trình duyệt không phân biệt IP này đến từ đâu, nó chỉ nhận IP và kết nối.
Chính vì tin tuyệt đối như vậy, file hosts rất hữu ích khi bạn muốn thử một thay đổi ngay trên máy mình mà không ảnh hưởng đến ai khác. Bạn có thể giả lập trước kết quả của một lần đổi DNS, xem thử rồi mới quyết định có làm thật hay không.
Nhưng cũng vì máy không kiểm tra lại ai đã thêm dòng ánh xạ đó hay nó có đáng tin không, nên bất kỳ ai hoặc phần mềm nào ghi được vào file hosts đều nắm quyền quyết định domain trỏ đi đâu trên máy đó, mà không cần đụng đến hệ thống DNS công khai. Đây là điểm cần nhớ: sửa file hosts chỉ ảnh hưởng một máy, nhưng trên chính máy đó, nó có quyền ghi đè lên DNS thật.

Vị trí file hosts cố định theo từng hệ điều hành và đều nằm trong thư mục hệ thống, không phải nơi ứng dụng thông thường có quyền ghi:
|
Hệ điều hành |
Vị trí file hosts |
|
Windows |
C:\Windows\System32\drivers\etc\hosts |
|
Linux |
/etc/hosts |
|
macOS |
/private/etc/hosts (alias /etc/hosts) |
File hosts không có phần mở rộng (extension), tên file đúng chuẩn chỉ là hosts. Trên Windows, một lỗi phổ biến là lưu nhầm thành hosts.txt do Notepad tự thêm đuôi .txt, khiến hệ điều hành đọc file hosts gốc (rỗng hoặc chưa sửa) thay vì bản đã chỉnh.
Việc đặt file hosts trong thư mục hệ thống không phải ngẫu nhiên: vì file này có quyền ghi đè DNS như đã nói ở phần trước, hệ điều hành yêu cầu quyền Admin (Windows) hoặc root (macOS/Linux) mới sửa được, nhằm ngăn ứng dụng thông thường tự ý đổi hướng domain mà người dùng không biết. Nên backup file gốc trước khi sửa, để có thể khôi phục ngay nếu thao tác sai.

Đây là cách dùng quan trọng nhất với người quản trị website, lập trình viên và đội hỗ trợ kỹ thuật của nhà cung cấp hosting. Khi chuyển hosting hoặc đổi server, bạn trỏ domain trong file hosts về IP server mới trên máy mình để kiểm tra trước. Bạn xem website chạy đúng chưa: giao diện có hiển thị bình thường không, tốc độ tải trang thế nào, có báo lỗi hay không, chứng chỉ bảo mật SSL có hoạt động đúng không, trong khi người dùng khác vẫn truy cập server cũ bình thường qua DNS thật. Chỉ khi xác nhận ổn, bạn mới đổi DNS thật, tránh downtime hoặc lỗi hiển thị cho toàn bộ khách truy cập trong lúc kiểm tra.
Trỏ một domain về 127.0.0.1 (địa chỉ loopback/localhost, tức chính máy đang dùng) khiến máy đó không truy cập được domain nữa, vì không có server nào chạy ở địa chỉ đó phục vụ domain kia:
127.0.0.1 example-block.com
Cách này chỉ phù hợp nhu cầu đơn giản trên một máy, không thay thế được firewall hoặc DNS filtering khi cần quản lý chặn trên nhiều thiết bị.
Thay vì nhớ dãy IP nội bộ, bạn đặt tên dễ nhớ cho từng máy trong mạng LAN hoặc lab:
192.168.1.20 dev.local
192.168.1.30 database.local
Cách này phổ biến trong môi trường phát triển nhiều service, nơi việc gõ đúng IP mỗi lần dễ gây nhầm lẫn hơn gõ một hostname có ý nghĩa.
Nếu bạn thêm đúng domain và IP vào file hosts mà website truy cập được bình thường, DNS công khai nhiều khả năng đang trỏ sai hoặc chưa cập nhật kịp, vì file hosts đã chứng minh server ở IP đó phục vụ đúng domain. Nếu vẫn lỗi dù đã trỏ đúng qua hosts, nguyên nhân nằm ở nơi khác: cấu hình server, firewall, SSL hoặc bản thân ứng dụng, không còn liên quan tới DNS nữa.

Hosts file phù hợp với các tình huống chỉ cần thay đổi trên một máy, mang tính tạm thời hoặc thử nghiệm:
Ngược lại, một số tình huống đòi hỏi giải pháp ở cấp hệ thống, file hosts không giải quyết được và có thể gây hiểu lầm nếu cố dùng:
Mỗi dòng trong file hosts theo cấu trúc IP_address hostname [alias], cột IP luôn đứng trước:
127.0.0.1 localhost
203.0.113.10 example.com www.example.com
Cột đầu tiên là địa chỉ IP, cột sau là hostname hoặc domain, có thể thêm một hoặc nhiều alias cách nhau bằng khoảng trắng trên cùng dòng. Dòng bắt đầu bằng dấu “#” được hệ điều hành bỏ qua, dùng để ghi chú lý do thêm dòng đó, giúp bạn hoặc người khác hiểu lại cấu hình sau này.
Một số lỗi lặp lại khiến dòng ánh xạ không có tác dụng dù trông có vẻ đúng:
Ví dụ sai và đúng để đối chiếu:
# Sai
https://example.com 203.0.113.10
203.0.113.10 example.com/login
# Đúng
203.0.113.10 example.com
203.0.113.10 www.example.com
Mở Notepad bằng cách tìm trong Start Menu, sau đó chọn Run as administrator (chạy với quyền quản trị viên). Bước này bắt buộc vì file hosts nằm trong System32, thư mục chứa các file lõi của hệ điều hành Windows mà ứng dụng mở bằng quyền thường không có quyền ghi vào.
Trong Notepad, mở file tại đường dẫn:
C:\Windows\System32\drivers\etc\hosts
Nếu hộp thoại Open không hiện file hosts, đổi bộ lọc định dạng sang All Files (mặc định Notepad chỉ lọc file .txt). Thêm dòng cấu hình cần thiết rồi lưu file, giữ nguyên tên hosts, không để Notepad tự thêm đuôi .txt. Nếu máy không có quyền Admin, bạn vẫn xem được nội dung nhưng không lưu được thay đổi.
Mở Terminal (ứng dụng dòng lệnh có sẵn trên macOS), chạy lệnh sau để mở file hosts bằng nano, một trình soạn thảo văn bản đơn giản chạy ngay trong Terminal:
sudo nano /private/etc/hosts
Lệnh sudo yêu cầu mật khẩu tài khoản, tương đương quyền root (quyền quản trị cao nhất trên macOS/Linux) cần thiết để ghi vào file hệ thống. Thêm dòng theo đúng cấu trúc đã nêu ở phần cú pháp, ví dụ:
203.0.113.10 example.com
Lưu file trong nano bằng tổ hợp Ctrl + O, nhấn Enter để xác nhận tên file, rồi Ctrl + X để thoát. Nếu trình duyệt vẫn hiển thị nội dung cũ sau khi lưu, thử flush DNS cache của máy để buộc hệ điều hành đọc lại ánh xạ mới.
Mở Terminal, chạy:
sudo nano /etc/hosts
Thêm dòng ánh xạ, ví dụ:
192.168.1.20 dev.local
Sau khi lưu, kiểm tra ngay bằng lệnh ping dev.local để xác nhận máy phân giải đúng IP vừa thêm. Không xóa các dòng mặc định có sẵn trong file (thường gồm ánh xạ cho localhost) nếu bạn không chắc ý nghĩa của chúng, vì một số service hệ thống phụ thuộc vào các dòng này.
Nguyên nhân phổ biến nhất là chưa mở editor bằng quyền Admin hoặc root, theo ghi nhận từ Đỗ Trung Quân. Ngoài ra file có thể bị đặt thuộc tính Read-only (chỉ đọc, không cho phép chỉnh sửa hay lưu), bị phần mềm diệt virus khóa ghi, hoặc bị lưu sai vị trí/sai tên thành hosts.txt.
Cách xử lý là mở Notepad bằng Run as administrator trên Windows, dùng sudo trên macOS/Linux, kiểm tra lại thuộc tính Read-only trong Properties nếu vẫn không lưu được, và xác nhận tên file đúng là hosts không có đuôi mở rộng.
Hệ điều hành và trình duyệt đều lưu tạm kết quả tra cứu DNS để lần sau truy cập nhanh hơn, gọi là DNS cache. Nếu DNS cache còn giữ kết quả cũ, nguyên nhân thường nằm ở đó. Ngoài ra còn có thể do gõ sai domain, quên thêm bản www, hoặc website đang dùng CDN/proxy (dịch vụ trung gian đứng giữa người dùng và server gốc, ví dụ Cloudflare) khiến IP thực tế khác IP gốc bạn nhắm tới.
Cách xử lý là flush DNS cache, đóng và mở lại trình duyệt, kiểm tra bằng lệnh ping domain để xác nhận IP đang phân giải, và kiểm tra cả hai bản example.com và www.example.com xem có bản nào bị bỏ sót trong file hosts không.
File hosts chỉ đổi IP cục bộ, không tự cấu hình chứng chỉ SSL, tức chứng chỉ bảo mật giúp website hiển thị biểu tượng ổ khóa an toàn trên trình duyệt, trên server đích. Nếu server mới chưa có chứng chỉ khớp đúng domain, trình duyệt sẽ báo lỗi cảnh báo bảo mật dù bạn trỏ IP hoàn toàn chính xác.
Trước tiên, kiểm tra xem server đích đã cấu hình để phục vụ đúng domain đó chưa (thiết lập này thường gọi là VirtualHost hoặc server block, tùy phần mềm server đang dùng). Tiếp theo, xác nhận chứng chỉ SSL đã cấp cho đúng tên miền, bao gồm cả bản ‘www’. Cuối cùng, đảm bảo server đích thực sự trả về nội dung của domain đó chứ không phải trang mặc định.
Mã độc, tức phần mềm được tạo ra với mục đích gây hại, thường nhắm vào file hosts để chuyển hướng domain, nên phần mềm diệt virus theo dõi file này khá sát. Microsoft đặt tên riêng cho hành vi này là SettingsModifier:Win32/HostsFileHijack, và ghi nhận mã độc thường lợi dụng file hosts để chặn truy cập các trang bảo mật hoặc chuyển hướng domain ngân hàng, email, đăng nhập sang IP giả mạo, theo Microsoft Security Intelligence. Malwarebytes Labs cũng ghi nhận cơ chế tương tự: chính vì file hosts được tin tuyệt đối và đọc trước DNS, một dòng chèn ngầm là đủ để chuyển hướng người dùng mà không cần đụng đến DNS công khai.
Nếu bạn tự sửa file hosts, hãy kiểm tra kỹ nội dung trước khi lưu và không paste danh sách hosts từ nguồn không tin cậy. Nếu thấy domain ngân hàng, email hoặc mạng xã hội bị trỏ sang IP lạ mà bạn không tự thêm, cần xóa dòng đó ngay và quét malware toàn diện.
Nên khôi phục file hosts về mặc định khi rơi vào một trong các tình huống sau: lỡ thêm sai IP hoặc domain và không nhớ đã sửa gì, website bất ngờ bị chuyển hướng tới nơi lạ, hoặc nghi ngờ malware đã chỉnh sửa file mà không thông qua bạn.
Cách làm gồm các bước tuần tự:
hosts.old thay vì xóa hẳn.hosts, không có phần mở rộng, chỉ chứa các dòng mặc định của hệ điều hành.Sau khi khôi phục, lưu file, flush DNS cache, mở lại trình duyệt và kiểm tra lại các website từng bị ảnh hưởng để xác nhận đã về đúng IP thật.

Trước khi sửa file hosts, hãy đảm bảo các điều kiện sau:
http://, https:// hoặc path URL vào dòng ánh xạ.Sau khi sửa xong, kiểm tra lại theo các bước sau:
cówww và không cówww nếu domain cần cả hai.ping, nslookup (lệnh dòng lệnh dùng để tra domain đang trỏ về IP nào) hoặc trực tiếp trên trình duyệt.Giá trị của file hosts và rủi ro của nó đến từ cùng một chỗ: nó được máy tin tuyệt đối, không cần hỏi lại DNS. Điều đó giúp bạn kiểm tra website trước khi đổi DNS thật, nhưng cũng có nghĩa là bất kỳ dòng ánh xạ nào lọt vào file, dù do bạn gõ nhầm hay do mã độc chèn vào, đều được máy làm theo ngay lập tức.
Vì vậy, hãy coi file hosts như một cánh cửa có quyền lực lớn: dùng đúng lúc, đúng cách theo checklist ở trên thì tiết kiệm được rất nhiều thời gian debug. Bỏ mặc không kiểm tra định kỳ thì đó lại là chỗ dễ bị lợi dụng nhất trên máy bạn.
Không. File hosts là ánh xạ cục bộ chỉ có hiệu lực trên máy đang sửa, còn DNS là hệ thống phân giải tên miền công khai trên mạng, ảnh hưởng đến mọi người truy cập domain đó từ bất kỳ đâu.
Không, nếu bạn chỉ sửa trên máy cá nhân. Thay đổi trong file hosts chỉ tác động đến cách chính máy đó phân giải domain, người dùng khác vẫn truy cập theo DNS thật như bình thường.
Thường do bạn chưa mở editor bằng quyền Admin hoặc root, file đang ở thuộc tính Read-only, bị antivirus khóa ghi, hoặc bị lưu sai tên thành hosts.txt thay vì hosts.
Thường không cần khởi động lại toàn bộ máy. Bạn chỉ cần flush DNS cache hoặc đóng mở lại trình duyệt để hệ thống đọc lại ánh xạ mới trong file hosts.
Có thể dùng cho một máy cá nhân bằng cách trỏ domain về 127.0.0.1. Nếu cần quản lý chặn trên nhiều thiết bị cùng lúc, nên dùng DNS filtering, firewall hoặc rule ở router thay vì sửa hosts từng máy.
Bản thân file hosts không nguy hiểm, nó chỉ là một file cấu hình. Rủi ro đến từ nội dung sai bạn tự thêm, dòng ánh xạ trỏ tới IP lạ, hoặc việc bị malware âm thầm chỉnh sửa để chuyển hướng domain nhạy cảm.