Пишите текстовые сообщения между Unix и Windows

10

Можно ли отправлять текстовые сообщения между двумя пользователями одной локальной сети, но первая работает под управлением Windows с cmd, а вторая - под управлением Linux / Unix?

Я не ищу службы мгновенных сообщений. Я хотел бы ввести в оболочке Linux что-то вроде

write user@192.168.x.x:port message

так что пользователь Windows может прочитать в своем окне cmd текст message; тогда пользователь Windows сможет ответить другой командой. Является ли это возможным?

Я читал о команде Windows, msgно она не работает во всех версиях ОС. Что-нибудь еще?

Вместо PuTTY я хотел бы использовать оболочку Linux и Windows cmd.

BowPark
источник
Это является своего рода службы мгновенного обмена сообщениями, хотя интегрированы в терминал.
Павел Шимерда

Ответы:

5

В Unix: nc -l 192.168.1.10 32849

В Windows: telnet 192.168.1.10 32849

Где 32849 - произвольный порт, разрешенный в правилах брандмауэра, а IP - это прослушивающий IP-адрес Unix-машины. ncутилита netcat

projectdp
источник
Отличная идея! на windows7 x64 мне нужно было установить клиент "telnet" для Windows. идея заключалась в том, чтобы сделать, pkgmgr /iu:"TelnetClient"но в результате Operation failed with 0x8007000B An attempt was made to load a program with an incorrect format., после регистрации я увидел You cannot service a running 64-bit operating system with a 32-bit version. Получил работу с c:\windows\sysnative\dism.exe /online /norestart /logpath:"c:\foo.txt" /enable-feature /ignorecheck /featurename:"TelnetClient"акцентом на sysnative. Это установлено c:\windows\sysnative\telnet.exe.
n611x007
Я должен был использовать -pкак в nc -l 192.168.1.10 -p 32849, благодаря JohnMurhy !
n611x007
Мне пришлось использовать разные IP в двух командах. (IP-адрес другой машины с каждой стороны.)
n611x007,
После этих новых комментариев я снова проверил, мне не нужен флаг -p с помощью команды [Free] BSD nc. Я получаю "wolf% sudo nc -l 10.0.0.1 -p 8888 nc: не могу использовать -p и -l ". Я также не упомянул, что вам необходим доступ суперпользователя для привязки к произвольным портам. Я не знаю, почему Naxa нужны разные IP-адреса или даже как это возможно, что это не работает. Это связано с тем, что флаг -l означает, что он прослушивает локально комбинацию IP-адресов и портов * nix. Это не имеет ничего общего с IP-адресом Windows-машины. Telnet действует как клиент в этом сценарии.
projectdp
3

Идея из ответа ProjectDP : Netcat на Linux служит Telnet на победу . Однако необходимо -pи разные IP-адреса на двух компьютерах:

  • В Linux: netcat -l 10.0.0.2 -p 14415- если у вас Windows 10.0.0.2

  • В Windows: telnet 10.0.0.1 14415- если ваш linux на 10.0.0.1

  • Для выхода из телнета нажмите ^]что означает Ctrl+ , ]а затем печатать q.

  • Выбрать свой произвольный порт как 14415удобный столик можно у Дэвида Вереба .

Однако на win7 x64 мне сначала пришлось включить telnet, короче говоря:

  • c:\windows\sysnative\dism.exe /online /norestart /logpath:"c:\foo.txt" /enable-feature /ignorecheck /featurename:"TelnetClient"

  • Проблема в первоначальной попытке заключалась в том, что pkgmgrпытались использовать 32-битные dismи ныли для 64-битных. У меня есть sysnativeидея от Османа Шенера .

  • Устанавливается в c:\windows\sysnative\telnet.exe. Я положил c:\windows\sysnativeв переменную среды PATH с sysdm.cpl.

  • Если у вас есть DeVuan или Ubuntu для Linux, sudo apt-get install netcat-traditional

Чат выглядел так:

devuan-Netcat win7-телнет

n611x007
источник
Здравствуйте, naxa, я немного озадачен вашим тестом, как вы можете открыть сокет прослушивания в linux, используя IP-адрес хоста Windows? Вы не слушаете для окон хостов IP, вы слушаете на Линукс хосты IP и порт. Когда вы используете telnet с хоста Windows, вы действуете как клиент, присоединяющийся к слушающему сокету и IP-адресу компьютера linux. Я должен проверить это с вашим методом.
projectdp
Накса, я пытался, и я не знаю, как вы успешно соединяете эти две машины. nc должен прослушивать локальный IP-адрес и локальный порт. telnet должен подключаться к удаленному ip и удаленному порту ... вы можете перечислить вывод вашего ipconfig / ifconfig на каждой машине?
projectdp
@projectdp ах я снова нашел это. Так что, в конце концов, я согласен с вами, что это не должно было сработать, но, видимо, так и было, и только так. Я думаю, что я не ответил, потому что я хотел проверить через это. К сожалению, я увлекся, и у меня больше нет машин. Я думаю, что они были виртуализированы, что, как я знаю, могло вызвать самые странные сетевые аномалии в целом ...
n611x007
1

Как NET SEND {name1 | * | /DOMAIN[:name] | /USERS} messageна машине с Windows, и echo "message" | smbclient -M name2на коробке с Linux? name1 и name2 являются именами netbios машин.

noleti
источник
пожалуйста, уточните немного! Команда «NET SEND», как правило, используется для передачи сообщений о выигрыше с помощью «messenger». Можно ли использовать в случае Bash, чтобы выиграть также ??
diffracteD
@diffracteD У меня нет машины для тестирования Windows. Я полагаю, с "Bash, чтобы победить", вы имеете в виду от Linux до Windows? Мой второй пример должен сделать именно это
noleti
0

Существует интересный инструмент, который позволяет выполнять команды Windows из Linux, имя таково winexe.

Таким образом, вы можете отправить сообщение с того же компьютера на консоль, набрав: winexe -U domain/user%password --interactive=1 //WindowsMachine "msg console \"Your message goes here.\""

Как вы можете видеть, ответ Нолети намного проще, но с помощью Winexe вы также можете открыть калькулятор или все, что захотите, в этой машине. Мы использовали его для автоматической установки на компьютерах с Windows из пакетного скрипта в Linux. Довольно круто и экономит время ...

YoMismo
источник