Escribir mensajes de texto entre Unix y Windows

10

¿Es posible enviar mensajes de texto entre dos usuarios de la misma LAN, pero el primero ejecuta Windows con cmd y el segundo ejecuta Linux / Unix?

No estoy buscando un servicio de mensajería instantánea. Me gustaría escribir en el shell de Linux algo así como

write user@192.168.x.x:port message

para que el usuario de Windows pueda leer en su ventana cmd el texto message; entonces el usuario de Windows debería poder responder con otro comando. ¿Es posible?

He leído sobre el msgcomando de Windows pero no funciona en todas las versiones del sistema operativo. ¿Hay algo mas?

En lugar de PuTTY, me gustaría usar el shell de Linux y el cmd de Windows.

BowPark
fuente
Es una especie de servicio de mensajería instantánea, aunque integrado en el terminal.
Pavel Šimerda

Respuestas:

5

En Unix: nc -l 192.168.1.10 32849

En Windows: telnet 192.168.1.10 32849

Donde 32849 es un puerto arbitrario permitido en las reglas de firewall, y la IP es la IP de escucha de la máquina Unix. nces la utilidad netcat.

projectdp
fuente
¡Gran idea! en windows7 x64 necesitaba instalar la "característica de Windows" del cliente telnet. la idea era hacer pkgmgr /iu:"TelnetClient"pero eso resultó en Operation failed with 0x8007000B An attempt was made to load a program with an incorrect format., después de iniciar sesión que vi You cannot service a running 64-bit operating system with a 32-bit version. Lo tengo trabajando con c:\windows\sysnative\dism.exe /online /norestart /logpath:"c:\foo.txt" /enable-feature /ignorecheck /featurename:"TelnetClient"énfasis en sysnative. Instalado c:\windows\sysnative\telnet.exe.
n611x007
Tuve que usar -pcomo en nc -l 192.168.1.10 -p 32849, gracias a JohnMurhy !
n611x007
Tuve que usar diferentes IP en los dos comandos. (la IP de la otra máquina en cada lado).
n611x007
Probé nuevamente después de estos nuevos comentarios, no necesito el indicador -p con el comando [Free] BSD nc. Obtengo "wolf% sudo nc -l 10.0.0.1 -p 8888 nc: no se puede usar -p y -l ". También omití mencionar que necesita acceso de superusuario para enlazar a puertos arbitrarios. No sé por qué naxa necesita diferentes IP o incluso cómo es posible que eso funcione, no debería funcionar. Esto se debe a que el indicador -l significa que está escuchando localmente en la combinación de IP y puerto * nix. No tiene nada que ver con la IP de la máquina Windows. Telnet está actuando como el cliente en este escenario.
projectdp
3

La idea de projectdp respuesta 's: netcat en Linux sirve telnet en victoria . -pSin embargo, se necesitan y diferentes direcciones IP en las dos máquinas:

  • En Linux: netcat -l 10.0.0.2 -p 14415si su Windows está en 10.0.0.2

  • En Windows: telnet 10.0.0.1 14415si su Linux está en 10.0.0.1

  • Para salir de Telnet, presione ^]que significa Ctrl+ ]y luego escriba q.

  • Para elegir su puerto arbitrario como 14415una mesa práctica está en David Vereb .

Sin embargo, en win7 x64 tuve que habilitar telnet primero, en resumen:

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

  • El problema en el intento original fue que pkgmgrtrató de usar 32 bits dismy se quejó por 64 bits. Tengo la sysnativeidea de Osman Shener .

  • Se instala a c:\windows\sysnative\telnet.exe. Puse c:\windows\sysnativeen la variable de entorno PATH con sysdm.cpl.

  • Si tienes DeVuan o Ubuntu para Linux, sudo apt-get install netcat-traditional

El chat se veía así:

devuan-netcat win7-telnet

n611x007
fuente
Hola naxa, estoy un poco confundido por tu prueba aquí, ¿cómo puedes abrir un socket de escucha en Linux usando la IP del host de Windows? Usted no está escuchando a los hosts de Windows IP, que está escuchando en el hosts Linux IP y el puerto. Cuando utiliza telnet desde el host de Windows, actúa como un cliente que se une a la toma de escucha y la IP de la máquina Linux. Tendré que probarlo con tu método.
projectdp
Naxa, lo intenté y no sé cómo estás conectando con éxito estas dos máquinas. nc debería estar escuchando en la dirección IP local y el puerto local. telnet debe conectarse a la ip remota y al puerto remoto ... ¿puede enumerar la salida de su ipconfig / ifconfig en cada máquina?
projectdp
@projectdp ah, encontré esto de nuevo. Así que al final estoy de acuerdo con usted, ni siquiera debería haber funcionado, pero aparentemente lo hizo y solo le gustó esto. Creo que no respondí porque quería probar esto. Lamentablemente me dejé llevar y ya no tengo las máquinas. Creo que fueron virtualizados, lo que sé que es capaz de causar las anomalías de red más extrañas en general ...
n611x007
1

¿Qué tal NET SEND {name1 | * | /DOMAIN[:name] | /USERS} messageen la máquina de Windows y echo "message" | smbclient -M name2en la caja de Linux? name1 y name2 son los nombres de netbios de las máquinas.

noleti
fuente
por favor aclarar un poco! El comando 'NET SEND' se usa generalmente para pasar mensajes de ganar a ganar usando 'messenger'. ¿Es posible usar en caso de Bash para ganar también?
difractadoD
@diffracteD No tengo una máquina de Windows para probar. Supongo que con "Bash to win", ¿quieres decir de Linux a Windows? Mi segundo ejemplo debería hacer exactamente eso
noleti
0

Hay una herramienta interesante que le permite ejecutar comandos de Windows desde Linux, el nombre es winexe.

Entonces puede enviar un mensaje desde la misma máquina a la consola simplemente escribiendo: winexe -U domain/user%password --interactive=1 //WindowsMachine "msg console \"Your message goes here.\""

Como puede ver, la respuesta de noleti es mucho más simple, pero con winexe también puede abrir un cálculo o lo que quiera en esa máquina. Lo hemos estado utilizando para realizar instalaciones desatendidas en máquinas Windows desde un script por lotes en Linux. Bastante genial y ahorra tiempo ...

YoMismo
fuente