macOS上的netstat命令是一个终端命令,用于显示有关Mac网络通信的详细信息。网络通信包括Mac通过所有端口和所有应用程序与外界进行交流的所有方式。掌握netstat可以帮助您了解计算机之间的连接以及原因。

运行Netstat

默认情况下,netstat命令在Mac上可用。您不需要下载或安装它。

要运行netstat,请在“ 应用程序” >“ 实用程序” >“ 终端”中打开“终端”窗口。类型netstat的,然后按Enter键执行命令。

屏幕上会滚动滚动显示大量隐秘文本。这是正常现象,是预期的。如果您不使用任何可用标志(请参见下文),netstat将报告Mac上所有活动的网络连接。考虑到现代网络设备执行的功能数量,您可以期望列表很长。标准的netstat报告可以运行超过1000行。

过滤netstat的输出对于了解Mac的活动端口上发生的情况至关重要。它的内置标志允许您设置选项,限制netstat的范围和输出。

Netstat标志和选项

要查看netstat的所有可用选项,请在命令提示符下键入man netstat

注:“ Man”是“ manual”的缩写。

句法

要将标志和选项添加到netstat,请使用以下语法:

netstat [-AabdgiLlmnqrRsSvWx] [-c queue] [-f address_family] [-I interface] [-p protocol] [-w wait]

有用的标志

以下是一些最常用的标志:

-a在netstat的输出中包括服务器端口,这些端口不包括在默认输出中。

-g显示与多播连接相关的信息。

-I 接口提供指定接口的数据包数据。可以使用-i标志查看所有可用接口,但是en0通常是默认的传出网络接口。(请注意小写字母。)

-n禁止使用名称标记远程地址。这大大提高了netstat的输出速度,同时只牺牲了有限的信息。

-p 协议列出与特定网络协议关联的流量。完整的协议列表位于/ etc / protocols,但是最重要的协议是udp和tcp。

-r显示路由表,展示了数据包的路由在网络。

-s显示所有协议的网络统计信息,无论它们是否处于活动状态。

-v增加详细程度,特别是通过添加一列来显示与每个打开的端口关联的进程ID(PID)。

Netstat示例

考虑以下示例:

netstat -apv TCP

此命令仅返回Mac上的TCP连接,包括打开的端口和活动的端口。它还使用详细输出,列出与每个连接关联的PID。

netstat -a | grep -i "listen"

netstatgrep的这种组合揭示了开放端口-正在侦听消息的端口。管道字符将一个命令的输出发送到另一命令。在这里,netstat的输出通过管道传递到grep,使您可以在其中搜索关键字“ listen”并找到结果。

通过网络实用程序访问Netstat

您还可以通过Network Utility应用程序访问系统中某些netstat的功能,方法是:系统 >  > CoreServices > 应用程序

单击Netstat选项卡以访问netstat的图形界面。

与通过命令行可用的选项相比,Network Utility中的选项受限制得多。四个单选按钮选择中的每一个都只需运行预设的netstat命令并显示输出。

每个单选按钮的netstat命令如下:

显示路由表信息运行netstat -r

显示运行netstat -s的每个协议的全面网络统计信息

显示多播信息运行netstat -g

显示所有当前运行netstat的套接字连接的状态

用Lsof补充Netstat

netstat的macOS实现未包含用户期望和需要的许多功能。尽管netstat有其用途,但它在macOS上的作用远不如在Windows上有用。不同的命令lsof代替了许多缺少的功能。

Lsof显示当前在任何应用程序中打开的所有文件。您还可以使用它来检查与应用程序关联的打开的端口。运行lsof -i,您将看到所有通过Internet通信的应用程序的列表。在Windows计算机上使用netstat时,这通常是目标。但是,在macOS上完成该任务的唯一有意义的方法不是使用netstat,而是使用lsof

Lsof标志和选项

显示每个打开的文件或互联网连接通常非常繁琐。这就是lsof带有用于限制特定条件下的结果的标志的原因。最重要的是下面。

