在Linux上,我可以使用netstat-pntl | grep$PORT或fuser-n tcp$PORT来确定哪个进程(PID)正在侦听指定的tcp端口。如何在Mac OS X上获得相同的信息?
当前回答
2016年1月更新
真的很惊讶没有人建议:
lsof -i :PORT_NUMBER
以获得所需的基本信息。例如,检查端口1337:
lsof -i :1337
其他变化,视情况而定:
sudo lsof -i :1337
lsof -i tcp:1337
您可以很容易地在此基础上提取PID本身。例如:
lsof -t -i :1337
这也(结果上)等同于该命令:
lsof -i :1337 | awk '{ print $2; }' | head -n 2 | grep -v PID
快速说明:
为了完整,因为经常一起使用:
要终止PID:
kill -9 <PID>
# kill -9 60401
或作为一个衬垫:
kill -9 $(lsof -t -i :1337)
其他回答
对于已列出的、已建立的和已关闭的端口
sudo lsof -n -i -P | grep TCP
仅适用于LISTEN端口
sudo lsof -n -i -P | grep LISTEN
对于特定的LISTEN端口,例如:端口80
sudo lsof -n -i -P | grep ':80 (LISTEN)'
或者,如果你只是想要一个简洁的摘要(没有描述服务/应用程序),请使用NETSTAT。好的一面是,不需要sudo
netstat -a -n | grep 'LISTEN '
解释使用的项目:
-n禁止显示主机名
-i表示IPv4和IPv6协议
-P省略端口名
-所有套接字的[over netstat]
-n[over netstat]不解析名称,将网络地址显示为数字
在High Sierra 10.13.3和Mojave 10.14.3上测试最后一个语法netstat也适用于linux
在macOS上,这里有一个简单的方法,可以通过netstat获取监听特定端口的进程ID。此示例查找端口80上提供内容的进程:
查找端口80上运行的服务器
netstat -anv | egrep -w [.]80.*LISTEN
样本输出
tcp4 0 0 *.80 *.* LISTEN 131072 131072 715 0
最后一列的第二个是PID。在上面,它是715。
选项
-a-显示所有端口,包括服务器使用的端口
-n-显示数字,不要查找名称。这使命令更快
-v-verbose输出,以获取进程ID
-w-搜索单词。否则,命令将返回端口8000和8001的信息,而不仅仅是“80”
LISTEN-仅为LISTEN模式下的端口(即服务器)提供信息
我是一个Linux人。在Linux中,使用netstat-ltpn或这些字母的任何组合都非常容易。但在Mac OS X netstat中,grep LISTEN是最人性化的。其他的非常难看,在排除故障时很难记住。
2016年1月更新
真的很惊讶没有人建议:
lsof -i :PORT_NUMBER
以获得所需的基本信息。例如,检查端口1337:
lsof -i :1337
其他变化,视情况而定:
sudo lsof -i :1337
lsof -i tcp:1337
您可以很容易地在此基础上提取PID本身。例如:
lsof -t -i :1337
这也(结果上)等同于该命令:
lsof -i :1337 | awk '{ print $2; }' | head -n 2 | grep -v PID
快速说明:
为了完整,因为经常一起使用:
要终止PID:
kill -9 <PID>
# kill -9 60401
或作为一个衬垫:
kill -9 $(lsof -t -i :1337)
lsof -n -i | awk '{ print $1,$9; }' | sort -u
这显示了谁在做什么。删除-n以查看主机名(速度稍慢)。
推荐文章
- 如何在交互式Python中查看整个命令历史?
- 为什么SCTP不常用/不为人所知
- 在OSX中永久设置PATH环境变量
- 如何停止mysqld
- 如何从远程SSH会话发送数据到本地剪贴板
- SSH端口转发~/。ssh /配置文件?
- 如何复制文件跨计算机使用SSH和MAC OS X终端
- Mac SQLite编辑器
- 在MacOS X上推荐用什么方式安装Node.js、nvm和npm ?
- 如何在Swift中删除视图的所有子视图?
- 如何在Mac OS Lion上从命令行启动MySQL服务器?
- 警告用户/local/mysql/data目录不属于mysql用户
- UDP和TCP比起来快多少?
- 在Mac OS X上使用鼠标聚焦(加上自动提升)
- 我在哪里可以找到Mac OS X Lion的“make”程序?