Netstat查看端口状态,netstat命令详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Netstat查看端口状态,netstat命令详解相关的知识,希望对你有一定的参考价值。

参考技术A

概述
netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。

Netstat查看端口状态
1、点击左下角的【开始】,找到运行,或是直接快捷键【win+R】打开运行窗口

2、在运行窗口输入cmd,然后点击【确定】,这时就会进入MSDOS界面,我们将在此界面查看我们需要查看的端口状态。

3、进到命令行,输入【netstat -t】加上-t参数,显示当前所有连接卸载情况状态;
输入【netstat -a】,显示所有【连接】和【侦听】端口。

4、输入【netstat --help】命令,enter回车,即可显示所有端口的状态说明。
这时,我们就完成了端口状态的查看。

-a 显示所有连接和侦听端口。
-b 显示在创建每个连接或侦听端口时涉及的
可执行程序。在某些情况下,已知可执行程序承载
多个独立的组件,这些情况下,
显示创建连接或侦听端口时
涉及的组件序列。在此情况下,可执行程序的
名称位于底部 [] 中,它调用的组件位于顶部,
直至达到 TCP/IP。注意,此选项
可能很耗时,并且在你没有足够
权限时可能失败。
-e 显示以太网统计信息。此选项可以与 -s 选项
结合使用。
-f 显示外部地址的完全限定
域名(FQDN)。
-n 以数字形式显示地址和端口号。
-o 显示拥有的与每个连接关联的进程 ID。
-p proto 显示 proto 指定的协议的连接;proto
可以是下列任何一个: TCP、UDP、TCPv6 或 UDPv6。如果与 -s
选项一起用来显示每个协议的统计信息,proto 可以是下列任何一个:
IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 或 UDPv6。
-q 显示所有连接、侦听端口和绑定的
非侦听 TCP 端口。绑定的非侦听端口
不一定与活动连接相关联。
-r 显示路由表。
-s 显示每个协议的统计信息。默认情况下,
显示 IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6 的统计信息;
-p 选项可用于指定默认的子网。
-t 显示当前连接卸载状态。
-x 显示 NetworkDirect 连接、侦听器和共享
终结点。
-y 显示所有连接的 TCP 连接模板。
无法与其他选项结合使用。
interval 重新显示选定的统计信息,各个显示间暂停的
间隔秒数。按 CTRL+C 停止重新显示
统计信息。如果省略,则 netstat 将打印当前的
配置信息一次。

以上便是netstat命令查看端口状态的详细介绍,希望可以帮助到你~

用于查看特定端口的命令行

【中文标题】用于查看特定端口的命令行【英文标题】:Command line for looking at specific port 【发布时间】:2012-08-14 04:30:26 【问题描述】:

有没有办法从 Windows 命令行检查特定端口的状态?我知道我可以使用 netstat 检查所有端口,但 netstat 很慢,而且查看特定端口可能不是。

【问题讨论】:

netstat 只有在不使用 -n 开关时才会慢,这意味着它必须进行大量 DNS 查找。 【参考方案1】:

它将为您提供特定 IP 上的所有活动套接字:

netstat -an | find "172.20.1.166"

【讨论】:

【参考方案2】:

在 RHEL 7 中,我使用此命令过滤处于 LISTEN 状态的几个端口:

sudo netstat -tulpn | grep LISTEN | egrep '(8080 |8082 |8083 | etc )'

【讨论】:

【参考方案3】:

这对你有帮助

netstat -atn | grep <port no>          # For tcp
netstat -aun | grep <port no>           # For udp
netstat -atun | grep <port no>          # For both

【讨论】:

【参考方案4】:

这是寻找端口的简单解决方案...

在cmd中:

netstat -na | find "8080"

在 bash 中:

netstat -na | grep "8080"

在 PowerShell 中:

netstat -na | Select-String "8080"

【讨论】:

