我正在寻找类似的东西:
tcpdump -p PID # But tcpdump does not know the PID
或者
lsof -i --continuous # But lsof just runs and exits, no «live logging»
记录应用程序打开了哪些连接。
就我而言,我想找出 git 在提交时连接到哪个端口。这发生在几分之一秒内,所以我不能使用 lsof。如果流量很大,按 PID 或进程名称进行过滤会很有用。
答案1
您可以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
答案2
就我而言,我想找出 git 在提交时连接到哪个端口。
为什么不:
$ git config --get remote.origin.url
默认端口为:
git://
- 9418git+ssh://
- 22http://
- 80- ...
否则,git 会在提交时让你知道它连接到哪个端口:
$ git config --get remote.origin.url
git+ssh://[email protected]:1234/project/repo.git