ส่งข้อความระหว่าง 2 เครื่อง Ubuntu (สไตล์การส่งสุทธิ)


28

ฉันพยายามหาวิธีส่งข้อความ (เช่นข้อความป๊อปอัป) จากพีซี 1 เครื่องไปยังอีกเครื่องหนึ่ง ทั้งคู่กำลังใช้ Ubuntu ลองใช้วิธี smbclient แล้ว แต่ใช้งานได้ระหว่าง linux PC กับ windows pc เท่านั้น ฉันต้องการวิธีการส่งข้อความจากพีซี Ubuntu ไปยังพีซี Ubuntu อื่น คล้ายกับวิธีการของ Windows Net Send


การแจ้งเตือน - ส่งจะส่งป๊อปอัปขึ้นที่เครื่องของฉัน แต่ฉันต้องการที่จะส่งป๊อปอัพไปยังผู้ใช้รายอื่น (อาจเป็นรายชื่อของผู้ใช้ที่เฉพาะเจาะจง) แต่ไม่มีการใช้ sudo หรือ ssh ฉันมีคำสั่งอื่น ๆ ส่ง "แต่เพื่อส่งข้อความบนเทอร์มินัลผู้ใช้อื่น

คำตอบ:


27

ติดตั้งsshและlibnotify-bin(ผ่านเทอร์มินัล):

sudo apt-get install ssh libnotify-bin

บนคอมพิวเตอร์ทั้งสองเครื่อง

(คุณอาจlibnotify-binติดตั้งไว้แล้วเหมืองของฉันมีอยู่แล้ว)

จากนั้น SSH (ผ่านเทอร์มินัล) ลงในคอมพิวเตอร์อีกเครื่อง:

ssh <user name>@<ip address>

จากนั้นเมื่อคุณเข้าสู่ระบบพิมพ์:

export DISPLAY=:0
notify-send "Title of message" "message text"

มีความสุขส่งข้อความ!
(หรือทำให้กลัว XD)


1
แม้ว่านี่จะเป็นคำตอบที่ฉลาดมาก แต่ฉันก็พยายามหาวิธีส่งโดยไม่ใช้คำสั่ง ssh ด้วยตัวเลือก ssh ฉันรู้แล้วว่ามันใช้งานได้ (โดยใช้ wall เป็นต้น) แต่การแจ้งเตือนการส่งของคุณนั้นฉลาดมาก
Luis Alvarado

1
หลังจากค้นหาหลายวิธีวิธีนี้ดีที่สุด เนื่องจากเหตุผล 2 ข้อ: 1. ssh ให้ความปลอดภัยแก่ฉันมากกว่าการทำสิ่งนี้และ 2 การใช้ DISPLAY อนุญาตให้เลือกวิดีโอที่จะแสดงข้อความ ฉันทดสอบโดยใช้ผู้ใช้ ssh @ ip / โดเมน 'DISPLAY =: 0 การแจ้งเตือน - ส่ง "TITLE" "MESSAGE"'
Luis Alvarado

มันอาจทำงานในสภาพแวดล้อมที่บ้าน แต่ในองค์กรขนาดใหญ่ฉันไม่แน่ใจว่ามันเป็นไปได้ที่จะติดตั้ง SSH บนระบบไคลเอนต์ทุกระบบฉันมีประสบการณ์เหมือนในออฟฟิศของฉันมีประมาณ 100 com ควรมีวิธีอื่นในการส่ง ข้อความที่ไม่มีการติดตั้ง SSh
The_skinny_man

ตรวจสอบคำตอบของฉันเพื่อให้บรรลุนี้โดยไม่ต้อง ssh! :)
แมตต์

31

ฉันอ่านว่าคุณต้องการทำสิ่งนี้โดยไม่ใช้ SSH ฉันเชื่อว่าฉันมีทางออก: netcat[nc] มันมาพร้อมกับ Ubuntu ตามค่าเริ่มต้น

ก่อนอื่นเราต้องมี "daemon" เพื่อให้ทำงานในพื้นหลัง ประการที่สองเราต้องการโปรแกรมที่จะทำให้การแจ้งเตือนปรากฏขึ้น ฉันzenityติดตั้งแล้ว หากคุณไม่ได้โปรดติดตั้งหรือแก้ไขสคริปต์เพื่อใช้สิ่งที่คุณชอบ [อดีตxmessageแต่ที่น่าเกลียด] ถัดไปวางสิ่งนี้ลงใน 'daemon.sh':

