如何检查本地主机上我的电脑上是否打开了一组 10,000 个连续端口?
how to check whether a set of 10,000 consecutive ports are open on my pc at localhost?
总而言之,我想要在本地主机上打开 10000 个端口,而且对于我的项目来说,这太连续了,比如 55000 到 65000。我想确保端口集(10,000 个连续端口)是打开的。
在这里我描述了三类端口:-
众所周知的端口是从 0 到 1023 的端口。
注册端口是从 1024 到 49151 的端口
动态 and/or 私有端口是从 49152 到 65535
我想知道一些可以解决我的问题的 cmd 命令。(我正在使用 windows OS)。
我的系统支持 netstat,但我需要一些其他命令或工具来解决我的问题,因为我发现 netstat 非常耗时且需要手动检查。
提前致谢
实际上,Windows 有一个 netstat
,您可以处理它的输出以查找已建立的会话:
C:\pax> netstat -na
Active Connections
Proto Local Address Foreign Address State
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING
TCP 10.6.0.127:54140 143.127.136.95:443 ESTABLISHED
TCP 10.6.0.127:54259 192.168.2.47:32308 ESTABLISHED
TCP 10.6.0.127:54263 192.168.2.47:32308 ESTABLISHED
TCP 10.6.0.127:54274 192.168.2.22:50207 ESTABLISHED
TCP 10.6.0.127:54319 192.168.2.40:5061 ESTABLISHED
但我终于放弃了 cmd.exe
作为脚本语言。
您还可以在 Powershell 中使用 get-nettcpconnection
来获取类似的信息:
PS C:\pax> Get-NetTCPConnection
| format-table -autosize
LocalAddress LocalPort RemoteAddress RemotePort State AppliedSetting
------------ --------- ------------- ---------- ----- --------------
:: 54122 :: 0 Listen
:: 54104 :: 0 Listen
:: 49156 :: 0 Listen
:: 445 :: 0 Listen
:: 135 :: 0 Listen
10.6.0.127 56321 10.4.0.96 445 Established Internet
127.0.0.1 56053 127.0.0.1 8085 TimeWait
127.0.0.1 56052 127.0.0.1 8085 TimeWait
10.6.0.127 56046 192.168.2.13 445 Established Internet
127.0.0.1 56043 127.0.0.1 8085 TimeWait
10.6.0.127 56039 192.168.2.13 49814 Established Internet
10.6.0.127 56038 192.168.2.13 135 TimeWait
10.6.0.127 56035 216.58.220.142 443 Established Internet
: : :
Powershell 方式是首选,至少像我这样的聪明人是这样 :-) 因为它具有过滤和修改数据的所有这些奇妙功能:
PS C:\pax> get-nettcpconnection
| where-object {$_.State -eq 'Established'}
| select-object 'LocalPort'
| sort-object 'LocalPort'
| format-table -autosize
LocalPort
---------
23560
49735
49736
54140
54145
54259
54263
: : :
任何更复杂的处理(如查找 10,000 个连续连接)都可以在 PS1
脚本中完成,类似于过去对 CMD
文件的处理方式。
总而言之,我想要在本地主机上打开 10000 个端口,而且对于我的项目来说,这太连续了,比如 55000 到 65000。我想确保端口集(10,000 个连续端口)是打开的。
在这里我描述了三类端口:-
众所周知的端口是从 0 到 1023 的端口。
注册端口是从 1024 到 49151 的端口
动态 and/or 私有端口是从 49152 到 65535
我想知道一些可以解决我的问题的 cmd 命令。(我正在使用 windows OS)。
我的系统支持 netstat,但我需要一些其他命令或工具来解决我的问题,因为我发现 netstat 非常耗时且需要手动检查。
提前致谢
实际上,Windows 有一个 netstat
,您可以处理它的输出以查找已建立的会话:
C:\pax> netstat -na
Active Connections
Proto Local Address Foreign Address State
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING
TCP 10.6.0.127:54140 143.127.136.95:443 ESTABLISHED
TCP 10.6.0.127:54259 192.168.2.47:32308 ESTABLISHED
TCP 10.6.0.127:54263 192.168.2.47:32308 ESTABLISHED
TCP 10.6.0.127:54274 192.168.2.22:50207 ESTABLISHED
TCP 10.6.0.127:54319 192.168.2.40:5061 ESTABLISHED
但我终于放弃了 cmd.exe
作为脚本语言。
您还可以在 Powershell 中使用 get-nettcpconnection
来获取类似的信息:
PS C:\pax> Get-NetTCPConnection
| format-table -autosize
LocalAddress LocalPort RemoteAddress RemotePort State AppliedSetting
------------ --------- ------------- ---------- ----- --------------
:: 54122 :: 0 Listen
:: 54104 :: 0 Listen
:: 49156 :: 0 Listen
:: 445 :: 0 Listen
:: 135 :: 0 Listen
10.6.0.127 56321 10.4.0.96 445 Established Internet
127.0.0.1 56053 127.0.0.1 8085 TimeWait
127.0.0.1 56052 127.0.0.1 8085 TimeWait
10.6.0.127 56046 192.168.2.13 445 Established Internet
127.0.0.1 56043 127.0.0.1 8085 TimeWait
10.6.0.127 56039 192.168.2.13 49814 Established Internet
10.6.0.127 56038 192.168.2.13 135 TimeWait
10.6.0.127 56035 216.58.220.142 443 Established Internet
: : :
Powershell 方式是首选,至少像我这样的聪明人是这样 :-) 因为它具有过滤和修改数据的所有这些奇妙功能:
PS C:\pax> get-nettcpconnection
| where-object {$_.State -eq 'Established'}
| select-object 'LocalPort'
| sort-object 'LocalPort'
| format-table -autosize
LocalPort
---------
23560
49735
49736
54140
54145
54259
54263
: : :
任何更复杂的处理(如查找 10,000 个连续连接)都可以在 PS1
脚本中完成,类似于过去对 CMD
文件的处理方式。