pi-hole을 설치하려고 했으나 53번 포트가 사용중이라고 뜬다.
$ sudo netstat -nap | grep LISTEN
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 633/systemd-resolve
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 819/sshd: /usr/sbin
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 835/smbd
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 835/smbd
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1409/nginx: master
tcp6 0 0 :::51413 :::* LISTEN 1233/docker-proxy
tcp6 0 0 :::22 :::* LISTEN 819/sshd: /usr/sbin
tcp6 0 0 :::445 :::* LISTEN 835/smbd
tcp6 0 0 :::8000 :::* LISTEN 1193/docker-proxy
tcp6 0 0 :::9091 :::* LISTEN 1278/docker-proxy
tcp6 0 0 :::9098 :::* LISTEN 1365/grafana-server
tcp6 0 0 :::9099 :::* LISTEN 1397/prometheus
tcp6 0 0 :::139 :::* LISTEN 835/smbd
tcp6 0 0 :::9100 :::* LISTEN 1368/node_exporter
tcp6 0 0 :::9101 :::* LISTEN 1194/docker-proxy
sudo를 붙이면 특정 포트를 어떤 서비스에서 쓰는지 확인할 수 있다
53번 포트를 쓰는 서비스를 설치한 적이 없는데... 왜 그런가 알아보니 systemd-resolved
서비스에서 DNSStubListener
가 53포트를 쓴다고 한다.
53번엔 다른 DNS 서비스를 설치할 것이기 때문에, 끌려고 한다.
먼저 systemd-resolved
서비스를 멈춘다.
$ sudo systemctl stop systemd-resolved
$ sudo vi /etc/systemd/resolved.conf
DNS 서버는 8.8.8.8
로, DNSStubListener
는 no
로 설정하여 꺼준다.
[Resolve]
DNS=8.8.8.8
#FallbackDNS=
#Domains=
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#DNSOverTLS=no
#Cache=yes
DNSStubListener=no
#ReadEtcHosts=yes
링크를 만들어준다.
$ sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
이렇게 하면 53번 포트를 정상적으로 사용할 수 있다.
그런데 sudo
로 명령어를 치면 아래와 같이 에러 메세지가 뜨는데...
$ sudo
sudo: unable to resolve host Home-NAS: Name or service not known
서버의 hostname
을 Home-NAS로 설정해두었다.
기존엔 우분투에서 Home-NAS를 알아서 localhost로 인식해주었지만 지금은 DNSStubListener
를 거치지 않고 바로 8.8.8.8
에 질의하기 때문에 이러한 문제가 생긴 것 같다.
관련 문제를 검색해보니... /etc/hostname
과 /etc/hosts
에 적혀있는 hostname
이 달라서 발생한다고 한다.
# /etc/hostname
Home-NAS
# /etc/hosts
127.0.0.1 localhost
127.0.1.1 Home-NAS
이렇게 수정해주니 오류가 뜨지 않는다.
$ sudo netstat -nap | grep LISTEN
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 798/smbd
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1381/nginx: master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 782/sshd: /usr/sbin
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 798/smbd
tcp6 0 0 :::8000 :::* LISTEN 1174/docker-proxy
tcp6 0 0 :::9091 :::* LISTEN 1247/docker-proxy
tcp6 0 0 :::9098 :::* LISTEN 1380/grafana-server
tcp6 0 0 :::9099 :::* LISTEN 1360/prometheus
tcp6 0 0 :::139 :::* LISTEN 798/smbd
tcp6 0 0 :::9100 :::* LISTEN 1372/node_exporter
tcp6 0 0 :::9101 :::* LISTEN 1194/docker-proxy
tcp6 0 0 :::51413 :::* LISTEN 1196/docker-proxy
tcp6 0 0 :::22 :::* LISTEN 782/sshd: /usr/sbin
tcp6 0 0 :::445 :::* LISTEN 798/smbd
드디어 53번 포트를 쓸 수 있게 되었다.