systemd-resolved
버전 219 부터 systemd
시작하는 임의의 UDP 포트를 수신 대기하는 이유는 무엇입니까 ?
내 컴퓨터 중 하나가 포트 58557
(CentOS 7, systemd
버전 219)를 수신합니다.
sudo netstat -tunlp|grep -P '^Active|^Proto|systemd'
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
udp 0 0 0.0.0.0:58557 0.0.0.0:* 372/systemd-resolve
다른 시스템이 포트 52010
( systemd
CentOS 7, 버전 219)를 수신합니다.
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
udp 768 0 0.0.0.0:52010 0.0.0.0:* 398/systemd-resolve
머신을 재부팅하면 systemd-resolved
다른 UDP 포트에서 수신 대기합니다.
systemd
Fedora 27 버전 234를 실행하는 세 번째 컴퓨터가 있습니다 . 여기, systemd
과연아니요임의의 UDP 포트를 엽니다.
참고로 저는 LLMNR
내부와 외부를 모두 비활성화했기 때문에 그럴 수 없습니다. 또한 포트 5355가 열립니다./etc/systemd/network/20-eth0.network
/etc/systemd/network/20-eth0.network
LLMNR
$ grep LLMNR /etc/systemd/resolved.conf
LLMNR=no
$ grep LLMNR /etc/systemd/network/20-eth0.network
LLMNR=no
답변1
질문에 대한 설명에서 언급했듯이 systemd-resolved
strace에서 실행 중이었고 watch[ing] netstat -tunlp
DNS 이름 확인을 처음 요청할 때만 포트가 열려 있다는 것을 알았습니다.
Wireshark를 사용하여 트래픽을 캡처하고 tcpdump -i eth0 -nn -w capture_file
, 본 포트를 기록하고 netstat
, Wireshark를 사용하여 출력을 확인했습니다. Wireshark의 필터는 간단합니다( udp.port eq 37078
앞서 언급한 다운 UDP 포트 사용).
systemd-resolved
열려있는 UDP 포트가 DNS 서버와 통신하는데 사용되는 포트임을 확인할 수 있습니다 .