라즈베리 파이를 가지고 놀다가, 문득 DNS 관련 설정을 해주고 싶어서 이를 정리하여 작성한다.
resolvedctl을 이용한 설정
resolvectl이란, ubuntu에서 DNS 관련 서비스를 담당하는 서비스이다.

이 글에서는 이 기능을 이용하여 DNS 설정을 변경할 것이다.
resolvectl
resolvectl status
위의 두 명령을 입력하면, 위의 출력이 나타나며 관련 설정 상태를 알 수 있다.
설정 파일 수정하기
아래의 명령을 입력한다.
sudo nano /etc/systemd/resolved.conf
'sudo nano /etc/systemd/resolved.conf'는 systemd-resolved에서 사용하는 설정 파일이다. 이를 수정한다.

[Resolve] 항목을 살펴보면, #DNS와 #FallbackDNS 항목을 찾을 수 있다.
#DNS는 평시에 사용하는 DNS이고, #FallbackDNS는 평시에 사용하는 DNS가 사용 불가능일 때 대신 사용하는 DNS이다.
이 항목의 주석을 제거하고, 원하는 DNS를 설정한다.

이후 아래의 명령을 입력해 서비스를 다시 시작한다:
sudo systemctl restart systemd-resolved
이후, 다시 resolvectl status를 입력하여 설정이 적용되었는지 확인한다.

또는 이렇게 입력할 수 있다.
sprout1345@sproutpi:~$ dig chat.openai.com
; <<>> DiG 9.18.30-0ubuntu0.24.04.2-Ubuntu <<>> chat.openai.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56478
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;chat.openai.com. IN A
;; ANSWER SECTION:
chat.openai.com. 57 IN CNAME chat.openai.com.cdn.cloudflare.net.
chat.openai.com.cdn.cloudflare.net. 57 IN A 172.64.150.28
chat.openai.com.cdn.cloudflare.net. 57 IN A 104.18.37.228
;; Query time: 8 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Sat Apr 05 21:10:39 KST 2025
;; MSG SIZE rcvd: 124
이렇게 하면 외부의 주소가 정상적으로 쿼리되는지 알 수 있다.
번외: resolvectl 추가 설정
위의 이미지에서, -LLMNR, -DNSOverTLS 등의 항목이 있는 것을 확인할 수 있다.
간단하게 살펴보면:
- mDNS(Multicast DNS): 로컬 네트워크에서 DNS 서버 없이 기기들이 서로 이름을 해석할 수 있도록 도와주는 프로토콜
- LLMNR (Link-Local Multicast Name Resolution): 마이크로소프트에서 개발한 프로토콜로, 로컬 네트워크에서 기기들이 서로 이름을 해석할 수 있도록 함
- DNSOverTLS (DNS over TLS): DNS 요청을 TLS(Transport Layer Security) 암호화를 사용하여 보호
- DNSSEC (DNS Security Extensions): DNS 응답의 무결성을 검증하는 보안 프로토콜
즉, LLMNR, mDNS은 별 의미가 없지만(avahi가 다해준다), DNSOverTLS, DNSSEC는 보안을 위해서라면 켜는 것이 좋다.
방법은 다음과 같다:
sudo nano /etc/systemd/resolved.conf
다시 한번 설정 파일을 연다.

#DNSSEC=no
#DNSOverTLS=no
해당 부분의 주석을 없애고, 'no'를 'yes'로 변경한다.
DNSSEC=yes
DNSOverTLS=yes

저장했으면, 서비스를 재시작한다.
sudo systemctl restart systemd-resolved
가능하다면, 되도록 재부팅까지 다 해준다.
일단, 설정이 완료되었으면, 아래와 같이 나타날 것이다:

sprout1345@sproutpi:~$ resolvectl status
Global
Protocols: -LLMNR -mDNS +DNSOverTLS DNSSEC=yes/supported
resolv.conf mode: stub
Current DNS Server: 1.1.1.1
DNS Servers: 1.1.1.1 1.0.0.1
Fallback DNS Servers: 8.8.8.8 8.8.4.4 9.9.9.9
Link 2 (eth0)
Current Scopes: none
Protocols: -DefaultRoute -LLMNR -mDNS +DNSOverTLS DNSSEC=yes/supported
Link 3 (wlan0)
Current Scopes: DNS
Protocols: +DefaultRoute -LLMNR -mDNS +DNSOverTLS DNSSEC=yes/supported
Current DNS Server: 1.1.1.1
DNS Servers: 1.1.1.1 8.8.8.8
DNS Domain: Davolink
경우에 따라, 재부팅 이후, 뭔가 문제가 생길 수 있는데, 그러면 그냥 다시 원래대로 돌려놓으면 된다.
Netplan을 이용하여 설정
Netplan을 사용하여 DNS를 설정할 수도 있다. 그러나 이 방법을 사용하면, 해당 네트워크 하나에만 설정이 되기 때문에, 전역 설정을 하려면 위의 resolvectl을 이용해야 한다.
아래의 명령을 입력한다.
sudo nano /etc/netplan/50-cloud-init.yaml
위 파일은 netplan 설정 파일로, 이전에 라즈베리 파이의 네트워크 설정을 변경할 때 사용했던 그 파일이다.
아래와 같은 형태로, 설정을 변경한다:
network:
ethernets:
eth0:
dhcp4: no
addresses:
- 192.168.1.100/24
gateway4: 192.168.1.1
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
version: 2
nameservers와 addresses 항목을 추가하면 된다.
이후 다음의 명령을 입력하여 설정을 적용한다:
sudo netplan apply
이미 설명하였듯, 이 설정은 해당 네트워크에만 설정되므로, 복수의 설정을 위해서는 각각 일일히 설정하거나, 위의 resolvectl을 이용해야 한다.
'컴퓨터 > Linux' 카테고리의 다른 글
| Snap 삭제하기 (0) | 2026.04.01 |
|---|---|
| Screen (0) | 2026.01.01 |
| Ubuntu Pro 무료로 사용하기 (0) | 2025.02.15 |
| Linux Mint에서 APT를 이용하여 패키지 업데이트하기 (2) | 2024.01.01 |
| Linux Mint에서 스왑 파티션을 이용하여 디스크 스왑 사용하기 (1) | 2023.12.16 |
댓글