Có rất nhiều cách khác nhau để bạn có thể thiết lập DNS nameserver như Network Manager GUI, netplain hoặc đơn giản và dễ sử dụng hơn là sử dụng file resolv.conf. Trong bài viết này mình sẽ hướng dẫn các bạn cách tùy chỉnh DNS nameserver trên thiết bị Ubuntu vĩnh viễn cho tới khi bạn tự mình thay đổi sang DNS nameserver khác trên thiết bị của mình.
Lưu ý: File /etc/resolv.conf sẽ bị ghi đè mỗi khi thiết bị khởi động lại, như vậy nghĩa là chúng ta sẽ không thể chỉnh sửa file này trực tiếp được. Thay vào đó, chúng ta sẽ chỉnh sửa một file khác vào sau đó tạo symbolic link tới /etc/resolv.conf
Một số dịch vụ DNS miễn phí
Trước khi đi vào chỉnh sửa DNS nameserver, mình sẽ chia sẻ tới bạn một số nhà cung cấp dịch vụ DNS miễn phí bên dưới đây – và mình khuyên bạn nên sử dụng DNS của Google và Cloudflare để tránh gặp vấn đề trong quá trình sử dụng. Và dưới đây là danh sách các nhà cung cấp dịch vụ DNS miễn phí:
GOOGLE
Primary IPv4: 8.8.8.8
Secondary IPv4: 8.8.4.4
Preferred IPv6: 2001:4860:4860::8888
Alternate IPv6: 2001:4860:4860::8844
Cloudflare
1.1.1.1
OPENDNS
Primary: 208.67.222.222
Secondary: 208.67.220.220
Preferred IPv6: 2620:0:ccc::2
Alternate IPv6: 2620:0:ccd::2
DNS.WATCH
Primary: 84.200.69.80
Secondary: 84.200.70.40
LEVEL3
Primary: 209.244.0.3
Secondary: 209.244.0.4
NORTON
Primary: 199.85.126.10
Secondary: 199.85.127.10
COMMODO
Primary: 8.26.56.26
Secondary: 8.20.247.20
VERISIGN
Primary: 64.6.64.6
Secondary: 64.6.65.6
Xem thêm: Public DNS server là gì
Cách thiết lập DNS nameserver
Chỉnh sửa file /etc/systemd/resolved.conf và bạn sẽ thấy trong file này mặc định sẽ chứa các thông tin như sau:
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
#
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
#
# See resolved.conf(5) for details
[Resolve]
#DNS=
#FallbackDNS=
#Domains=
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#Cache=yes
#DNSStubListener=yes
Sau đó bạn sẽ thêm DNS nameserver mà bạn muốn sử dụng vào phần DNS dưới [Resolve], giả sử dụng mình sử dụng DNS của Google và Cloudflare thì kết quả sau khi chỉnh sửa file của mình sẽ thành như sau:
[Resolve]
DNS=8.8.8.8 1.1.1.1
#FallbackDNS=
#Domains=
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#Cache=yes
#DNSStubListener=yes
Restart lại service để apply các DNS nameserver mới
service systemd-resolved restart
Như vậy là đã hoàn thành, lúc này nếu bạn kiểm tra file /etc/resolv.conf thì sẽ thấy nội dung bên trong file như sau nhưng sử dụng DNS nameserver mà bạn đã cấu hình trước đó:
nameserver 127.0.0.53
Nếu bạn muốn file /etc/resolv.conf hiển thị thông tin DNS nameserver mà bạn đã cấu hình – thì tiếp tục làm các bước tiếp sau đây.
Bạn cần xóa file /etc/resolv.conf đi để tạo symbolic link từ /run/systemd/resolve/resolv.conf
rm /etc/resolv.conf
Tạo symbolic link bằng cách chạy câu lệnh sau:
ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
Cuối cùng bạn có thể sử dụng các công cụ như nslookup hoặc dig để kiểm tra xem liệu DNS nameserver đã phân giải được địa chỉ IP hay đã phân giải đúng chưa.
Kết luận
Khi thực hiện các hướng dẫn trên là bạn đã có thể thay đổi set cứng DNS nameserver trên thiết bị của mình được rồi đấy mà không còn lo việc file /etc/resolv.conf bị ghi đè mỗi khi thiết bị được boot lại.