是否有一些基本实用程序来打开机器上的特定网络TCP端口?
我需要测试程序在侦听状态下如何处理端口。
是否有一些基本实用程序来打开机器上的特定网络TCP端口?
我需要测试程序在侦听状态下如何处理端口。
Answers:
你有
TCP侦听:http://www.allscoop.com/tcp-listen.php
皮克港(Port Peeker):http : //www.linklogger.com/portpeeker.htm
微软的命令行工具Portqry.exe
看起来该实用程序可以完全满足您的要求,甚至可以显示接收到的数据:http : //www.drk.com.ar/builder.php
它具有GUI,而不仅仅是命令行,对某些用户而言是一个优势。
该netpipes工具龙头与软管一直使我受益匪浅,简化stdin
和stdout
我的节目在网络上使用。
与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 - .
这是Wireshark的完美使用,Wireshark是位于Windows / Linux网络堆栈之间的数据包和协议分析器。
它将允许您查看整个计算机接收的所有TCP / UDP数据包,而不管其端口是什么。您还可以告诉程序仅过滤通过某个端口发送的数据包以进行进一步分析。Wireshark的优势在于,它为每个数据包提供了非常详细的消息-源,目标,端口,MAC地址,数据,日期,校验和等。非常有用(免费!)的工具。
TCP监听是IMHO的最佳答案。我看过并喜欢TCP Builder,但是您需要管理员权限才能运行该应用程序,TCP侦听器不需要它们,并且还需要安装TCP Builder或解压缩并复制一堆文件,而TCP侦听器为1 EXE,仅此而已。
TCP侦听器也不需要管理员权限,当我进行AV扫描时,没有任何内容表明它是恶意的。Builder在Virustotal上有1个AV表示它很糟糕,但事实证明是假阳性(我希望):)
当我让Builder运行无管理员权限时,它无法挂接套接字,而侦听器可以。一旦完成所有测试,就可以删除Listener的1个文件,并且一切都像以前一样。
Netcat会不错,但我找不到适用于2012或更高版本服务器的版本。因此,要完全测试网络防火墙和本地防火墙是否允许特定的TCP端口连接,TCP侦听器似乎是完成此任务的最佳工具。
请享用!
我喜欢Windows上的netcat,但并非总是可以从Internet下载和安装内容。也许您正在设置生产服务器,并且想要在安装(或不安装)任何东西之前测试防火墙规则。
大多数(所有?)Windows服务器都具有JScript.net编译器。您可以编写普通的旧Windows批处理文件,它也是有效的JScript.net程序,即polyglot程序。
tl; dr;
polyglot-listener.bat 1234
以侦听port 1234
。这个想法是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
。它可以独立运行,也可以在服务器上复制,但是无论您遇到任何安全障碍,都可以从多语言批处理文件进行编译。
Sysinternals工具包中的TCPView提供了非常好的概述。