#!/bin/bash
port=3333
nc -l $port | while read msg; do zenity --info --text "$msg"; done

ตอนนี้ทำให้มันปฏิบัติการchmod +x daemon.shตอนนี้รันในพื้นหลัง:./daemon.sh &

ตอนนี้คุณทำเสร็จแล้ว! จริง ๆ แล้วคุณต้องทำสิ่งนี้กับคอมพิวเตอร์แต่ละเครื่อง คุณจะต้องเริ่มต้น daemon โดยอัตโนมัติ เปิดแอปพลิเคชัน 'เริ่มต้น' จากเมนูและเพิ่มสคริปต์ของคุณ เมื่อเสร็จแล้วหากต้องการส่งข้อความไปยังคอมพิวเตอร์เครื่องอื่นให้พิมพ์:

nc 192.168.1.X 3333Enterแล้วพิมพ์ข้อความและตีของคุณ แต่ละบรรทัดที่ป้อนจะทำให้ข้อความปรากฏขึ้น อร์ทแคโรไลนาทางออกกด Ctrl + Cหรือ+ Ctrl D

เพียงตรวจสอบให้แน่ใจว่าได้แทนที่ 192.168.1.X ด้วย IP จริงของพีซีเครื่องอื่น [คุณสามารถใช้ifconfigเพื่อค้นหาที่อยู่ IP]

คุณสามารถสร้างสคริปต์อื่นได้เช่นmessage.shกัน ในนั้นให้วาง:

#!/bin/bash
nc 192.168.2.X 3333

chmod +x message.shแล้วก็ จากนั้นคุณสามารถพิมพ์./message.shแล้วพิมพ์ข้อความแล้วป้อนและข้อความของคุณจะถูกส่ง นอกจากนี้เมื่อฉันคิดว่าคุณสามารถเพิ่มการแจ้งเตือนเสียง ฉันอยากจะแนะนำmplayerมันเป็นเครื่องเล่นสื่อ CLI ไม่ควรที่จะเข้าใจยากเกินไป แต่ถ้าคุณมีคำถามใด ๆ โปรดอย่าลังเลที่จะถาม!


1
นี่เป็นทางออกที่เรียบร้อย แต่ฉันชอบ SSH มากกว่าเพราะจุดประสงค์ด้านความปลอดภัย
ohitsanazn

1
มีคนบอกฉันว่าคุณสามารถใช้socatแทน netcat สำหรับการเข้ารหัส SSL ฉันไม่เคยดูมันเลย
แมตต์

3
ว้าว! ทำได้ดีมาก! ฉันเปลี่ยนมันเล็กน้อยเพื่อทำงานกับ alert-osd:nc -l $port | while read msg; do notify-send "$HOSTNAME" "$msg" -i gtk-network; done
Khurshid Alam

หรือด้วยที่อยู่ IP ของตัวเชื่อมต่อระยะไกล:while true; do nc -l -v 3333 2> status | while read msg; do ip=$(cat status | grep -o -P '(?<=from).*(?=port)') && notify-send "$ip" "$msg" -i gtk-network; done ; done
Khurshid Alam

คุณสามารถใช้cryptcatเพื่อทำให้การสื่อสารของคุณเข้ารหัสด้วยรหัสผ่าน มันทำงานเหมือนกับnc
Anonymous Platypus

11

ใช้ncเพื่อส่งข้อความระหว่างคอมพิวเตอร์สองเครื่องบนเครือข่ายเดียวกัน (ไม่มีการเข้ารหัส)

บนคอมพิวเตอร์ที่รับทำ

nc -l 3333

บนคอมพิวเตอร์ที่ส่งทำ

nc 192.168.1.XX 3333

จากนั้นเริ่มพิมพ์และข้อความจะปรากฏขึ้นบนคอมพิวเตอร์เครื่องอื่น (หลังจากที่คุณกด Enter) จนกว่าคุณจะกด ctlr + c


คุณสามารถรับ IPของคอมพิวเตอร์ที่รับด้วยhostname -I(เรียกใช้บนคอมพิวเตอร์ที่รับ)

คุณจะได้ไม่ต้องใช้พอร์ต 3333 ใช้หมายเลขใด ๆ ระหว่าง1025และ65535รวม

โปรดจำไว้ว่านี้ไม่ได้เข้ารหัส คอมพิวเตอร์ทุกเครื่องในเครือข่ายของคุณสามารถเห็นข้อความที่คุณถ่ายโอน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.