打开TCP端口以监听状态的实用程序


24

是否有一些基本实用程序来打开机器上的特定网络TCP端口?

我需要测试程序在侦听状态下如何处理端口。


占用您的意思是让特定的TCP端口处于监听状态吗?
Diogo'3

1
这个问题没有道理。默认情况下,没有任何监听时,端口是“关闭的”。
Ingmar Hupp'3

2
这就是我想要的-某个实用程序将在我选择的端口上进行监听,并且什么也不做。
Vic 2012年

Answers:


10

netcat应该做您想要的。让它在您的计算机上侦听并将内容回显到STDOUT:

nc -4 -k -l -v localhost 1026

当您希望它在连接结束时关闭时,请不要使用-k


2
它适用于Windows ???我在这里尝试了此命令,但未被识别。
Diogo'3

4
我打算将其发布为答案!= p您可以在此处下载netcat:joncraton.org/files/nc111nt.zip这是一个非常古老的工具,但是我认为人们未能意识到它的实用性。
cutrightjm 2012年

@Diogo Rocha您知道它是下载的程序,对吗?
cutrightjm 2012年

3
我不知道...如果answear发布链接下载即可,那么...
Diogo 2012年

@DiogoRocha-我删除了到netcat的虚假链接。官方站点位于sourceforge。它几乎是每个包装存储库的一部分,因此我已经连续十年没有从源代码安装它了。
Florenz Kley 2012年

6

你有

TCP侦听:http//www.allscoop.com/tcp-listen.php

皮克港(Port Peeker):http : //www.linklogger.com/portpeeker.htm

微软的命令行工具Portqry.exe


1
TCP监听-漂亮的小GUI程序,无需安装!;-)
hoggar 2015年

1
皮克港,站点不再存在或无法访问(2019年
shawty

在这里,您可以找到InternetArchive的最新快照:web.archive.org/web/20180616055542/http : //www.linklogger.com/… 一些下载链接仍在起作用。
nelson.t.cunha

4

尝试iperf。Windows有一个版本。您可以像一样运行它iperf -s -p 1234,它将在端口1234上侦听。然后可以通过执行以下操作从远程计算机连接到该端口:

telnet 192.168.1.1 1234

iperf -c 192.168.1.1 1234

portqry -n 192.168.1.1 -e 1234

您将需要获取iperf.exeportqry.exe获取最后两个。iPerf并非严格为此任务设计的,但是它对于故障排除连接性,带宽可用性,压力测试链接等非常有用。


2

看起来该实用程序可以完全满足您的要求,甚至可以显示接收到的数据:http : //www.drk.com.ar/builder.php

它具有GUI,而不仅仅是命令行,对某些用户而言是一个优势。


1

netpipes工具龙头软管一直使我受益匪浅,简化stdinstdout我的节目在网络上使用。

netcat类似。

Ubuntu说明:

netpipes软件包使TCP / IP流可在外壳脚本中使用。通过允许程序员跳过与套接字相关的所有繁琐的编程位,而专注于编写过滤器或其他服务,它还可以简化客户端/服务器代码。

EXAMPLES
       This creates a TCP-IP socket on the local machine bound to port 3000.

       example$ faucet 3000 --out --verbose tar -cf - .

       Every  time  some process (from any machine) attempts to connect to port 3000 on this machine the faucet program will fork(2) a process and the child
       will exec(2) a

       tar -cf - .

谢谢,但是我需要用于Windows ...
Vic

甚至不是Cygwin?
马科斯(Marcos)2012年

0

这是Wireshark的完美使用,Wireshark是位于Windows / Linux网络堆栈之间的数据包和协议分析器。

它将允许您查看整个计算机接收的所有TCP / UDP数据包,而不管其端口是什么。您还可以告诉程序仅过滤通过某个端口发送的数据包以进行进一步分析。Wireshark的优势在于,它为每个数据包提供了非常详细的消息-源,目标,端口,MAC地址,数据,日期,校验和等。非常有用(免费!)的工具。


6
让我感到幽默-自从什么时候Wireshark实际上表现得像在端口上侦听的服务?它被动地记录流量。
Florenz Kley'3

@FlorenzKley,您是对的,这不是...我将他的问题解释为如何查看某个端口上的网络流量,因为OP仅在以下位置运行他的程序的两个副本不是一件容易的事一次在同一端口上(以查看如果另一个程序已经在该端口上侦听该怎么办)?
突破

0

TCP监听是IMHO的最佳答案。我看过并喜欢TCP Builder,但是您需要管理员权限才能运行该应用程序,TCP侦听器不需要它们,并且还需要安装TCP Builder或解压缩并复制一堆文件,而TCP侦听器为1 EXE,仅此而已。

TCP侦听器也不需要管理员权限,当我进行AV扫描时,没有任何内容表明它是恶意的。Builder在Virustotal上有1个AV表示它很糟糕,但事实证明是假阳性(我希望):)

