저는 4~6주마다 Google IP 주소를 분당 10~12회 핑하기 시작하는 Linux 기반 모바일 기기를 가지고 있습니다. 이렇게 증가된 핑은 무작위로 시작하고 끝나는 것처럼 보이며 며칠 동안 지속된 후 정상(즉, 핑 없음)으로 돌아가고 핑 요청은 예외 없이 성공적인 응답을 받는 것 같습니다. 핑은 항상 Google 주소를 사용하는 것처럼 보이지만 요청에 사용되는 IP 주소는 핑 활동이 새로 증가할 때마다 변경됩니다.
내 장치에서 ping을 시작하는 응용 프로그램/프로그램을 찾을 수 있는 방법이 있습니까? 나는 달렸다
grep -r "Google"
다른 IP 주소의 소스로 사용할 일종의 장치 목록이나 데이터베이스를 찾고 싶지만 운이 없습니다. 어떤 조언/피드백/지도라도 주시면 감사하겠습니다.
답변1
ftrace가 커널에 구성되어 있고 루트 액세스 권한이 있다고 가정하면 커널 추적 기능을 사용할 수 있습니다.
bpftrace와 같은 최신 도구를 사용할 수 있지만 임베디드 장치에는 필요한 종속성을 설치하는 데 필요한 공간이 부족한 경우가 많습니다. 이 솔루션은 수년 동안 사용되어 온 ftrace를 사용합니다. 이는 단지 원시 파일을 사용하는 것이며 이러한 단계 중 일부를 자동화할 수 있는 도구가 있습니다.
debugfs가 아직 설치되지 않은 경우 설치합니다.
[ -e /sys/kernel/debug/tracing/README ] || mount -t debugfs debugfs /sys/kernel/debug
추적 비활성화, 기능 추적을 위한 보고 설정, 모니터링할 기능 설정
cd /sys/kernel/debug/tracing
echo 0 > tracing_on
echo function > current_tracer
echo ping_init_sock > set_ftrace_filter
echo sock_sendmsg >> set_ftrace_filter # Optional, omit if ping_init_sock gives results
추적 활성화
echo 1 > tracing_on
ping
이벤트가 발생할 때 까지 기다린 후 trace
파일 내용을 확인하세요.
cat trace
# tracer: function
#
# entries-in-buffer/entries-written: 56/56 #P:1
#
# _-----=> irqs-off
# / _----=> need-resched
# | / _---=> hardirq/softirq
# || / _--=> preempt-depth
# ||| / delay
# TASK-PID CPU# |||| TIMESTAMP FUNCTION
# | | | |||| | |
ping-3085 [000] .... 8035797.349326: ping_init_sock <-inet_create
ping-3085 [000] .... 8035797.349352: ping_init_sock <-inet6_create
ping-3085 [000] .... 8035797.349739: sock_sendmsg <-___sys_sendmsg
ping-3085 [000] .... 8035797.349764: sock_sendmsg <-___sys_sendmsg
ping-3085 [000] .... 8035797.365248: sock_sendmsg <-__sys_sendto
ping-3085 [000] .... 8035797.365486: sock_sendmsg <-__sys_sendto
ping-3085 [000] .... 8035797.379917: sock_sendmsg <-__sys_sendto
ping-3085 [000] .... 8035797.387487: sock_sendmsg <-__sys_sendto
이는 PID 3085가 핑을 보내고 있음을 나타냅니다. 운이 좋다면 ping을 수행하는 프로세스가 계속 실행 중이므로 출력에서 찾을 수 있습니다 ps
. 그렇지 않은 경우 인식 가능한 이름을 사용하는 것이 좋습니다.
둘 다 실패하면 아마도https://github.com/brendangregg/perf-tools/blob/master/deprecated/execsnoop-proc도울 수있다.