С помощью программы telnet можно подключиться к любому TCP-порту на любом хосте, но есть ли способ прослушивать какой-либо порт на текущем хосте?
т.е.
1) на хосте a: telnet listen 12345
2) на хосте b: telnet host_a 12345
Я не хочу, чтобы какой-либо сервис за стороной прослушивания, просто соединение и все, что было набрано, передавалось в обоих направлениях.
Я знаю, что уже могу выполнить 2), но есть ли способ достичь 1)? Меня интересуют решения как для Windows, так и для Linux.
Обычный инструмент для этого называется netcat
. Он доступен в большинстве дистрибутивов Linux, а в некоторых даже может быть установлен по умолчанию (команда nc
). Есть даже порты для Windows, но почти каждый антивирусный пакет на планете считает его очень подозрительным из-за его использования во вредоносных программах, что затрудняет загрузку и использование.
1) на хосте a: telnet listen 12345
$ ls | nc -l -p 12345
Зависит от версии дистрибутива и netcat, возможно, вам не понадобится -p
вариант.
2) на хосте b: telnet host_a 12345
$ telnet host_a 12345
1159.rar
12030.mp4
123.mp4
124.mp4
129
129.bak
...
Вы ищете программу под названием netcat. Это швейцарский армейский нож сетевых компаний. Вы можете указать ему прослушивать любой произвольный порт, а также многое другое.
Netcat, это то, что вы ищете.
Загрузите Netcat. Швейцарский армейский нож сетевых утилит. http://netcat.sourceforge.net/
Даже лучше чем netcat
является socat
.
Он обеспечивает гораздо больший контроль над параметрами сокетов, а также гораздо больше вариантов того, куда отправлять полученные данные.
Internet Maniac может прослушивать любой порт TCP и UDP в мире Windows