Cổng nối tiếp sniff trên Linux


Câu trả lời:


27

Có một vài tùy chọn:

  • sersniff là một chương trình đơn giản để tạo đường hầm / đánh hơi giữa 2 cổng nối tiếp.

  • Nối tiếp với Proxy mạng (ser2net) cung cấp cách để người dùng kết nối từ kết nối mạng với cổng nối tiếp.

  • SerialSpy hoạt động như một thiết bị truyền qua nối tiếp. Nó lắng nghe dữ liệu đến trên hai cổng nối tiếp và chuyển tiếp nó để các thiết bị hoạt động như thể chúng được kết nối trực tiếp. Nó cũng ghi lại dữ liệu khi nó di chuyển qua các cổng.

  • sercd là một bộ chuyển hướng cổng nối tiếp tuân thủ RFC 2217. Nó cho phép bạn chia sẻ một cổng nối tiếp thông qua một mạng. Nó dựa trên sredird. Giao thức RFC2217 là một phần mở rộng cho telnet và cho phép thay đổi các tham số cổng giao tiếp.

  • SerLooK là một ứng dụng KDE để kiểm tra dữ liệu đi qua các dòng nối tiếp. Nó có thể hoạt động như một thiết bị đầu cuối nhị phân gửi và nhận dữ liệu thông qua một cổng được xác định (chế độ Điểm tới Điểm) và hiển thị chúng trên các chế độ xem riêng biệt. Mỗi chế độ xem có thể được cấu hình để hiển thị dữ liệu ở dạng thập lục phân, thập phân, bát phân, nhị phân và ASCII thô. Cũng có thể thực hiện I / O thông qua các chế độ xem mô phỏng đầu cuối và xác định cổng phụ và giám sát lưu lượng giữa hai máy chủ bên ngoài bằng cáp "Y" (chế độ Snooper).

  • nullmodem tạo ra một mạng ảo các thiết bị đầu cuối giả. Nó có thể được sử dụng như một bộ chuyển đổi để kết nối hai chương trình thường cần thẻ giao diện nối tiếp.

  • màn hình ttywatch , nhật ký và thiết bị đầu cuối đa kênh I / O. Nó có vòng quay nhật ký đầy đủ được tích hợp và có thể sử dụng telnet cũng như các cổng TTY cục bộ.

  • Sniffer dòng nối tiếp (slsnif) là một tiện ích ghi nhật ký cổng nối tiếp. Nó lắng nghe cổng nối tiếp được chỉ định và ghi lại tất cả dữ liệu đi qua cổng này theo cả hai hướng.


2
Bạn có thể đạt được điều này với các công cụ tiêu chuẩn bằng cách sử dụng socattee. 1) socat -d -d pty,raw,echo=0 pty,raw,echo=0. Đầu ra sẽ cung cấp cho bạn hai cổng ...N PTY is /dev/pts/27... N PTY is /dev/pts/28. 2) sudo cat /dev/ttyS0 | tee /dev/pts/27và trong một thiết bị đầu cuối khác sudo cat /deb/pts/27 | tee /dev/ttyS0. Cuối cùng 3) Kết nối chương trình của bạn với /dev/tty/28. Hai lệnh tee sẽ kết xuất cả hai hướng vào bàn điều khiển và chuyển tiếp đến / từ cổng nối tiếp thực tế. Lưu ý rằng các cài đặt cổng như baudrate phải được cấu hình trước thời hạn.
jtpereyda

Bạn cũng có thể lưu nội dung tee vào một tệp: cat /dev/pts/27 | sudo tee /dev/ttyS0 serial-capsxxdsẽ giúp nếu đó là giao thức nhị phân : cat /dev/pts/27 | sudo tee /dev/ttyS0 serial-caps | xxd.
jtpereyda

@jtpereyda Có vẻ như bước thứ 3 của bạn sẽ được kết nối chương trình với / dev / ttyS0. ví dụ: khi tôi kết nối PUTTY ở đó với / dev / ttyS0, nó sẽ hiển thị chính xác cho tôi rằng đầu ra ở bước 2 trong khi cũng giao tiếp với bảng nhúng thực tế. BTW bạn có một lỗi đánh máy /deb/pts/27nên được /dev/pts/27. Cũng cat /deb/pts/27 | tee /dev/ttyS0nêncat /dev/pts/27 | sudo tee /dev/ttyS0
nhiệt tình vào

Câu trả lời này rất cũ, vui lòng xem xét việc đánh chặn để đánh hơi cổng nối tiếp
CharlesB

1
Bạn có thể cung cấp đó như là một câu trả lời khác. @CharlesB Giải thích tại sao nó tốt hơn cũng sẽ tốt đẹp.
gà con

12

Tôi đã thử đánh chặn ( sao chép tại GitHub ) và đã thành công trong việc sử dụng nó. Đầu tiên tôi chạy nó trên cảng quan tâm:

interceptty /dev/ttyACM0 

Sau đó, tôi đã kết nối chương trình thử nghiệm dưới chương trình với thiết bị đầu cuối giả /dev/pts/5được tạo ra.


Tôi đã thử sử dụng slsnif , nhưng tôi thấy rằng tôi đã gặp lỗi:

Failed to open a pty: No such file or directory

Mục danh sách gửi thư này chỉ ra rằng slsnif chỉ hỗ trợ các thiết bị đầu cuối giả "di sản" ( /dev/ttyp0vv) có thể không được sử dụng trên các nhân Linux hiện tại.


1
Cảm ơn! Lỗi tương tự ở đây trên thiết bị nhúng của tôi. Sau đó, tôi sử dụng intercepttyvà đã làm việc!
gfleck

Làm thế nào để bạn biết thiết bị đầu cuối giả mà nó tạo ra?
chwi

@chwi Bạn có thể cung cấp cho nó một tham số thứ hai, đó là tên của một "thiết bị phía trước" là một liên kết tượng trưng đến thiết bị đầu cuối giả mà nó tạo ra.
Craig McQueen

Cảm ơn bạn. Tôi thấy rằng theo mặc định, nó tạo ra một / dev / intercepttydummy. Tôi đã có thể xem lưu lượng qua lại, nhưng dữ liệu đến từ thiết bị chỉ được đọc bằng cách chặn, không phải phần mềm của tôi chạy pyserial.
chwi

3

Hãy thử sử dụng jpnevulator (debian đóng gói) hoặc slsniff . Lưu ý rằng slsniff sử dụng mô hình mô phỏng thiết bị đầu cuối không dùng nữa.

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.