Mengapa systemd-resolved
dari systemd
versi 219 mendengarkan pada satu port UDP acak?
Salah satu mesin saya mendengarkan pada port 58557
(CentOS 7 dengan systemd
versi 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
Mesin lain mendengarkan pada port 52010
(juga CentOS 7 dengan systemd
versi 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
Setelah saya me-reboot mesin, systemd-resolved
mendengarkan di port UDP lain.
Saya memiliki mesin ketiga, yang menjalankan Fedora 27 dengan systemd
versi 234. Di sini, systemd
apakah tidak buka port UDP acak.
Sebagai catatan tambahan, saya telah menonaktifkan LLMNR
, keduanya di /etc/systemd/network/20-eth0.network
dan /etc/systemd/network/20-eth0.network
, jadi ini tidak mungkin. Juga, LLMNR
akan membuka port 5355.
$ grep LLMNR /etc/systemd/resolved.conf
LLMNR=no
$ grep LLMNR /etc/systemd/network/20-eth0.network
LLMNR=no
Jawaban yang Diterima:
Seperti yang saya sebutkan dalam komentar untuk pertanyaan, saya menjalankan systemd-resolved
di strace, saat watch[ing] netstat -tunlp
. Saya perhatikan bahwa port hanya dibuka setelah saya membuat permintaan pertama untuk menyelesaikan nama DNS.
Saya menangkap lalu lintas menggunakan tcpdump -i eth0 -nn -w capture_file
, catat port yang saya lihat di netstat
dan melihat hasilnya menggunakan Wireshark. Filter di Wireshark sederhana:udp.port eq 37078
(menggunakan port udp yang disebutkan sebelumnya).
Saya dapat mengonfirmasi bahwa port UDP yang dibuka oleh systemd-resolved
adalah port yang digunakan untuk berkomunikasi dengan server DNS.