Cố định DNS-Nameserver trong Ubuntu server 18.04 khi bị reboot

Có thể bạn sẽ gặp phải vấn đề khi Ubuntu server 18 khởi động lại thì cấu hình của dns-nameserver bị thay đổi về địa chỉ 127.0.0.53. Điều này sẽ dẫn đến bạn không phân giải được tên miền (vẫn có ping hoặc kết nối vào được IP trên Internet).

Trong hướng dẫn này, HCD sẽ hướng dẫn bạn cấu hình để cố định dns-nameserver mỗi khi khởi động lại. Hãy bắt đầu ngay.

Hiện tượng

Sau khi reboot lại, file sẽ bị thay đổi về nội dung nameserver 127.0.0.53 (dòng gần cuối), mặc dù trước đó bạn đã thay đổi sang 8.8.8.8 :).

[email protected]:~# cat /etc/resolv.conf
# This file is managed by man:systemd-resolved(8). Do not edit.
#
# This is a dynamic resolv.conf file for connecting local clients to the
# internal DNS stub resolver of systemd-resolved. This file lists all
# configured search domains.
#
# Run "systemd-resolve --status" to see details about the uplink DNS servers
# currently in use.
#
# Third party programs must not access this file directly, but only through the
# symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a different way,
# replace this symlink by a static file or a different symlink.
#
# See man:systemd-resolved.service(8) for details about the supported modes of
# operation for /etc/resolv.conf.

nameserver 127.0.0.53
options edns0

Khi bạn thực hiện ping ra IP hoặc tên miền sẽ gặp thông báo như ảnh sau.

Ping ra tên miền báo không phân giải được.

Lý do đơn giản vì đây là một liên kết mềm (soft link) nên việc thay đổi ở đây không có tác dụng. Kiểm tra bằng lệnh ls -alh /etc/resolv.conf ta sẽ thấy file của link.

[email protected]:~# ls -alh /etc/resolv.conf
lrwxrwxrwx 1 root root 39 Aug  6  2020 /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf
[email protected]:~#

Cách xử lý

Để xử lý việc này, bạn hãy cài thêm gói resolvconf để xử lý vấn đề này. Lưu ý trước khi cài, bạn cần sửa lại dòng nameserver 127.0.0.53 ở file /etc/resolv.conf thành nameserver 8.8.8.8 để có thể ra internet lấy gói trước nhé. Trong bài này sẽ thực hiện cấu hình với quyền root hoặc cần sudo su để thực hiện nhé.

apt -y install resolvconf

Sau khi cài xong, bạn dùng vi/vim hoặc tool quen thuộc để sửa file /etc/resolvconf/resolv.conf.d/head với nội dung dưới.

# Make edits to /etc/resolvconf/resolv.conf.d/head

nameserver 8.8.8.8
nameserver 8.8.4.4

Khởi động lại resolvconf để cấu hình được áp dụng.

service resolvconf restart

Sau đó reboot lại và kiểm tra kết quả bằng các thao tác sau

Kiểm tra nội dung file /etc/resolv.conf bằng lệnh cat

[email protected]:~# cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.
nameserver 8.8.8.8
nameserver 8.8.4.4

nameserver 127.0.0.53

Ping thử ra ngoài bằng IP và Domain để đảm bảo internet đã thông.

Kết quả ping đã thông ra ngoài internet.

Tới đây học chủ động đã hướng dẫn mẹo nhỏ này với bạn, nếu thấy hay thì hãy share hoặc chia sẻ thêm cách bạn có nhé.

Tham khảo:

  1. https://datawookie.dev/blog/2018/10/dns-on-ubuntu-18.04/

Leave a Comment