Существует ли какая-либо базовая утилита для открытия определенного сетевого порта TCP на моей машине?
Мне нужно проверить, как моя программа работает с портами в состоянии прослушивания.
Существует ли какая-либо базовая утилита для открытия определенного сетевого порта TCP на моей машине?
Мне нужно проверить, как моя программа работает с портами в состоянии прослушивания.
Ответы:
Netcat должен делать то, что вы хотите. Пусть он послушает на вашей машине и отголоски STDOUT:
nc -4 -k -l -v localhost 1026
когда вы хотите, чтобы он закрылся, когда соединение заканчивается, не используйте -k
У тебя есть
TCP Listen: http://www.allscoop.com/tcp-listen.php
Порт Пикер: http://www.linklogger.com/portpeeker.htm
Утилита командной строки Microsoft Portqry.exe
Попробуй 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 не предназначен для этой задачи, но он отлично подходит для устранения неполадок с подключением, доступности полосы пропускания, ссылок на стресс-тестирование и т. д.
Похоже, эта утилита будет делать именно то, что вы хотите, даже отображая полученные данные, если вам нравится: http://www.drk.com.ar/builder.php
Он имеет графический интерфейс, а не просто командную строку, преимущество для некоторых.
В 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 , анализатора пакетов и протоколов, который находится между сетевым стеком Windows / Linux.
Это позволит вам просматривать все TCP / UDP-пакеты, полученные всей вашей машиной, независимо от порта. Вы также можете указать программе отфильтровывать только пакеты, отправленные через определенный порт, для дальнейшего анализа. Преимущество Wireshark в том, что он предоставляет очень подробные сообщения для каждого пакета - источник, пункт назначения, порт, MAC-адреса, данные, даты, контрольные суммы и т. Д. Очень полезный (и бесплатный!) Инструмент.
TCP Listen - ЛУЧШИЙ ответ ИМХО. Я посмотрел и понравился TCP Builder, но вам нужны права администратора для запуска этого приложения, вам НЕ нужны они с прослушивателем TCP, а также вам нужно установить TCP Builder или разархивировать и скопировать кучу файлов, тогда как TCP Listener равен 1 EXE, не более того.
TCP Listener также не нуждался в правах администратора, и когда я сканировал AV, он ничего не сказал, что он был вредоносным. У Строителя было 1 AV на Virustotal, говорят, что это было плохо, но это оказалось ложноположительным (я надеюсь) :)
Хотя я заставил Builder запускать права администратора, он не мог подключить сокет, в то время как слушатель мог. После того, как я сделал все свои тесты, я мог просто удалить 1 файл Слушателя, и все было как раньше.
Netcat был бы хорош, но я не нашел версию, которая бы работала с 2012 или более поздним сервером. Итак, чтобы полностью проверить, позволяют ли сетевой брандмауэр и локальные брандмауэры подключаться к определенным портам TCP, TCP-приемник кажется лучшим инструментом для этой работы.
Наслаждайтесь!
Вы можете использовать версию Netcat для Windows :
nc -l -v localhost -p 7
Мне нравится netcat в Windows, но загрузка и установка материалов из Интернета не всегда возможны. Возможно, вы настраиваете производственный сервер и хотите проверить правила брандмауэра перед (и без) установкой чего-либо.
Большинство (всех?) Серверов Windows имеют компилятор JScript.net. Вы можете написать простой старый пакетный файл Windows, который также является допустимой программой JScript.net, программой polyglot .
ТЛ; др;
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
. Он может работать сам по себе, копироваться на сервер, но компиляция из пакетного файла полиглота будет работать независимо от каких-либо проблем безопасности на вашем пути.
TCPView из набора инструментов Sysinternals предоставляет очень хороший обзор.