如何在Mac上使用Netstat命令
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"
netstat和grep的这种组合揭示了开放端口-正在侦听消息的端口。管道字符| 将一个命令的输出发送到另一命令。在这里,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命令的更多相关文章
- 【转】如何在Mac上卸载Java及安装Java
如何在 Mac 上卸载 Java? 本文适用于: 平台: Macintosh OS X Java 版本: 7.0, 8.0 使用终端卸载 Oracle Java 注:要卸载 Java,必须具有管理员权 ...
- 如何在Mac上使用Siri
在您的iPhone上,要求Siri执行命令很简单.但是,如果在计算机上工作时附近没有iPhone,会发生什么情况?您也可以在Mac上使用Siri.快速简便,使其成为iMac或MacBook的完美伴侣. ...
- 如何在Mac上显示和查看隐藏的文件/文件夹
今天的文章推出的是如何在Mac上显示和查看隐藏的文件/文件夹.出于隐私或安全性考虑,出于多种原因,我们需要在Mac计算机上隐藏某些文件.这些文件或文件夹在默认情况下是为Mac的平稳运行而隐藏的,但是如 ...
- 在Mac上配置adb命令
在Mac上配置adb命令 在Mac OS中使用adb命令时,应进行变量配置,步骤如下: 一.终端中输入 cd ~ 二.输入touch .bash_profile 回车 touch:如果没有,则创建文件 ...
- iOS学习——如何在mac上获取开发使用的模拟器的资源以及模拟器中每个应用的应用沙盒
如题,本文主要研究如何在mac上获取开发使用的模拟器的资源以及模拟器中每个应用的应用沙盒.做过安卓开发的小伙伴肯定很方便就能像打开资源管理器一样查看我们写到手机本地或应用中的各种资源,但是在iOS开发 ...
- 如何在 Mac 上通过 Boot Camp 安装 Windows?
如何在 Mac 上通过 Boot Camp 安装 Windows? The following contents are chosen from the apple website, thanks f ...
- 如何在Mac上识别和删除损坏的字体
字体看起来像无害的文件,而且大多数时候都是这样.但是,就像任何计算机文件一样,字体可能会损坏或损坏.发生这种情况时,它们可能会导致文档或应用程序出现问题.在Mac上使用“ 字体簿”来验证已安装的字体, ...
- 利用Mac的功能键|如何在Mac上使用F键
Mac键盘的顶部是一组按键,这些按键的特征是F后跟1-12数字.这些键称为Mac功能键,使您可以通过按几个键来更改某些设置并快速访问Mac功能. 如果您是Mac的所有者,是时候学习这些键各自可以做什么 ...
- mac上使用sips命令快速裁剪、旋转、翻转图片
mac上使用sips命令快速裁剪.旋转.翻转图片 日常开发工作中,经常碰到要对图片进行一些简单的处理,不需要动用PS,在mac上就有一个很好的命令行工具:sips 这里我们不具体展开讲,仅贴出几个常用 ...
随机推荐
- JS基础-this
this this的指向有哪几种情况? this代表函数调用相关联的对象,通常页称之为执行上下文. 作为函数直接调用,非严格模式下,this指向window,严格模式下,this指向undefined ...
- Java垃圾回收机制你还不明白?一线大厂面试必问的!
什么是自动垃圾回收? 自动垃圾回收是一种在堆内存中找出哪些对象在被使用,还有哪些对象没被使用,并且将后者删掉的机制. 所谓使用中的对象(已引用对象),指的是程序中有指针指向的对象:而未使用中的对象(未 ...
- 牛客练习赛32B Xor Path (树形dp)
时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 给定一棵n个点的树,每个点有权值.定义表示 ...
- 记mysql条件分支语句CASE WHEN THEN ELSE END的使用
记一次基于mysql数据库查询时条件分支语句使用 表达式格式:CASE column WHEN 条件1 THEN 表达式1 WHEN 条件2 THEN 表达式2 .... ELSE 表达式 END [ ...
- 两个变量值交换的方法总结(js,python)
方法一: 临时变量法 <script> var num1 = 10; var num2 = 20; var temp;//定义临时变量 temp = num1; num1 = num2; ...
- Intent知识详解
Intent知识详解 一.什么是Intent 贴一个官方解释: An intent is an abstract description of an operation to be performed ...
- Openresty快速安装
1. 场景描述 软件老王帮同事初始化服务器,需要安装下Openresty,安装过好多次,但是命令还是记不住,这次又安装记录了下,直接按下面的命令next-next就行了,2-3分钟左右就ok了. 2. ...
- C# 只读模式读取txt文件内容
读取txt文件时,提示异常: 文件“..\Log\all_info.txt”正由另一进程使用,因此该进程无法访问此文件 原因: 日志文件通过lognet生成的日志文件(C#使用log4net记录日志) ...
- ProjectServer2010升级到ProjectServer2016,Sharepoint2010升级到Sharepoint2016第三章
继续上一章,转换了身份认证模式后继续将WSS_Content备份还原到2016数据库服务器上升级,发现还是报错,报错截图如下: 查看日志,提到某些网站集还体验还是2010的,需要升级,可是我明明升级了 ...
- PMBOK 指南 第三章 项目经理的角色
项目经理的角色 3.1 概述 项目经理类似于交响乐团的指挥 成员与角色 在团队中的职责 知识和技能:具备项目管理知识.技术知识.理解和经验. 3.2 定义 项目经理是由执行组织委派,领导团队实现项目目 ...