Linux에서 스 니프 직렬 포트


답변:


27

몇 가지 옵션이 있습니다.

  • sersniff 는 2 개의 직렬 포트 사이를 터널링 / 스니핑하는 간단한 프로그램입니다.

  • 직렬 대 네트워크 프록시 (ser2net) 는 사용자가 네트워크 연결에서 직렬 포트로 연결하는 방법을 제공합니다.

  • SerialSpy 는 직렬 통과 장치 역할을합니다. 두 개의 직렬 포트에서 들어오는 데이터를 수신하고 전달하여 장치가 마치 직접 연결된 것처럼 작동하도록합니다. 또한 포트를 통해 이동할 때 데이터를 기록합니다.

  • sercd 는 RFC 2217 호환 직렬 포트 리디렉터입니다. 네트워크를 통해 직렬 포트를 공유 할 수 있습니다. sredird를 기반으로합니다. RFC2217 프로토콜은 텔넷의 확장이며 통신 포트 매개 변수를 변경할 수 있습니다.

  • SerLooK 는 직렬 회선을 통과하는 데이터를 검사하기위한 KDE 응용 프로그램입니다. 정의 된 포트 (Point to Point 모드)를 통해 데이터를 송수신하는 이진 터미널로 작동하여 별도의보기에 표시 할 수 있습니다. 각보기는 16 진, 10 진, 8 진, 2 진 및 원시 ASCII로 데이터를 표시하도록 구성 할 수 있습니다. 터미널 에뮬레이션보기를 통해 I / O를 수행하고 보조 포트를 정의하고 "Y"케이블 (스 누퍼 모드)을 사용하여 두 외부 호스트 간의 트래픽을 모니터링 할 수도 있습니다.

  • nullmodem 은 의사 터미널의 가상 네트워크를 만듭니다. 일반적으로 직렬 인터페이스 카드가 필요한 두 개의 프로그램을 연결하는 어댑터로 사용할 수 있습니다.

  • ttywatch 는 터미널 I / O를 모니터, 로그 및 멀티 플렉스합니다. 전체 로그 회전 기능이 내장되어 있으며 로컬 TTY 포트뿐만 아니라 텔넷을 사용할 수 있습니다.

  • 직렬 회선 스니퍼 (slsnif)는 직렬 포트 로깅 유틸리티입니다. 지정된 직렬 포트를 수신하고이 포트를 통과하는 모든 데이터를 양방향으로 기록합니다.


2
당신은 표준 도구를 사용하여이를 달성 할 수 socattee. 1) socat -d -d pty,raw,echo=0 pty,raw,echo=0. 출력은 두 개의 포트를 제공합니다 ...N PTY is /dev/pts/27... N PTY is /dev/pts/28. 2) sudo cat /dev/ttyS0 | tee /dev/pts/27다른 터미널에서 sudo cat /deb/pts/27 | tee /dev/ttyS0. 마지막으로 3) 프로그램을에 연결하십시오 /dev/tty/28. 두 개의 tee 명령은 양방향을 콘솔로 덤프하고 실제 직렬 포트로 /에서 전달합니다. 전송 속도와 같은 포트 설정은 미리 구성해야합니다.
jtpereyda

당신도 파일에 티 물건을 저장할 수 있습니다 cat /dev/pts/27 | sudo tee /dev/ttyS0 serial-caps그리고 xxd그것은 바이너리 프로토콜의 경우에 도움이 될 것입니다 cat /dev/pts/27 | sudo tee /dev/ttyS0 serial-caps | xxd.
jtpereyda

@ jtpereyda 3 단계는 / dev / ttyS0에 프로그램을 연결 해야하는 것처럼 보입니다. 예를 들어 PUTTY를 / dev / ttyS0에 연결하면 실제 임베디드 보드와 통신하면서 2 단계의 출력을 올바르게 표시합니다. BTW는 오타 /deb/pts/27가 있어야합니다 /dev/pts/27. 또한 cat /deb/pts/27 | tee /dev/ttyS0이어야한다cat /dev/pts/27 | sudo tee /dev/ttyS0
enthusiasticgeek

이 답변은 매우 오래되었습니다. 직렬 포트 스니핑에 대한 차단을 고려하십시오
CharlesB

1
다른 답변으로 제공 할 수 있습니다. @CharlesB 왜 더 좋은지 설명하는 것도 좋을 것입니다.
병아리

12

요격 ( GitHub에서 복사)을 시도 하여 성공적으로 사용했습니다. 먼저 관심있는 포트에서 실행했습니다.

interceptty /dev/ttyACM0 

그런 다음 테스트 할 프로그램 /dev/pts/5을 인터 셉티가 생성 한 의사 터미널에 연결 했습니다.


slsnif 사용하려고 시도했지만 오류가 있음을 발견했습니다.

Failed to open a pty: No such file or directory

이 메일 링리스트 항목 은 slsnif /dev/ttyp0가 현재 Linux 커널에서 사용되지 않는 "레거시"의사 터미널 등 만 지원함을 나타냅니다 .


1
감사! 내 임베디드 장치에서 동일한 오류가 발생했습니다. 그런 다음 사용 interceptty하고 일했습니다!
gfleck

그것이 어떤 의사 터미널을 만드는지 어떻게 알 수 있습니까?
chwi

@chwi 두 번째 매개 변수를 지정할 수 있습니다.이 매개 변수는 생성하는 의사 터미널에 대한 심볼릭 링크 인 "프론트 장치"의 이름입니다.
Craig McQueen

고맙습니다. 기본적으로 / dev / intercepttydummy를 만듭니다. 트래픽을 앞뒤로 볼 수 있었지만 장치에서 들어오는 데이터는 pyserial을 실행하는 소프트웨어가 아니라 인터셉트 만 읽었습니다.
chwi

3

사용해보십시오 jpnevulator (패키지 데비안) 또는 slsniff을 . slsniff는 더 이상 사용되지 않는 터미널 에뮬레이션 모델을 사용합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.