우분투 환경에서 DNS 네임서버 설정 가이드
도메인 네임 시스템(DNS)은 도메인을 IP 주소로 변환해 주는 필수 인프라입니다.
내부 네임서버를 설정하면 각 서버의 /etc/hosts 파일을 별도 관리할 필요 없이 중앙 집중식으로 DNS 레코드를 관리할 수 있어 네트워크 보안 강화와 관리 효율성을 높일 수 있습니다.
아래 예제에서는 우분투 환경에서 DNS 네임서버 설정을 하는 방법을 단계별로 소개합니다.
선행 조건 및 테스트 환경
- 선행 조건:
- 우분투 환경 (Ubuntu 16.04 LTS 또는 Ubuntu 18.04 LTS)
- 방화벽 설정 및 TCP/UDP 53 포트 개방
- 테스트 환경 예시:
- VMware® Workstation 15 Pro (15.5.2 build-15785246)
- Ubuntu 18.04.4 LTS (Bionic Beaver) Server (64-bit)
- Ubuntu 16.04.6 LTS (Xenial Xerus) Server (64-bit)
Ubuntu 16.04에서 네임서버 설정하기
1.1 /etc/resolv.conf 파일 확인 (name server 조회)
- 우선 시스템의 현재 DNS 설정을 확인합니다.
$ 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
nameserver 10.0.1.2
search localdomain
주의:
/etc/resolv.conf는 시스템 재부팅 시 초기화되므로 조회 용도로만 사용합니다.
1.2 resolvconf 헤드 파일 수정 (name server 설정)
- DNS 변경을 영구적으로 적용하기 위해
/etc/resolvconf/resolv.conf.d/head파일을 수정합니다.
$ sudo vi /etc/resolvconf/resolv.conf.d/head
- 파일 수정 예시:
# 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
nameserver 10.0.1.32
- 여기서
10.0.1.32는 추가할 네임서버 주소입니다.
1.3 resolvconf 서비스 재시작
- 변경된 설정을 반영하기 위해 resolvconf 서비스를 재시작합니다.
$ sudo systemctl restart resolvconf
- 서비스 상태를 확인합니다.
$ sudo systemctl status resolvconf
- 정상적인 경우, 아래와 유사한 결과를 볼 수 있습니다.
● resolvconf.service - Nameserver information manager
Loaded: loaded (/lib/systemd/system/resolvconf.service; enabled; vendor preset: enabled)
Active: active (exited) since Mon 2020-05-11 15:25:52 KST; 8s ago
Docs: man:resolvconf(8)
Process: 2586 ExecStop=/sbin/resolvconf --disable-updates (code=exited, status=0/SUCCESS)
Process: 2602 ExecStart=/sbin/resolvconf --enable-updates (code=exited, status=0/SUCCESS)
Process: 2596 ExecStartPre=/bin/touch /run/resolvconf/postponed-update (code=exited, status=0/SUCCESS)
Process: 2593 ExecStartPre=/bin/mkdir -p /run/resolvconf/interface (code=exited, status=0/SUCCESS)
Main PID: 2602 (code=exited, status=0/SUCCESS)
May 11 15:25:52 rex systemd[1]: Stopped Nameserver information manager.
May 11 15:25:52 rex systemd[1]: Starting Nameserver information manager…
May 11 15:25:52 rex systemd[1]: Started Nameserver information manager.
1.4 설정 결과 확인
- 변경된 네임서버 설정은
/etc/resolv.conf파일에서 확인할 수 있습니다.
$ 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
nameserver 10.0.1.32
nameserver 10.0.1.2
search localdomain
- 위 설정은 우분투 16.04 시스템에 적용된 네임서버 목록을 보여줍니다.

