
POSIX 호환 셸을 사용하는 Unix 계열 운영 체제에서 CLI 또는 TUI를 통해 Onion 서비스를 관리하세요.
OnionJuggler는 서비스 운영자가 자신의 onion(들)을 저글링(관리)하는 데 도움이 되는 최소 요구 사항의 휴대용 스크립트 및 문서 모음입니다.
경고: 이 레포지토리를 아직 신뢰하지 마십시오, hs 키를 다른 위치에 백업하세요. 이 프로젝트는 아직 릴리스되지 않았으며 개발 전용으로 간주되어야 합니다.
이 레포지토리 빠른 링크: git.io/onionjuggler

이 프로젝트는 디스크에 닿지 않고 Tails나 Whonix에서 쉽게 실행할 수 있는 임시 onion 서비스를 가능하게 하는 놀라운 OnionShare CLI 파이썬 스크립트를 본 후 시작되었습니다. 그 다음 라즈베리 파이용 RaspiBlitz onion 서비스 bash 스크립트를 보고 이를 모든 데비안 배포판으로 포팅하려는 아이디어가 생겼습니다. 아이디어가 커지면서 GNU Bash와 Linux만 사용하는 것은 단일 장애점이었기 때문에 1 2, 스크립트를 모든 유닉스 계열 시스템과 호환되도록 POSIX 준수로 만드는 것이 최종 목표가 되었습니다.
이 프로젝트의 목표는:
단일 장애점 완화:
Linux에서 BSD 및 기타 유닉스 계열 시스템으로.Bash에서 ksh, (y,d)ash, Zsh (sh 에뮬레이션) 등 모든 POSIX 셸로.Systemd에서 RC, OpenRC, SysVinit, Runit으로.tor 설정 파일(torrc)을 편집하는 것은 어렵지 않지만, 자동화는 잘못된 설정 문제를 해결하고 다음을 제공합니다:
<HiddenServiceDir>/authorized_clients/<client>.auth에서 클라이언트 이름과 공개 키 나열. 클라이언트가 구성된 경우 인증 없이 서비스에 접근할 수 없습니다.<ClientOnionAuthDir>/<SOME_ONION>.auth_private 목록.dialog 및 whiptail.일반:
필수 프로그램:
dash 0.5.4+, bash 2.03+, ksh 88+, mksh R28+, yash 2.29+, busybox ash 1.1.3+, zsh 3.1.9+ (zsh --emulate sh) 등.선택 프로그램:
개발 프로그램:
주로 Whonix를 포함한 데비안 시스템에서 테스트되었습니다.
OpenBSD에서 작동 가능 -
basez가 포트에 없으므로 소스에서 빌드해야 함.다른 운영 체제의 경우 etc/onionjuggler에서 해당 운영 체제에 대한 사전 정의된 구성을 확인하세요. 모두 테스트된 것은 아닙니다.
git clone https://github.com/nyxnor/onionjuggler.git
cd onionjuggler
클론된 레포지토리 내에서 다음을 실행하여 tor 디렉토리를 생성하고, 매뉴얼 페이지를 만들고, 스크립트를 경로에 복사합니다:
./configure.sh --install
기본 구성 파일 /etc/onionjuggler/onionjuggler.conf는 수정하지 않는 것이 좋습니다. 업데이트 시마다 덮어씌워집니다. 로컬 구성은 /etc/onionjuggler/conf.d/*.conf에 저장해야 하며, 이 폴더에서 어휘 순서로 파싱되어 마지막 값이 기본값을 대체합니다.
각 구성 및 스크립트에는 자체 매뉴얼 페이지와 도움말 메시지가 있으며, 이는 onionjuggler 전체를 배우는 가장 좋은 방법입니다.
변경을 위해 스크립트를 실행하기 전에 어떤 옵션이 구성되어 있는지 확인하는 것이 좋습니다. 모든 스크립트에는 onionjuggler가 읽은 현재 구성을 출력하는 --getconf 옵션이 있습니다:
onionjuggler-cli --getconf
변경 없이 명령줄 옵션을 확인할 수도 있습니다. 할당이 올바른지 확인하는 데 유용합니다:
onionjuggler-cli --getopt --service=example --hs-version=3
TUI를 사용하려면 다음을 실행하세요:
onionjuggler-tui
CLI에서 서비스를 생성하려면:
onionjuggler-cli --on --service=terminator --socket=tcp --hs-version=3 --port="80:127.0.0.1:80"
더 많은 작업이 가능합니다. 매뉴얼 페이지를 읽어보세요.
@all--service--client[SERV1,SERV2,...][CLIENT1,CLIENT2,...]