Пишіть текстові повідомлення між Unix та Windows


10

Чи можна надсилати текстові повідомлення між двома користувачами однієї локальної мережі, але перший працює під керуванням Windows з cmd, а другий працює Linux / Unix?

Я не шукаю послуги обміну миттєвими повідомленнями. Я хотів би набрати в оболонку Linux щось подібне

write user@192.168.x.x:port message

щоб користувач Windows міг прочитати у своєму вікні cmd текст message; тоді користувач Windows повинен мати можливість відповісти за допомогою іншої команди. Це можливо?

Я читав про команду Windows, msgале вона працює не у всіх версіях ОС. Є ще щось?

Замість PuTTY я хотів би використовувати оболонку Linux та cmd Windows.


Це є свого роду служби миттєвого обміну повідомленнями, хоча інтегровані в термінал.
Павло Шімерда

Відповіді:


5

У Unix: nc -l 192.168.1.10 32849

У Windows: telnet 192.168.1.10 32849

Де 32849 - довільний порт, дозволений у правилах брандмауера, а IP - IP прослуховування машини Unix. nc- це утиліта netcat.


Чудова ідея! на 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, завдяки ДжонМурхі !
n611x007

Мені довелося використовувати різні IP-адреси в двох командах. (IP-адресу іншої машини з кожного боку.)
n611x007

Я знову перевірив після цих нових коментарів, мені не потрібен прапор -p за допомогою команди [Free] BSD nc. Я отримую "вовк% sudo nc -l 10.0.0.1 -p 8888 nc: не можу використовувати -p та -l ". Я також нехтував зазначенням, що вам потрібен надрукуючий доступ для прив'язки до довільних портів. Я не знаю, чому naxa потрібні різні IP-адреси або навіть, як можливо, що це працює, не повинно працювати. Це тому, що прапор -l означає, що він прослуховує локально на * nix IP-комбінації та комбінації портів. Це не має нічого спільного з IP-адресою машини Windows. У цьому сценарії Telnet виступає клієнтом.
projectdp

3

Ідея з відповіді projectdp : netcat на Linux обслуговує telnet на win . -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

  • Щоб вийти з telnet, натисніть, ^]що означає 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-telnet


Здравствуйте, naxa, я трохи збентежений вашим тестом тут, як ви можете відкрити розетку для прослуховування в Linux за допомогою IP хоста Windows? Ви не слухаєте для вікон хостів IP, ви слухаєте на Лінукс хости IP і порт. Коли ви використовуєте telnet від хоста Windows, ви виступаєте як клієнт, який приєднується до прослуховувального сокету та IP-адреси Linux-машини. Мені доведеться перевірити його своїм методом.
projectdp

Накса, я спробував і не знаю, як ти успішно з'єднуєш ці дві машини. nc має слухати локальну ip-адресу та локальний порт. telnet повинен підключатися до віддаленого ip та віддаленого порту ... чи можете ви перелічити вихід ipconfig / ifconfig на кожній машині?
projectdp

@projectdp ах я знову знайшов це. Отже, врешті-решт я погоджуюся з вами, це навіть не повинно було працювати, але, мабуть, так і було, тільки так. Я думаю, що я не відповів, тому що хотів перевірити це. На жаль, я захопився, і у мене більше немає машин. Я думаю, що вони були віртуалізованими, які, як я знаю, зможуть викликати
найсмішніші

1

Як щодо NET SEND {name1 | * | /DOMAIN[:name] | /USERS} messageWindows-машини та echo "message" | smbclient -M name2на linux box? name1 та name2 - це назви netbios машин.


прошу уточнити трохи! Команда 'NET SEND' звичайно використовується для перемоги, щоб перемогти повідомлення, яке передається за допомогою 'messenger'. Чи можна використовувати у випадку, коли Баш також виграє ??
diffracteD

@diffracteD У мене немає машини для тестування Windows. Я припускаю, що "Bash to win", ви маєте на увазі від Linux до Windows? Мій другий приклад повинен зробити саме це
noleti

0

Є цікавий інструмент, який дозволяє виконувати команди Windows з Linux, назва така winexe.

Таким чином, ви можете надіслати повідомлення з тієї ж машини на консоль, просто набравши: winexe -U domain/user%password --interactive=1 //WindowsMachine "msg console \"Your message goes here.\""

Як ви бачите, відповідь Нолеті набагато простіше, але з winexe ви також можете відкрити кальку або все, що завгодно в цій машині. Ми використовували його для того, щоб робити автоматичні установки на машинах Windows із пакетного сценарію в Linux. Досить класно і економить час ...

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.