ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

如何在Mac上使用Netstat命令

2019-12-16 09:04:28  阅读:426  来源: 互联网

标签:Netstat netstat 命令 Mac 端口 lsof 连接


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金币欢迎您访问。

标签:Netstat,netstat,命令,Mac,端口,lsof,连接
来源: https://www.cnblogs.com/yong001/p/12047323.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有