Ubuntu 18.04에서 네임서버 설정하기
- Ubuntu 18.04는 systemd-resolved를 기본 사용하지만, resolvconf 패키지를 설치하여 Ubuntu 16.04 방식의 DNS 설정을 적용할 수 있습니다.
2.1 /etc/resolv.conf 파일 확인 (name server 조회)
- 기본
/etc/resolv.conf파일 내용은 다음과 같습니다.
$ 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 127.0.0.53
search localdomain
options edns0
- 또한, 아래 명령어로 자세한 DNS 상태를 확인할 수 있습니다.
$ sudo systemd-resolve --status
Global
DNSSEC NTA: 10.in-addr.arpa
16.172.in-addr.arpa
168.192.in-addr.arpa
17.172.in-addr.arpa
18.172.in-addr.arpa
19.172.in-addr.arpa
20.172.in-addr.arpa
21.172.in-addr.arpa
22.172.in-addr.arpa
23.172.in-addr.arpa
24.172.in-addr.arpa
25.172.in-addr.arpa
26.172.in-addr.arpa
27.172.in-addr.arpa
28.172.in-addr.arpa
29.172.in-addr.arpa
30.172.in-addr.arpa
31.172.in-addr.arpa
corp
d.f.ip6.arpa
home
internal
intranet
lan
local
private
test
Link 2 (ens33)
Current Scopes: DNS
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
DNS Servers: 10.0.1.2
DNS Domain: localdomain
2.2 resolvconf 패키지 설치
- Ubuntu 18.04에 resolvconf 패키지를 설치합니다.
$ sudo apt install resolvconf -y
- 설치 후, 아래 명령어로 서비스 상태를 확인합니다.
$ sudo systemctl status resolvconf
- 출력 예시:
● resolvconf.service - Nameserver information manager
Loaded: loaded (/lib/systemd/system/resolvconf.service; enabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:resolvconf(8)
2.3 resolvconf 헤드 파일 수정 (name server 설정)
- 변경할 네임서버를
/etc/resolvconf/resolv.conf.d/head파일에 입력합니다.
$ sudo vi /etc/resolvconf/resolv.conf.d/head
- 파일 내용 예시:
# 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 10.0.1.32
2.4 resolvconf 서비스 재시작
- 변경 사항을 적용하기 위해 resolvconf 서비스를 재시작합니다.
$ sudo systemctl restart resolvconf
- 서비스가 재시작되면 아래와 같은 상태를 확인할 수 있습니다.
$ sudo systemctl status resolvconf
- 출력 예시:
● resolvconf.service - Nameserver information manager
Loaded: loaded (/lib/systemd/system/resolvconf.service; enabled; vendor preset: enabled)
Active: active (exited) since Mon 2020-05-11 06:49:25 UTC; 1s ago
Docs: man:resolvconf(8)
Process: 15117 ExecStart=/sbin/resolvconf --enable-updates (code=exited, status=0/SUCCESS)
Process: 15107 ExecStartPre=/bin/touch /run/resolvconf/postponed-update (code=exited, status=0/SUCCESS)
Process: 15105 ExecStartPre=/bin/mkdir -p /run/resolvconf/interface (code=exited, status=0/SUCCESS)
Main PID: 15117 (code=exited, status=0/SUCCESS)
May 11 06:49:25 rex systemd[1]: Starting Nameserver information manager…
May 11 06:49:25 rex systemd[1]: Started Nameserver information manager.
2.5 설정 결과 확인 (설정된 name server 조회)
- 변경된 설정은
/etc/resolv.conf파일에서 다음과 같이 확인할 수 있습니다.
$ 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 10.0.1.32
nameserver 127.0.0.53
search localdomain
options edns0
- 또한,
systemd-resolve --status명령어를 통해 DNS 서버 정보를 확인하면 다음과 같이 출력됩니다.
$ sudo systemd-resolve --status
Global
DNS Servers: 10.0.1.32
DNS Domain: localdomain
DNSSEC NTA: 10.in-addr.arpa
16.172.in-addr.arpa
168.192.in-addr.arpa
17.172.in-addr.arpa
18.172.in-addr.arpa
19.172.in-addr.arpa
20.172.in-addr.arpa
21.172.in-addr.arpa
22.172.in-addr.arpa
23.172.in-addr.arpa
24.172.in-addr.arpa
25.172.in-addr.arpa
26.172.in-addr.arpa
27.172.in-addr.arpa
28.172.in-addr.arpa
29.172.in-addr.arpa
30.172.in-addr.arpa
31.172.in-addr.arpa
corp
d.f.ip6.arpa
home
internal
intranet
lan
local
private
test
Link 2 (ens33)
Current Scopes: DNS
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
DNS Servers: 10.0.1.2
DNS Domain: localdomain

네트워크 명령어를 통한 DNS 확인 방법 (선택사항)
- 네임서버가 정상적으로 설정되었는지 확인하기 위해 아래와 같은 네트워크 명령어를 사용할 수 있습니다. (예시: VM의 DNS 서버 IP가 10.0.1.32인 경우)
nslookup 명령어
$ nslookup ns.rex.local
Server: 10.0.1.32
Address: 10.0.1.32#53
Name: ns.rex.local
Address: 10.0.1.32
$ nslookup www.rex.local
Server: 10.0.1.32
Address: 10.0.1.32#53
Name: www.rex.local
Address: 10.0.1.32
$ nslookup 10.0.1.32
Server: 10.0.1.32
Address: 10.0.1.32#53
32.1.0.10.in-addr.arpa name = ns.rex.local.
32.1.0.10.in-addr.arpa name = www.rex.local.
dig 명령어
$ dig ns.rex.local
; <<>> DiG 9.10.3-P4-Ubuntu <<>> ns.rex.local
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32791
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
...
$ dig www.rex.local
; <<>> DiG 9.10.3-P4-Ubuntu <<>> www.rex.local
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59631
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
...
$ dig -x 10.0.1.32
; <<>> DiG 9.10.3-P4-Ubuntu <<>> -x 10.0.1.32
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18085
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1
...
- nslookup 및 dig 명령어로 내부 DNS 레코드가 올바르게 응답하는지 확인할 수 있습니다.
우분투 환경에서 DNS 네임서버 설정 가이드
- 우분투 환경에서 네임서버(DNS 서버)를 설정하면 내부 도메인 관리를 중앙집중식으로 할 수 있어 네트워크 관리와 보안 강화에 도움이 됩니다.
- 개발자 입장에서는
/etc/hosts파일 수정 없이 내부 도메인 사용이 가능하며, IP 변경에 따른 관리 부담을 덜 수 있는 장점이 있습니다. - 실무에서는 주로 보안을 위해 내부 네임서버를 활용하므로, 기본 개념과 설정 방법을 숙지해두는 것이 좋습니다.
참고 자료
취업, 이직, 퇴사, 커리어 고민으로 힘든가요?
1:1 커리어 상담을 신청하세요.
1분만 투자하세요.
1분으로 1년을 아끼고, 10년의 커리어가 달라져요.
이직·퇴사, 지금 움직여도 될지 헷갈리시나요?
막연히 불안한 건지, 정말 시점이 온 건지 판단이 어려울 때가 있습니다.
5분 체크리스트로 지금 상태를 먼저 정리해보세요.
결론을 대신 내리기보다, 스스로 판단할 기준을 잡는 데 도움을 드립니다.
아직 확신이 없다면, 지금이 ‘고민 단계’인지부터 먼저 점검해보세요