这个命令怎么用?我想知道这个端口号是否有效链接:- [链接]( https://.localhost:9043/ibm/console/login.do) 另外值得一提的是-o标志(即-nao这里)包括使用端口的进程的PID。【参考方案5】:
netstat -a -n | find /c "10.240.199.9:8080"

它将为您提供特定 IP 和端口(服务器端口号)上活动的套接字数量

【讨论】:

这不适用于 windows 2012 R2 上的 windows power shell,收到的结果为 FIND: Parameter format not correct【参考方案6】:

对于 80 端口,命令为:netstat -an |找到“80” 对于端口 n,命令为:netstat -an |找到“n”

这里,netstat 是你机器的指令

-a : 显示所有连接和监听端口 -n :以数字格式显示所有地址和指令(这是必需的,因为 -a 的输出可以包含机器名称)

然后,一个查找命令来“模式匹配”前一个命令的输出。

【讨论】:

【参考方案7】:

我用:

netstat –aon | find "<port number>"

这里的o代表进程ID。 现在您可以对进程 ID 进行任何操作。 要终止进程,例如,使用:

taskkill /F /pid <process ID>

【讨论】:

【参考方案8】:

改进@EndUzr's response:

要查找外部端口(IPv4 或 IPv6),您可以使用:

netstat -an | findstr /r /c:":N [^:]*$"

要查找本地端口(IPv4 或 IPv6),您可以使用:

netstat -an | findstr /r /c:":N *[^ ]*:[^ ]* "

其中 N 是您感兴趣的端口号。“/r”开关告诉它以正则表达式处理它。 "/c" 开关允许 findstr 在搜索字符串中包含空格,而不是将空格视为搜索字符串分隔符。这个增加的空间可以防止更长的端口被滥用 - 例如,“:80”与“:8080”以及其他端口转换问题。

列出到本地 RDP 服务器的远程连接,例如:

netstat -an | findstr /r /c:":3389 *[^ ]*:[^ ]*"

或者查看谁在访问您的 DNS:

netstat -an | findstr /r /c:":53 *[^ ]*:[^ ]*"

如果您想排除仅限本地的端口,您可以使用一系列带有“/v”的异常并使用反斜杠转义字符:

netstat -an | findstr /v "0.0.0.0 127.0.0.1 \[::\] \[::1\] \*\:\*" | findstr /r /c:":80 *[^ ]*:[^ ]*"

【讨论】:

【参考方案9】:

使用 lsof 命令“lsof -i tcp:port #”,这里是一个例子。

$ lsof -i tcp:1555 
COMMAND   PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
java    27330 john  121u  IPv4 36028819      0t0  TCP 10.10.10.1:58615->10.10.10.10:livelan (ESTABLISHED)
java    27330 john  201u  IPv4 36018833      0t0  TCP 10.10.10.1:58586->10.10.10.10:livelan (ESTABLISHED)
java    27330 john  264u  IPv4 36020018      0t0  TCP 10.10.10.1:58598->10.10.10.10:livelan (ESTABLISHED)
java    27330 john  312u  IPv4 36058194      0t0  TCP 10.10.10.1:58826->10.10.10.10:livelan (ESTABLISHED)

【讨论】:

减分,因为这不是 Windows 命令。如果它在 Windows 上可用,则没有关于如何获取它的讨论。 不回答 OP 的问题。 -1.【参考方案10】:

对于 Windows 8 用户:打开命令提示符,键入 netstat -an |找到“你的端口号”,输入 .

如果回复类似于LISTENING,那么端口正在使用中,否则它是空闲的。

【讨论】:

【参考方案11】:

如其他地方所述:使用带有适当开关的 netstat,然后使用 find[str] 过滤结果

最基本的:

netstat -an | find ":N"

netstat -a -n | find ":N"

要查找您可以使用的外国端口:

netstat -an | findstr ":N[^:]*$"

要查找您可能使用的本地端口:

netstat -an | findstr ":N.*:[^:]*$"

其中 N 是您感兴趣的端口号。

-n 确保所有端口都是数字的,即不返回为翻译成服务名称。

-a 将确保您搜索所有连接(TCP、UDP、监听...)

find 字符串中,您必须包含冒号作为端口限定符,否则该数字可能与本地或外国地址匹配。

您可以根据需要使用其他 netstat 开关进一步缩小搜索范围...

延伸阅读 (^0^)

netstat /?

find /?

findstr /?

【讨论】:

【参考方案12】:

此命令将显示所有端口及其目标地址:

netstat -f 

【讨论】:

请求是查明一个特定的端口是否正在使用中。【参考方案13】:

当我遇到 WAMP apache 问题时,我使用此代码查找正在使用端口 80 的程序。

netstat -o -n -a | findstr 0.0:80

3068 是 PID,所以我可以从任务管理器中找到它并停止该进程。

【讨论】:

非常好,非常感谢!特别是对于 TCP,我使用以下命令:netstat -o -nap TCP | findstr 0.0:80【参考方案14】:

您可以将netstat-np 标志和findfindstr 命令的管道结合使用。

基本用法如下:

netstat -np <protocol> | find "port #"

例如要检查 TCP 上的 80 端口,您可以这样做:netstat -np TCP | find "80" 最终给出以下类型的输出:

TCP    192.168.0.105:50466    64.34.119.101:80       ESTABLISHED
TCP    192.168.0.105:50496    64.34.119.101:80       ESTABLISHED

如您所见,这仅显示 TCP 协议端口 80 上的连接。

【讨论】:

以上是关于Netstat查看端口状态,netstat命令详解的主要内容,如果未能解决你的问题,请参考以下文章

netstat命令详解

Linux使用netstat查看网络状态

netstat查看端口的不同的状态信息

linux里的netstat -tnl是啥意思?

如何查看端口+如何开启/关闭端口

Linux之netstat命令详解