os x下netstat
不是十分好使,可以显示端口的进程号,但不能显示是具体哪个程序
比如想要显示有哪些端口在Listen
$ netstat -anLv
结果
用lsof
可以看到具体的程序名
$ lsof -ni | grep LISTEN
如果想知道某端口是否在监听, 最好使用telnet
, 因为lsof
对于没有权限的端口返回的结果是空
查看TCP连接
$ lsof -itcp
查看ipv6协议的TCP连接
$ lsof -i6tcp
查看指定端口的连接
$ lsof -i:1080
需要更具体的连接状态就在后面加grep
,我自己一般是用grep -i
,防止因为大小写漏掉数据
有时lsof的时候可能不会显示端口, 比如显示"callbook"(使用ssh时), 这时可以加上-P
参数
lsof -P -itcp:2000
跟踪进程的系统调用
在mac下是用dtruss
命令,对应的linux命令是strace
,使用时需要sudo
dtruss df -h # run and examine "df -h"
dtruss -p 1871 # examine PID 1871
dtruss -n tar # examine all processes called "tar"
dtruss -f test.sh # run test.sh and follow children
mac下的dtrace
命令对应Linux下的ltrace
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。