프로젝트 소개

stab은 현대적이고 간단하며 가벼운 고성능 TCP 터널 도구로, 로컬 포트를 원격 서버에 쉽게 노출하도록 설계되었습니다. Rust로 작성되었으며, 명령줄과 구성 파일 두 가지 사용 방식을 제공하고 다른 프로그램에 내장할 수 있습니다. 주요 특징: - 고성능 - 하트비트 감지 - 트래픽 통계 - 웹 관리 페이지에서 수동 연결 끊기 지원 - 여러 로컬 포트 동시 노출 - 끊김 시 자동 재연결(구성 가능) - 로컬 IPC API: 다른 프로그램이 설정 없이 실행하고 동적으로 구성을 내려보낼 수 있음 설치 방법: - cargo로 설치: `cargo install stab` - GitHub Releases에서 미리 컴파일된 바이너리 다운로드 사용 방법: 1. 원격 호스트에서 서버 시작: `stab server`, 기본 제어 포트 5656, 웹 관리 포트 3400. 포트 변경, 데이터 포트 범위 제한, 연결 풀 크기 설정 가능. 2. 로컬에서 터널 생성: `stab local -l 8000=server.com`, 로컬 포트를 원격 서버에 매핑, 원격 포트는 자동 할당 또는 지정 가능. 3. 구성 파일(TOML)로 모든 매개변수 설정 지원, 명령줄 매개변수가 우선. 4. 공유 키 인증 지원으로 남용 방지. 5. 웹 관리 페이지에 비밀번호 보호 설정 가능. 다른 프로그램 내장: - `stab local --api`로 시작, 명명된 파이프(Windows) 또는 Unix 도메인 소켓으로 IPC API 제공. - 프로토콜은 길이 접두사 JSON 프레임으로, ping, get_status, set_config, add_link, remove_link, list_links, clear_links, shutdown 등의 메서드 지원. - 호스트 프로세스는 터널을 동적으로 추가/삭제하고, 구성을 업데이트하며, 상태를 가져올 수 있음. 구성 파일 예시: - 서버 `server.toml`: 모드, 포트, 키, 로그, 웹 포트, 포트 범위, 연결 풀 크기 등 설정. - 로컬 `local.toml`: 모드, 포트, 키, 로그, 기본 원격 호스트, 재연결 정책, 터널 목록 등 설정. 명령줄 매개변수 목록: - `server` / `local`: 실행 모드 - `-f, --file`: 구성 파일 경로 - `-c, --control-port`: 제어 포트 - `-s, --secret`: 터널 키 - `--log`: 로그 레벨 - `--log-path`: 로그 디렉터리 - `-l, --link`: 터널 매핑 - `--api`: IPC API 활성화 - `--api-path`: IPC 경로 - `--api-token`: IPC 토큰 - `-w, --web-port`: 웹 관리 포트 - `-p, --port-range`: 데이터 포트 범위 - `--pool-size`: 연결 풀 크기 프로젝트는 중국어와 영어 문서를 제공하며, 로컬 서비스를 빠르게 노출해야 하는 개발자와 운영자에게 적합합니다.