-i显示所有打开的网络连接以及正在使用该连接的进程的名称。在-i4中添加4,将仅显示IPv4连接。相反,添加6(-i6)将仅显示IPv6连接。

该-i标志也可以扩展到指定的进一步细节。-iTCP或-iUDP将仅返回TCP和UDP连接。-iTCP:25将仅在端口25上返回TCP连接。一系列端口可以用破折号指定-iTCP:25-50。

使用-i@1.2.3.4将仅返回到IPv4地址1.2.3.4的连接。可以以相同的方式指定IPv6地址。@前体也可以以相同的方式用于指定主机名,但是不能同时使用远程IP地址和主机名。

-s通常强制lsof显示文件大小。但是,当与-i标志配对时,-s的工作方式有所不同。相反,它允许用户指定要返回的命令的协议和状态。

-p将lsof限制为特定的进程ID(PID)。可以使用-p 123,456,789等通用设置多个PID。进程ID也可以用^来排除,如123,^ 456所示,它专门排除PID 456。

-P禁用端口号到端口名的转换,从而加快了输出速度。

-n禁止将网络号转换为主机名。与上面的-P一起使用时,它可以显着加快lsof的输出。

- ü 用户只返回被命名为用户所拥有的命令。

lsof示例

这是使用lsof的几种方法。

lsof -nP -iTCP@lsof.itap:513

这个看起来复杂的命令列出了所有主机名为lsof.itap和端口513的TCP连接它还运行lsof而不将名称连接到IP地址和端口,从而使该命令的运行速度明显加快。

lsof -iTCP -sTCP:LISTEN

这将返回状态为LISTEN的每个TCP连接,显示Mac上所有打开的TCP端口。它还列出了与那些打开的端口关联的进程。这是对netstat的重大升级,netstat最多列出PID。

sudo lsof -i -u^$(whoami)

这将返回当前登录用户拥有的所有连接。此命令与其他命令略有不同。

尖号(^)用于求反。插入符号后与文本匹配的所有内容将从结果中删除。通过在lsof命令中运行whoami $()包围,使lsof以文本形式访问其输出,从而获得当前登录用户的名称。使用sudo运行可让您查看不属于您的任务。在不使用sudo的情况下运行此命令将返回一个空列表。

其他网络命令

其他可能需要检查网络的终端联网命令包括arp,ping和ipconfig。更多Mac技巧可到 https://www.macjb.com/ Mac金币了解。

如何在Mac上使用Netstat命令的更多相关文章

  1. 【转】如何在Mac上卸载Java及安装Java

    如何在 Mac 上卸载 Java? 本文适用于: 平台: Macintosh OS X Java 版本: 7.0, 8.0 使用终端卸载 Oracle Java 注:要卸载 Java,必须具有管理员权 ...

  2. 如何在Mac上使用Siri

    在您的iPhone上,要求Siri执行命令很简单.但是,如果在计算机上工作时附近没有iPhone,会发生什么情况?您也可以在Mac上使用Siri.快速简便,使其成为iMac或MacBook的完美伴侣. ...

  3. 如何在Mac上显示和查看隐藏的文件/文件夹

    今天的文章推出的是如何在Mac上显示和查看隐藏的文件/文件夹.出于隐私或安全性考虑,出于多种原因,我们需要在Mac计算机上隐藏某些文件.这些文件或文件夹在默认情况下是为Mac的平稳运行而隐藏的,但是如 ...

  4. 在Mac上配置adb命令

    在Mac上配置adb命令 在Mac OS中使用adb命令时,应进行变量配置,步骤如下: 一.终端中输入 cd ~ 二.输入touch .bash_profile 回车 touch:如果没有,则创建文件 ...

  5. iOS学习——如何在mac上获取开发使用的模拟器的资源以及模拟器中每个应用的应用沙盒

    如题,本文主要研究如何在mac上获取开发使用的模拟器的资源以及模拟器中每个应用的应用沙盒.做过安卓开发的小伙伴肯定很方便就能像打开资源管理器一样查看我们写到手机本地或应用中的各种资源,但是在iOS开发 ...

  6. 如何在 Mac 上通过 Boot Camp 安装 Windows?

    如何在 Mac 上通过 Boot Camp 安装 Windows? The following contents are chosen from the apple website, thanks f ...

  7. 如何在Mac上识别和删除损坏的字体

    字体看起来像无害的文件,而且大多数时候都是这样.但是,就像任何计算机文件一样,字体可能会损坏或损坏.发生这种情况时,它们可能会导致文档或应用程序出现问题.在Mac上使用“ 字体簿”来验证已安装的字体, ...

  8. 利用Mac的功能键|如何在Mac上使用F键

    Mac键盘的顶部是一组按键,这些按键的特征是F后跟1-12数字.这些键称为Mac功能键,使您可以通过按几个键来更改某些设置并快速访问Mac功能. 如果您是Mac的所有者,是时候学习这些键各自可以做什么 ...

  9. mac上使用sips命令快速裁剪、旋转、翻转图片

    mac上使用sips命令快速裁剪.旋转.翻转图片 日常开发工作中,经常碰到要对图片进行一些简单的处理,不需要动用PS,在mac上就有一个很好的命令行工具:sips 这里我们不具体展开讲,仅贴出几个常用 ...

