물리적 직렬 링크 대신 의사 터미널 슬레이브(/dev/pts/N)를 사용하고 응용 프로그램에서 해당 데이터 스트림(/dev/ptmx의)을 처리하고 해당 스트림을 적절한 링크로 리디렉션하도록 PPP를 설정하고 싶습니다. 위치. 모든 문서를 읽은 후에 이것이 가능하다는 것을 이해하지만 실제로 그것을 시도한 사람은 아무도 없습니다. 그렇다면 PTS에 편안함을 느끼는 사람이라면 내가 뭔가를 놓치고 있지 않다는 것을 확인할 수 있습니까?
직접 시도해 볼 수도 있지만 이 질문에 대답하려면 많은 소프트웨어 개발이 필요합니다. 특히 데이터 흐름 문제(XOn/Xoff를 사용함) 또는 대기 시간 문제가 궁금합니다.
아주 긴 이야기...
저는 임베디드 Linux(device#1이라고 함)를 사용하고 있습니다. 이 장치에는 직렬 링크를 통해 홈브류 프로토콜을 통해 두 번째 장치(장치 #2라고 함)와 통신하는 애플리케이션이 있습니다. 현재 Device#1은 두 번째 직렬 링크에 연결된 모뎀과 PPP를 사용하여 통신합니다.
요점은 장치#2에도 모뎀이 있다는 것입니다. 따라서 솔루션 비용을 줄이고 PPP 트래픽을 다른 장치/모뎀으로 리디렉션하기 위해 장치#1에서 모뎀을 제거하고 싶습니다.
내 생각은 의사 터미널 쌍을 사용하고, PTM에서 스트림을 읽도록 응용 프로그램을 수정하고, 이를 홈브류 프로토콜로 래핑하여 장치#2로 보내는 것입니다. 이 프로세스를 올바르게 처리하도록 장치#2를 수정할 수 있지만 그게 요점이 아닙니다.
- 장치#2에는 운영 체제가 없습니다(두 장치 간에 socat을 합리적으로 사용할 수 없습니다).
- tty0tty가 해결책일 수도 있지만 가능하면 패키지 설치를 피하고 싶습니다.
- 보안상의 이유로 1번 장치(Linux)에서는 SSL/TCP를 설정해야 합니다. 이는 필수입니다.
답변1
이전에 SSH 연결을 통해 트래픽을 실행한 적이 있는데 pppd
이는 귀하가 시도하는 것과 유사할 것입니다. 전달된 TCP 연결의 생성/해제로 인해 문제가 많이 발생하는 전통적인 SSH 터널링 문제가 발생한 후에 이 작업을 수행했습니다. ssh+pppd 콤보가 더 잘 작동하므로 지연 문제가 너무 많이 발생하지 않기를 바랍니다. 하지만 Xon/Xoff 상황에 대해서는 말할 수 없습니다.
파일에 /etc/ppp/peers/<linkname>
다음과 같은 줄을 포함했습니다.
pty "/usr/bin/ssh -t -P -l username servername"
분명히 ssh
이 명령을 직렬 링크 변환을 위한 자체 도구로 바꾸고 싶을 것입니다.
socat
저와 같은 일을 하신 분들도 계시는데 nc
, 효과가 있었으면 좋겠습니다.