Ngoài câu trả lời của Yamakaja , đây là cách bạn thiết lập máy chủ DNS cục bộ.
Trước tiên, bạn cần một máy tính bạn muốn chạy máy chủ DNS. Đây có thể là một trong những máy tính bình thường của bạn (nếu chúng chạy Linux và hầu hết thời gian) hoặc ví dụ như Raspberry Pi . Ưu điểm của một thiết bị như vậy là nó rẻ, không cần nhiều năng lượng và nó nhỏ.
Thiết lập máy chủ DNS
Tôi đã quyết định thiết lập máy chủ DNS trên Raspberry Pi dnsmasq
, đây là một công cụ máy chủ DNS nhỏ, lý tưởng để sử dụng trong các mạng nhỏ. Bạn cũng có thể sử dụng bind
, công cụ DNS tiêu chuẩn thực tế, nhưng điều này có lẽ hơi quá mạnh đối với một mạng gia đình nhỏ.
Cài đặt dnsmasq
bằng trình quản lý gói, trên các hệ thống dựa trên Debian (ví dụ: Raspbian), lệnh sẽ là
sudo apt-get install dnsmasq
Bây giờ tôi giả sử bạn đã thiết lập phân bổ địa chỉ IP tĩnh (tức là địa chỉ IP bạn đề cập trong câu hỏi của bạn không thay đổi). Nếu bạn chưa có, dnsmasq
cũng có thể được sử dụng như một máy chủ DHCP, nhưng tôi chưa làm điều đó.
dnsmasq
lấy tên máy chủ từ /etc/hosts
. Chỉnh sửa tập tin này như sau:
# IP address Host name
192.168.1.1 router
192.168.1.22 printer
Tên máy chủ router
hiện được gán cho 192.168.1.1
, printer
để 192.168.1.22
.
Bây giờ, bạn đã thiết lập máy chủ DNS của riêng mình, nhưng các máy tính trong mạng của bạn chưa sử dụng. Để làm cho họ sử dụng máy chủ này, bạn phải thực hiện một bước chuẩn bị:
Tìm địa chỉ IP của thiết bị dnsmasq của bạn bằng cách sử dụng ip address
(giả sử nó 192.168.1.42
). Mở /etc/dnsmasq.conf
và nối các dòng sau:
listen-address=127.0.0.1
listen-address=192.168.1.42
Điều này cho biết dnsmasq
nó nên lắng nghe yêu cầu khi chúng được gửi đến 127.0.0.1
(tức là khi chính nó muốn sử dụng máy chủ DNS của nó) hoặc 192.168.1.42
(tức là khi các máy tính khác muốn sử dụng máy chủ DNS của nó).
Sử dụng máy chủ DNS
Bạn phải nói với mỗi máy tính trong mạng của mình, nó cũng nên (sử dụng) 192.168.1.42
làm máy chủ DNS. Cách bạn làm điều này phụ thuộc vào hệ điều hành của bạn. Bạn có thể dễ dàng tìm kiếm hệ thống hoạt động được chỉ định này trên internet (chỉ cần tìm kiếm "Thay đổi máy chủ DNS trên <OS>" hoặc đại loại như thế).
Đối với Windows 7, bạn có thể làm theo hướng dẫn này: https://www.opennicproject.org/configure-your-dns/how-to-change-dns-servers-in-windows-7/ .
Trên hệ thống của tôi (Arch Linux), tôi đã phải nối dòng sau vào /etc/resolvconf.conf
name_servers=192.168.1.42
Lưu ý tệp bạn phải sử dụng tùy thuộc vào cấu hình trình quản lý mạng của bạn. Thêm IP máy chủ DNS trên mỗi máy tính bạn muốn sử dụng DNS của mình.
Bạn có thể sẽ phải khởi động lại thiết bị nếu nó không hoạt động ngay lập tức.
Thế là xong, bạn đã hoàn thành. Bây giờ bạn có thể truy cập tất cả các thiết bị bạn đã nhập vào /etc/hosts
máy chủ dnsmasq chỉ bằng cách sử dụng tên máy chủ bạn đã đặt.
(Tùy chọn) Kiểm tra chức năng
Nếu bạn muốn kiểm tra xem độ phân giải DNS có hoạt động chính xác hay không, hãy cài đặt dnsutils
(Linux) trên hệ thống nên sử dụng máy chủ của bạn. Sau đó thực hiện
$ dig router
Điều này sẽ trả lại một cái gì đó như thế này
; <<>> DiG 9.10.4-P1 <<>> router
;; global options: +cmd
;; Got answer:
...
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;router. IN A
;; ANSWER SECTION:
router. 0 IN A 192.168.1.1
;; Query time: 14 msec
;; SERVER: 192.168.1.42#53(192.168.1.42)
;; WHEN: So Jun 26 10:43:18 CEST 2016
;; MSG SIZE rcvd: 50
Nó cho bạn biết tên máy chủ bạn muốn giải quyết, địa chỉ IP mà nó đã được phân giải và máy chủ DNS được sử dụng. Như bạn thấy, mọi thứ đều ổn.
(Tùy chọn) Chỉ định TLD
Nếu bạn muốn truy cập các thiết bị không chỉ bằng router
hoặc printer
mà với router.home
và printer.home
, hãy thêm các dòng sau vào /etc/dnsmasq.conf
:
expand-hosts # Tells dnsmasq to add a TLD to each host name
domain=home # The TLD
Bạn có thể cần phải khởi động lại một lần nữa.
Nguồn / đọc thêm
Về dnsmasq
:
Giới thiệu bind
(nếu bạn quan tâm đến nó):