tcpdump: 항상 숫자 포트 번호 표시

tcpdump: 항상 숫자 포트 번호 표시

-n의 옵션이 tcpdump유용합니다. 때로는 IP 주소를 확인하는 것을 선호하고 때로는 IP 주소를 호스트 이름으로 확인하는 것을 선호합니다.

그러나 나는 포트 번호를 "이름"으로 번역하고 싶지 않습니다.

포트 번호 를 항상 숫자로 표시하려면 어떻게 해야 합니까 53?domain

tcpdump이것이 가능하지 않은 경우 포트 번호가 항상 숫자로 표시되도록 패치하려면 어떻게 해야 합니까 ?

tcpdump 4.9.3-1~deb10u2저는 데비안 10을 사용하고 있습니다.

답변1

-nnLinux와 함께 제공되는 플래그에는 이 플래그가 표시되지 않도록 하는 플래그가 있을 수 있습니다 tcpdump(이 플래그는 이식 가능하지 않습니다 †; Centos Linux Stream에는 4.9.3이 있으며 Debian과 동일하기를 바랍니다) . .22그러나 .ssh이렇게 하면 호스트 이름 조회도 비활성화됩니다. 따라서 아마도 소스 코드 패치를 보고 있을 것입니다.

소스 코드()를 보면 -n플래그가 다양한 목적으로 사용되므로 addrtoname.c가장 쉬운 방법은 아마도 새 플래그를 만들고 처리가 일어나는 tcpdump.cgetopt과 다른 곳(구조체가 있지만 아마도 원한다면 전역적으로 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인지 몰랐습니다. 잘 안 됐어요.

관련 정보