Утилита для открытия порта TCP для прослушивания состояния

24

Существует ли какая-либо базовая утилита для открытия определенного сетевого порта TCP на моей машине?

Мне нужно проверить, как моя программа работает с портами в состоянии прослушивания.

Vic
источник
Занимаете ли вы о том, чтобы конкретный TCP-порт находился в состоянии ожидания?
Диого
1
Этот вопрос не имеет смысла. Порт по умолчанию «закрыт», когда на нем ничего не прослушивается.
Ингмар Хапп
2
Это то, что я хочу - какая-то утилита, которая будет прослушивать выбранный мной порт и ничего не делать.
Вик

Ответы:

10

Netcat должен делать то, что вы хотите. Пусть он послушает на вашей машине и отголоски STDOUT:

nc -4 -k -l -v localhost 1026

когда вы хотите, чтобы он закрылся, когда соединение заканчивается, не используйте -k

Флоренц Клей
источник
2
Работает на винде ??? Я попробовал эту команду здесь, и она не была распознана.
Диого
4
Я собирался опубликовать это как мой ответ! = p Вы можете скачать netcat здесь: joncraton.org/files/nc111nt.zip Это довольно старый инструмент, но я думаю, что люди не смогли понять, насколько он может быть полезен.
cutrightjm
@Diogo Rocha Вы знаете, что это загруженная программа, правильно?
cutrightjm
3
Я не знал ... Было бы неплохо, если бы ответ опубликовал ссылку для скачивания тогда ...
Diogo
@DiogoRocha - я удалил фиктивную ссылку на netcat. Официальный сайт находится на sourceforge. Это часть почти каждого репозитория упаковки, так что я не устанавливал его из источника уже 10 лет подряд.
Флоренц Клей
6

У тебя есть

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

Порт Пикер: http://www.linklogger.com/portpeeker.htm

Утилита командной строки Microsoft Portqry.exe

nelson.t.cunha
источник
1
TCP listen - симпатичная маленькая программа с графическим интерфейсом без установки! ;-)
hoggar
1
Port Peeker, сайт больше не существует или недоступен (январь 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.exeили portqry.exeза последние два. iPerf не предназначен для этой задачи, но он отлично подходит для устранения неполадок с подключением, доступности полосы пропускания, ссылок на стресс-тестирование и т. д.

reggaethecat
источник
2

Похоже, эта утилита будет делать именно то, что вы хотите, даже отображая полученные данные, если вам нравится: http://www.drk.com.ar/builder.php

Он имеет графический интерфейс, а не просто командную строку, преимущество для некоторых.

Джон
источник
1

В 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 - .
Marcos
источник
Спасибо, но мне это нужно для Windows ...
Vic
Даже не Cygwin?
Маркос
0

Это идеальное применение для Wireshark , анализатора пакетов и протоколов, который находится между сетевым стеком Windows / Linux.

Это позволит вам просматривать все TCP / UDP-пакеты, полученные всей вашей машиной, независимо от порта. Вы также можете указать программе отфильтровывать только пакеты, отправленные через определенный порт, для дальнейшего анализа. Преимущество Wireshark в том, что он предоставляет очень подробные сообщения для каждого пакета - источник, пункт назначения, порт, MAC-адреса, данные, даты, контрольные суммы и т. Д. Очень полезный (и бесплатный!) Инструмент.

Прорвать
источник
6
смешно - с каких это пор Wireshark ведет себя как служба, слушающая порт? Он пассивно записывает трафик.
Флоренц Клей
@FlorenzKley вы правы, это не так ... Я интерпретировал его вопрос как посмотреть сетевой трафик на определенном порте, так как OP не будет тривиально запускать две копии своей программы на один раз на тот же порт (чтобы увидеть, что происходит, если другая программа уже прослушивает порт)?
Прорыв
0

TCP Listen - ЛУЧШИЙ ответ ИМХО. Я посмотрел и понравился TCP Builder, но вам нужны права администратора для запуска этого приложения, вам НЕ нужны они с прослушивателем TCP, а также вам нужно установить TCP Builder или разархивировать и скопировать кучу файлов, тогда как TCP Listener равен 1 EXE, не более того.

TCP Listener также не нуждался в правах администратора, и когда я сканировал AV, он ничего не сказал, что он был вредоносным. У Строителя было 1 AV на Virustotal, говорят, что это было плохо, но это оказалось ложноположительным (я надеюсь) :)

Хотя я заставил Builder запускать права администратора, он не мог подключить сокет, в то время как слушатель мог. После того, как я сделал все свои тесты, я мог просто удалить 1 файл Слушателя, и все было как раньше.

Netcat был бы хорош, но я не нашел версию, которая бы работала с 2012 или более поздним сервером. Итак, чтобы полностью проверить, позволяют ли сетевой брандмауэр и локальные брандмауэры подключаться к определенным портам TCP, TCP-приемник кажется лучшим инструментом для этой работы.

Наслаждайтесь!

Дэвид Ховард
источник
0

Вы можете использовать версию Netcat для Windows :

nc -l -v localhost -p 7
netawater
источник
Примечание. Некоторые вредоносные программы или программы безопасности брандмауэра могут пометить этот файл как вирус. Из-за того, что эта программа может делать, она, возможно, была включена в вредоносные программы, но сама по себе она не является вредоносной программой, и по состоянию на 2017-10-04 этот файл сканируется как чистый VirusTotal (помеченный как «опасная программа» только одним сканером). См. Примечание сообщества по URL-адресу и саму проверку файлов
Mokubai
0

Мне нравится netcat в Windows, но загрузка и установка материалов из Интернета не всегда возможны. Возможно, вы настраиваете производственный сервер и хотите проверить правила брандмауэра перед (и без) установкой чего-либо.

Большинство (всех?) Серверов Windows имеют компилятор JScript.net. Вы можете написать простой старый пакетный файл Windows, который также является допустимой программой JScript.net, программой polyglot .

ТЛ; др;

Идея состоит в том, чтобы найти 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. Он может работать сам по себе, копироваться на сервер, но компиляция из пакетного файла полиглота будет работать независимо от каких-либо проблем безопасности на вашем пути.

ixe013
источник
-2

TCPView из набора инструментов Sysinternals предоставляет очень хороший обзор.

Патрик Михальчин
источник
Позволяет ли этот инструмент открывать порт TCP на машине, на которой он работает?
Сок Pimp IT
Я не знаю об этом .. это просто вид, как следует из названия
Патрик Михальчин
Но вопрос был / был: «Есть ли какая-нибудь базовая утилита для открытия определенного сетевого порта TCP на моей машине?». В TCPView вы можете закрыть соединение, но это единственное, что можно изменить в системе.
Питер Мортенсен