一、

使用netstat去过滤listen效果不怎么理想。

$ netstat -an|grep -i --color "listen"
tcp6 0 0 ::1.5601 *.* LISTEN
tcp4 0 0 *.5601 *.* LISTEN

二、于是决定使用 lsof 代替 Mac中的 netstat 查看占用端口的程序

众所周知水果系统内核是有 BSD 血统的 Darwin,OS X 自带的很多 CLI 工具也是 BSD style 的,有一部分使用起来和 Linux 无异,有一部分可以通过 brew 安装 GNU 版本(如 tar),但是 OS X 的 netstat 不能查看使用端口的程序名让我一直很不爽,而且也没找到 GNU 版本,于是去搜了一下解决办法,stackoverflow 上的结论基本都是建议使用 lsof 代替 netstat 进行查看:

sudo lsof -nP -iTCP:端口号 -sTCP:LISTEN
  • 另外,还可以通过管道来过滤想要的信息-n 表示不显示主机名
  • -P 表示不显示端口俗称
  • 不加 sudo 只能查看以当前用户运行的程序
基本效果如下:sudo lsof -nP -iTCP -sTCP:LISTEN | grep python

查看当前所有监听的端口以及对应的CommandPID

➜ ~ lsof -nP -iTCP -sTCP:LISTEN
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
SSH\x20Pr 1553 tonydeng 8u IPv4 0xee7327e39355d175 0t0 TCP 127.0.0.1:8087 (LISTEN)
SSH\x20Pr 1553 tonydeng 9u IPv6 0xee7327e38aad6e15 0t0 TCP [::1]:8087 (LISTEN)
java 2978 tonydeng 166u IPv6 0xee7327e38aad7e35 0t0 TCP *:62622 (LISTEN)
node 3319 tonydeng 31u IPv4 0xee7327e39f0f8745 0t0 TCP *:4000 (LISTEN)

查看指定端口对应的CommandPID

➜ ~ lsof -nP -iTCP:4000 -sTCP:LISTEN
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 3319 tonydeng 31u IPv4 0xee7327e39f0f8745 0t0 TCP *:4000 (LISTEN)

PS : 输出占用该端口的 PID

lsof -nP -iTCP:4000 |grep LISTEN|awk '{print $2;}'

参考:http://tonydeng.github.io/2016/07/07/use-lsof-to-replace-netstat/

014_mac下的端口查看的更多相关文章

  1. linux系统下根据端口查看进程

    第一步:lsof -i:端口号 第二步:根据显示的pid号,查询对应应用程序. ps -ef | grep pid (这里的pid是:23466)

  2. 在Linux下用netstat查看网络状态、端口状态

    在Linux下用netstat查看网络状态.端口状态 在linux一般使用netstat 来查看系统端口使用情况步. netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表.实 ...

  3. linux下通过进程名查看其占用端口

    linux下通过进程名查看其占用端口: 1.先查看进程pid ps -ef | grep 进程名 2.通过pid查看占用端口 netstat -nap | grep 进程pid 例:通过nginx进程 ...

  4. 【转】Windows10下80端口被PID为4的System占用导致Apache无法启动的分析与解决方案

    昨天刚更新了Windows10,总体上来说效果还是蛮不错的,然而今天在开启Apache服务器的时候却发现,Apache莫名其妙的打不开了,起初以为是权限的问题,于是使用管理员身份的控制台去调用命令ne ...

  5. CentOS 下做端口映射/端口转发

    CentOS 下做端口映射/端口转发==[实现目标]==================[服务器A]有2块网卡,一块接内网,一块接外网,[服务器B]只有一块内网网卡:访问[服务器A]的7890端口跳转 ...

  6. window、linux安装jdk,excel 导入oracle,WebService,window 端口查看,svn服务安装,oracle用户解锁

    内存泄露分析插件http://download.eclipse.org/mat/1.3/update-site/birt插件http://download.eclipse.org//birt/upda ...

  7. Linux下Tomcat端口、进程以及防火墙设置

     Linux下Tomcat端口.进程以及防火墙设置 1,查看tomcat进程: #ps -aux | grep tomcat(或者ps -ef | grep tomcat都行) 可以看到现在运行着两个 ...

  8. (转)AIX下的MPIO、RDAC、SDDPCM多路径软件操作 (AIX下的MPIO,查看AIX下hdisk与盘柜卷lun的对应关系)

    AIX下的MPIO.RDAC.SDDPCM多路径软件操作 (AIX下的MPIO,查看AIX下hdisk与盘柜卷lun的对应关系) 原文:http://blog.163.com/huangbao_007 ...

  9. Win10下80端口被System占用导致Apache无法启动

    Windows10下80端口被PID为4的System占用导致Apache无法启动的分析与解决方案 方法/步骤     最近更新了Windows10,总体上来说效果还是蛮不错的,然而今天在开启Apac ...

随机推荐

  1. python数据分析Titanic_Survived预测

    import pandas as pd import matplotlib.pyplot as plt # matplotlib画图注释中文需要设置from matplotlib.font_manag ...

  2. ElasticSearch 2 (5) - Document APIs

    ElasticSearch 2.1.1 (5) - Document APIs This section describes the following CRUD APIs: Single docu ...

  3. Software-Defined Networking:A Comprehensive Survey--Day2

    Software-Defined Networking:A Comprehensive Survey (续+1s) IV. SOFTWARE-DEFINED NETWORKS: BOTTOM-UP S ...

  4. [转帖]PG里面的Citus简介----找时间学习一下.

    1. Citus是什么 是PostgreSQL的扩展,可以同PG一同安装,之后通过SQL命令加入到数据库中. [相关操作] ? 1 2 #创建Citus扩展: CREATE EXTENSION cit ...

  5. vue (实战)登录1

    https://segmentfault.com/a/1190000009329619 https://www.jianshu.com/p/c51ffebeceed

  6. Java线程池停止空闲线程是否有规则呢?

    Java线程池中线程的数量超过核心线程的数量,且所有线程空闲,空闲时间超过keepAliveTime,会停止超过核心线程数量的线程,那么会保留哪些线程呢?是不是有规则呢? 测试代码: ThreadPo ...

  7. JSP生成静态Html页面

    [转载]JSP生成静态Html页面 在网站项目中,为了访问速度加快,为了方便百度爬虫抓取网页的内容,需要把jsp的动态页面转为html静态页面.通常有2种常用的方式: 1.伪静态,使用URL Rewr ...

  8. logstash获取日志,时间戳相差8小时

    背景: logstash版本:2.4.9     由于logstash在获取时区的时候,默认获取的是UTC默认时间,同时elasticsearch在创建索引的时候,统一使用UTC时间,因此实际上在创建 ...

  9. 【刷题】BZOJ 2935 [Poi1999]原始生物

    Description 原始生物的遗传密码是一个自然数的序列K=(a1,...,an).原始生物的特征是指在遗传密码中连续出现的数对(l,r),即存在自然数i使得l=ai且r=ai+1.在原始生物的遗 ...

  10. 服务器启动报mybatis配置错误

    启动服务器时后台报了一大堆的错误,仔细检查发现都是冲着mybatis的配置文件去的,事实上配置文件的东西很少,经过反复启动服务器,发现了只要写了where条件就报错,不写就可以正常启动,经过百度发现m ...