我正在寻找类似的东西:
tcpdump -p PID # But tcpdump does not know the PID
Run Code Online (Sandbox Code Playgroud)
或者
lsof -i --continuous # But lsof just runs and exits, no «live logging»
Run Code Online (Sandbox Code Playgroud)
记录应用程序打开了哪些连接。
就我而言,我想找出 git 在提交时连接到哪个端口。这会在几分之一秒内发生,因此我无法使用 lsof。如果流量很大,按 PID 或进程名称过滤会很有用。
你可以strace
的过程。
$ strace -e trace=connect git ...
connect(4, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("<your local DNS resolver>")}, 16) = 0
connect(4, {sa_family=AF_INET, sin_port=htons(<PORT>), sin_addr=inet_addr("<GIT SERVER>")}, 16) = 0
Run Code Online (Sandbox Code Playgroud)