随机推荐

  1. AI Boot Camp 分享之 ML.NET 机器学习指南

    今天在中国七城联动,全球134场的AI BootCamp胜利落幕,广州由卢建晖老师组织,我参与分享了一个主题<ML.NET 机器学习指南和Azure Kinect .NET SDK概要>, ...

  2. Kinect-v2 Examples with MS-SDK(译文二)

    K2-asset提供的脚本组件 K2-asset在KinectScripts文件夹中提供通用脚本组件,并在KinectDemos / 文件夹的相应脚本子文件夹中提供特定于演示的组件.可以在自己的Uni ...

  3. Dubbo加权轮询负载均衡的源码和Bug,了解一下?

    本文是对于Dubbo负载均衡策略之一的加权随机算法的详细分析.从2.6.4版本聊起,该版本在某些情况下存在着比较严重的性能问题.由问题入手,层层深入,了解该算法在Dubbo中的演变过程,读懂它的前世今 ...

  4. 【大厂】389- 解密国内BAT等大厂前端技术体系-阿里篇(长文建议收藏)

    进入2019年,大前端技术生态似乎进入到了一个相对稳定的环境,React在2013年发布至今已经6年时间了,Vue 1.0在2015年发布,至今也有4年时间了. 整个业界在前端框架不断迭代中,也寻找到 ...

  5. 【Mock MVC】使用学习

    [Mock MVC]使用学习 转载:https://www.cnblogs.com/yangchongxing/p/10658311.html

  6. 1篇文章搞清楚8种JVM内存溢出(OOM)的原因和解决方法

    前言 撸Java的同学,多多少少会碰到内存溢出(OOM)的场景,但造成OOM的原因却是多种多样. 堆溢出 这种场景最为常见,报错信息: java.lang.OutOfMemoryError: Java ...

  7. 初探three.js几何体

    今天说说three.js的几何体,常见的几何体今天就不说了,今天说一说如何画直线,圆弧线,以及高级几何体. 1. 画一条直线 画直线我们使用THREE.Geometry()对象. //给空白几何体添加 ...

  8. Appium移动端自动化测试--控件定位方法

    常用定位手段 id Accessibility ID XPath 控件基础知识 DOM: Document Object Model文档对象模型 DOM应用:最早应用于HTML和Javascript的 ...

  9. 关于爬取babycenter.com A-Z为顺序的所有英文名及其详细属性

     这一次爬取的内容已经在标题里提到了,下面是详细要求及其图示: 1.首先以A-Z的顺序获取所有英文名,最后爬取该英文名的详细信息. 2.CSV的header以3中的单词为准,请别拼错.如果没有对应的数 ...

  10. OpenSSL 自述

    1995 年, Eric A. Young 和 Tim J. Hudson 发明了 SSLeay,它是 SSL(Open-source Secure Sockets) 协议的实现.1998 年,You ...