-n
의 옵션이 tcpdump
유용합니다. 때로는 IP 주소를 확인하는 것을 선호하고 때로는 IP 주소를 호스트 이름으로 확인하는 것을 선호합니다.
그러나 나는 포트 번호를 "이름"으로 번역하고 싶지 않습니다.
포트 번호 를 항상 숫자로 표시하려면 어떻게 해야 합니까 53
?domain
tcpdump
이것이 가능하지 않은 경우 포트 번호가 항상 숫자로 표시되도록 패치하려면 어떻게 해야 합니까 ?
tcpdump 4.9.3-1~deb10u2
저는 데비안 10을 사용하고 있습니다.
답변1
-nn
Linux와 함께 제공되는 플래그에는 이 플래그가 표시되지 않도록 하는 플래그가 있을 수 있습니다 tcpdump
(이 플래그는 이식 가능하지 않습니다 †; Centos Linux Stream에는 4.9.3이 있으며 Debian과 동일하기를 바랍니다) . .22
그러나 .ssh
이렇게 하면 호스트 이름 조회도 비활성화됩니다. 따라서 아마도 소스 코드 패치를 보고 있을 것입니다.
소스 코드()를 보면 -n
플래그가 다양한 목적으로 사용되므로 addrtoname.c
가장 쉬운 방법은 아마도 새 플래그를 만들고 처리가 일어나는 tcpdump.c
곳 getopt
과 다른 곳(구조체가 있지만 아마도 원한다면 전역적으로 kruger를 수행하고 int Flag_Myflag;
사용자 정의 플래그가 존재할 때 발생하지 않도록 포트 변환을 수정하십시오( 원하는 것에 따라 또는 무엇이든 addrtoname.c
결합하는 방법이 많이 있습니다). ).-n
-nn
if (Flag_Myflag) {
(void)snprintf(buf, sizeof(buf), "%d", port);
table->name = strdup(buf);
} else
table->name = strdup(sv->s_name);
단점: 이제 사용자 정의 보안 취약점 등을 수동으로 업데이트하고 패치할 수 있으며 tcpdump
이는 위험합니다.
† 한 동료가 나에게 Linux 로고를 입력하라고 시도한 적이 있습니다 tcpdump
. 그들은 내 데스크톱이 OpenBSD인지 몰랐습니다. 잘 안 됐어요.