Skip to content

DevNergis/Rustty-Share

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rustty-Share

Rustty-Share는 Rust로 작성된 TTY(터미널) 공유 서버 및 클라이언트입니다. 원격으로 터미널 세션을 공유하고 접근할 수 있게 해주는 도구입니다.

특징

  • 🖥️ 터미널 공유: 실시간으로 터미널 세션을 여러 사용자와 공유
  • 🔒 보안 연결: Dumbpipe 터널에 의해 암호화된 통신 (로컬 WebSocket은 ws:// 사용)
  • 🌐 터널링: Dumbpipe를 통한 쉬운 터널링 및 공유
  • 비동기 처리: Tokio 기반의 고성능 비동기 처리
  • 🎯 유연한 설정: 다양한 명령어와 인수 지원
  • 🔧 읽기/쓰기 제어: 클라이언트의 쓰기 권한 제어 가능

설치

사전 요구사항

  • Rust 1.70 이상
  • Cargo

빌드

git clone https://github.com/DevNergis/rustty-share.git
cd rustty-share
cargo build --release

사용법

서버 모드 (기본)

기본적으로 bash 셸을 공유하는 서버를 시작합니다. 서버 실행 시 Dumbpipe 터널이 자동으로 생성되며 공유용 티켓이 로그에 표시됩니다:

rustty-share

특정 명령어를 실행하는 서버:

rustty-share htop

인수가 있는 명령어:

rustty-share ls -la /home

쓰기 권한을 허용하는 서버:

rustty-share -w

클라이언트 모드

Dumbpipe 티켓으로 연결:

rustty-share connect <node-ticket>

로컬 리스너 주소/인터페이스 변경(기본값: 127.0.0.1, 포트는 무작위):

rustty-share connect <node-ticket> --local-addr 127.0.0.1:9090

참고: 포트 번호를 지정하지 않으면 사용 가능한 포트를 49152-65535 범위에서 무작위로 선택하며, 지정한 포트가 이미 사용 중인 경우에도 다른 포트로 자동 재시도합니다.

터미널 크기 지정:

rustty-share connect <node-ticket> --rows 24 --cols 80

명령줄 옵션

서버 옵션

  • -w, --allow-write: 클라이언트의 터미널 쓰기 권한 허용

클라이언트 옵션

  • <TICKET>: Dumbpipe 터널 티켓 (필수 positional 인수)
  • --local-addr <ADDR>: Dumbpipe 사용 시 로컬 바인드 인터페이스/주소 (기본값: 127.0.0.1, 포트는 무작위)
  • --rows <ROWS>: 터미널 행 수 (자동 감지되지 않을 때)
  • --cols <COLS>: 터미널 열 수 (자동 감지되지 않을 때)

예제

1. 기본 터미널 공유

서버 시작:

rustty-share -w

클라이언트 연결:

rustty-share connect <티켓>

2. 특정 프로그램 공유

서버에서 htop 공유:

rustty-share htop

3. Dumbpipe를 통한 쉬운 공유

서버 시작 (터널 생성):

rustty-share -w

서버가 시작되면 공유 가능한 node ticket이 자동으로 출력됩니다.

클라이언트 연결:

rustty-share connect <node-ticket>

기술 스택

  • 언어: Rust
  • 비동기 런타임: Tokio
  • WebSocket: tokio-tungstenite
  • 터미널 처리: crossterm, pty-process
  • 네트워킹: iroh (P2P 네트워킹)
  • 터널링: dumbpipe
  • CLI: clap
  • 로깅: tracing

라이선스

이 프로젝트는 LICENSE 파일에 명시된 라이선스에 따라 배포됩니다.

기여

버그 리포트, 기능 요청, 풀 리퀘스트를 환영합니다!

저자

  • Nergis

링크

About

No description, website, or topics provided.

Resources

License

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages