![打开 TCP 端口以监听状态的实用程序](https://linux22.com/image/1307292/%E6%89%93%E5%BC%80%20TCP%20%E7%AB%AF%E5%8F%A3%E4%BB%A5%E7%9B%91%E5%90%AC%E7%8A%B6%E6%80%81%E7%9A%84%E5%AE%9E%E7%94%A8%E7%A8%8B%E5%BA%8F.png)
是否有一些基本实用程序可以打开我的机器上的特定网络 TCP 端口?
我需要测试我的程序如何处理处于监听状态的端口。
答案1
答案2
你有
TCP 侦听:http://www.allscoop.com/tcp-listen.php
端口窥视器:http://www.linklogger.com/portpeeker.htm
Microsoft 的命令行实用程序 Portqry.exe
答案3
尝试 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.exe
或portqry.exe
以获得最后两个。iPerf 并不是专门为这项任务而设计的,但它非常适合排除连接故障、带宽可用性、压力测试链接等。
答案4
我喜欢 Windows 上的 netcat,但并不总是可以从互联网上下载和安装东西。也许您正在设置生产服务器,并且想要在安装任何东西之前(或之前)测试防火墙规则。
大多数(所有?)Windows 服务器都有 JScript.net 编译器。您可以在记事本中粘贴这个普通的旧 Windows 批处理文件,它也是一个有效的 JScript.net 程序,多语言程序。
总结;
- 将此要点复制粘贴到名为 polyglot-listener.bat 的文件中在您的服务器上
- 在命令行上输入
polyglot-listener.bat 1234
以监听端口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
。它可以独立运行,也可以复制到任何服务器,但无论存在何种安全障碍,在记事本中复制粘贴并从多语言批处理文件中即时编译它都可以正常工作。