当我让Builder运行无管理员权限时,它无法挂接套接字,而侦听器可以。一旦完成所有测试,就可以删除Listener的1个文件,并且一切都像以前一样。

Netcat会不错,但我找不到适用于2012或更高版本服务器的版本。因此,要完全测试网络防火墙和本地防火墙是否允许特定的TCP端口连接,TCP侦听器似乎是完成此任务的最佳工具。

请享用!


0

您可以使用netcat的Windows版本

nc -l -v localhost -p 7

注意:某些恶意软件或防火墙安全软件可能将此文件标记为病毒。由于该程序可以执行的操作,它可能已包含在恶意软件程序中,但它本身并不是恶意软件,从2017年10月4日开始,此文件被VirusTotal扫描为干净文件(仅由一个扫描程序标记为“风险软件”)。请参阅有关URL社区说明文件扫描本身
Mokubai

0

我喜欢Windows上的netcat,但并非总是可以从Internet下载和安装内容。也许您正在设置生产服务器,并且想要在安装(或不安装)任何东西之前测试防火墙规则。

大多数(所有?)Windows服务器都具有JScript.net编译器。您可以编写普通的旧Windows批处理文件,它也是有效的JScript.net程序,即polyglot程序

tl; dr;

这个想法是jsc.exe在您的系统上找到可执行文件:

for /f "tokens=* delims=" %%v in ('dir /b /s /a:-d /o:-n "%SystemRoot%\Microsoft.NET\Framework\*jsc.exe"') do (
   set "jsc=%%v"
)

并使用它来编译批处理文件。

"!jsc!" /nologo /out:"%APPDATA%\listener.exe" "%~dpsfnx0"

批处理文件包含基本的JScript.Net代码,该代码创建一个同步套接字,侦听它,接受连接并删除它所涉及的所有内容:

listener.Bind(localEndPoint);  
listener.Listen(10);  

// Start listening for connections.  
while (true) {  
    var data:byte[] = new byte[1024];

    Console.WriteLine("Waiting for a TCP connection on {0}:{1}...", ipAddress, port);  
    var handler = listener.Accept();  

    Console.WriteLine("Connected to {0}", handler.RemoteEndPoint);  

    try {
        // An incoming connection needs to be processed.  
        while (handler.Receive(data) > 0);  
    } finally {
        Console.WriteLine("Disconected\n");
    }

    handler.Shutdown(SocketShutdown.Both);  
    handler.Close();  
}

编译后的程序将另存为%APPDATA%\listener.exe。它可以独立运行,也可以在服务器上复制,但是无论您遇到任何安全障碍,都可以从多语言批处理文件进行编译。


-2

Sysinternals工具包中的TCPView提供了非常好的概述。


此工具是否允许在正在运行的计算机上打开TCP端口?
皮条客果汁IT

我不知道那..顾名思义,这只是一个观点
PatrikMihalčin17年

但是问题是/是:“是否有一些基本实用程序来打开机器上的特定网络TCP端口?”。在TCPView中,您可以关闭连接,但这是系统中唯一可以更改的事情。
Peter Mortensen
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.