Gửi tin nhắn giữa 2 máy tính Ubuntu (Kiểu gửi mạng)


28

Tôi đang cố gắng tìm cách gửi tin nhắn (như tin nhắn bật lên) từ 1 PC sang một PC khác. cả hai đều đang sử dụng Ubuntu. Đã thử cách smbclient nhưng cách này chỉ hoạt động giữa PC linux với PC Windows. Tôi cần một cách để gửi tin nhắn từ một PC Ubuntu đến một PC Ubuntu khác. Tương tự như cách gửi Windows Net.


notify-send gửi một cửa sổ bật lên trên thiết bị đầu cuối của tôi nhưng tôi muốn gửi một cửa sổ bật lên cho những người dùng khác (có thể là một danh sách người dùng cụ thể) nhưng không sử dụng sudo hoặc ssh, tôi có bất kỳ lệnh thay thế nào hoạt động như "notify- gửi "nhưng để gửi tin nhắn trên thiết bị đầu cuối người dùng khác.

Câu trả lời:


27

Cài đặt sshlibnotify-bin(thông qua thiết bị đầu cuối):

sudo apt-get install ssh libnotify-bin

trên cả hai máy tính.

(Bạn có thể đã libnotify-bincài đặt rồi. Tôi đã có nó rồi.)

Sau đó SSH (thông qua thiết bị đầu cuối) vào máy tính khác:

ssh <user name>@<ip address>

Và sau đó khi bạn đăng nhập, gõ:

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

Gửi tin nhắn vui vẻ!
(hoặc sợ hãi XD)


1
Mặc dù đây là một câu trả lời rất thông minh đang cố gắng tìm cách gửi nó mà không cần ssh. Với tùy chọn ssh tôi đã biết nó hoạt động (ví dụ sử dụng tường) nhưng thông báo gửi của bạn rất thông minh.
Luis Alvarado

1
Sau khi tìm kiếm một số phương pháp, phương pháp này là tốt nhất. Vì 2 lý do: 1. ssh mang lại cho tôi một số bảo mật khi thực hiện việc này và 2. Việc sử dụng HIỂN THỊ cho phép chọn video mà thông báo sẽ hiển thị. Tôi đã thử nghiệm bằng ssh user @ ip / domain 'DISPLAY =: 0 thông báo-gửi "TITLE" "MESSAGE"'
Luis Alvarado

Nó có thể hoạt động trong môi trường gia đình, nhưng trong một tổ chức lớn, tôi không chắc có thể cài đặt SSH trên mọi hệ thống máy khách hay không, tôi có kinh nghiệm vì trong văn phòng của tôi có khoảng 100 coms, nên có một cách khác để gửi một tin nhắn không cài đặt SSh
The_ Dany_man

Kiểm tra câu trả lời của tôi để thực hiện điều này mà không cần ssh! :)
Matt

31

Tôi đọc bạn muốn làm điều này mà không cần SSH, tôi tin rằng tôi có một giải pháp: netcat[nc] Nó đi kèm với Ubuntu theo mặc định.

Đầu tiên chúng ta cần một "daemon" để chạy trong nền. Thứ hai, chúng ta cần một chương trình để làm cho cảnh báo bật lên. Tôi đã zenitycài đặt. Nếu bạn không, vui lòng cài đặt nó hoặc chỉnh sửa tập lệnh để sử dụng bất cứ thứ gì bạn thích [ví dụ xmessage, nhưng điều đó thật xấu xí]. Tiếp theo, dán phần này vào 'daemon.sh':

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

Bây giờ, làm cho nó thực thi được chmod +x daemon.sh, bây giờ chạy nó trong nền:./daemon.sh &

Bây giờ bạn đã hoàn tất! Vâng, bạn thực sự cần phải làm điều này trên mỗi máy tính. Bạn cũng sẽ muốn tự động hóa bắt đầu của daemon. Mở các ứng dụng 'khởi động' từ menu và thêm tập lệnh của bạn. Khi đã xong, để gửi tin nhắn đến máy tính khác, nhập:

nc 192.168.1.X 3333sau đó nhập tin nhắn của bạn và nhấn Enter. Mỗi dòng nhập sẽ làm cho một thông báo bật lên. Để thoát nc, nhấn Ctrl + Choặc Ctrl + D.

Chỉ cần đảm bảo thay thế 192.168.1.X bằng IP cục bộ thực sự của PC khác. [Bạn có thể sử dụng ifconfigđể tìm địa chỉ IP]

Bạn cũng có thể tạo một kịch bản khác, nói , message.sh. Trong đó, dán:

#!/bin/bash
nc 192.168.2.X 3333

Sau đó chmod +x message.sh. Sau đó, bạn có thể chỉ cần nhập ./message.shsau đó nhập tin nhắn của bạn, sau đó nhập và tin nhắn của bạn được gửi. Ngoài ra, bây giờ tôi nghĩ về nó, bạn cũng có thể thêm một thông báo âm thanh. Tôi muốn giới thiệu mplayer, đó là một trình phát phương tiện CLI. Không nên quá khó để tìm ra, nhưng nếu bạn có bất kỳ câu hỏi nào, xin đừng ngần ngại hỏi!


1
Đây là một giải pháp gọn gàng, nhưng tôi thích SSH hơn vì mục đích bảo mật.
ohitsanazn

1
Ai đó nói với tôi rằng bạn có thể sử dụng socatthay vì netcat, để mã hóa SSL. Tôi chưa bao giờ nhìn vào nó mặc dù.
Matt

3
Ồ độc đáo thực hiện! Tôi đã thay đổi một chút để làm việc với notify-osd:nc -l $port | while read msg; do notify-send "$HOSTNAME" "$msg" -i gtk-network; done
Khurshid Alam

Hoặc với địa chỉ IP của trình kết nối từ xa: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

Bạn có thể sử dụng cryptcatđể làm cho giao tiếp của bạn được mã hóa bằng mật khẩu. Nó hoạt động giống nhưnc
Thú mỏ vịt vô danh

11

Sử dụng ncđể gửi văn bản giữa hai máy tính trên cùng một mạng (không mã hóa).

Trên máy tính nhận

nc -l 3333

Trên máy tính gửi

nc 192.168.1.XX 3333

sau đó chỉ cần bắt đầu nhập và văn bản sẽ hiển thị trên máy tính khác (sau khi bạn nhấn enter) cho đến khi bạn nhấn ctlr + c.


Bạn có thể lấy IP của máy tính nhận hostname -I(chạy trên máy tính nhận).

Bạn không phải sử dụng cổng 3333, sử dụng bất kỳ số nào trong khoảng từ 1025 đến 65535 .

Hãy nhớ rằng điều này không được mã hóa . Bất kỳ máy tính nào trên mạng của bạn đều có thể xem văn bản bạn đang chuyển.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.