OnionJuggler 是一套轻量依赖、可移植的脚本和文档集合,旨在帮助服务运营者管理其洋葱服务。
警告:请勿信任此仓库,请在其他位置备份你的 hs 密钥。本项目尚未发布,仅作开发用途。
本仓库快速链接:git.io/onionjuggler

本项目的灵感来源于出色的 OnionShare CLI Python 脚本,它实现了临时洋葱服务,无需写入磁盘即可运行,并能轻松在 Tails 或 Whonix 上使用。之后,看到 RaspiBlitz 针对树莓派的洋葱服务 bash 脚本,便萌生了将其移植到所有 Debian 发行版的想法。随着想法逐渐成熟,仅依赖 GNU Bash 和 Linux 成为了单点故障12,因此让脚本符合 POSIX 规范,兼容所有类 Unix 系统,成为了最终目标。
本项目的目标:
减少单点故障:
Linux 扩展到 BSD 及其他类 Unix 系统。Bash 扩展到任何 POSIX Shell,如 ksh、(y,d)ash 和 Zsh(模拟 sh)。Systemd 扩展到 RC、OpenRC、SysVinit、Runit。编辑 Tor 配置文件(torrc)并不困难,但自动化可以解决配置错误的问题,并带来以下好处:
<HiddenServiceDir>/authorized_clients/<client>.auth)。如果配置了任何客户端,则服务必须通过认证才能访问。<ClientOnionAuthDir>/<SOME_ONION>.auth_private。dialog 和 whiptail。@all 来包含所有服务或客户端,具体取决于选项 --service 或 ;也支持列出参数 和 ,命令将循环变量并应用组合操作。通用:
必需程序:
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)等。可选程序:
开发程序:
主要针对 Debian 系统(包括 Whonix)进行了测试。
可在 OpenBSD 上运行:
basez(因为 ports 中没有)。关于其他操作系统,请参见 etc/onionjuggler 中为您的操作系统预定义的配置。它们并未全部经过测试。
git clone https://github.com/nyxnor/onionjuggler.git
cd onionjuggler
在克隆的仓库内运行以下命令,以创建 Tor 目录、生成手册页并将脚本复制到 PATH:
./configure.sh --install
您不应修改 /etc/onionjuggler/onionjuggler.conf 的默认配置,因为它会在每次更新时被修改。您的本地配置应放在 /etc/onionjuggler/conf.d/*.conf 中;此文件夹中的配置会按词法顺序解析,最后出现的值将覆盖默认值。
每个配置和脚本都有各自的手册页和帮助信息,这是全面学习 OnionJuggler 的最佳方式。
在执行任何修改脚本之前,建议先查看已配置的选项。每个脚本都有 --getconf 选项,用于打印当前由 OnionJuggler 读取的配置:
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"
更多功能请阅读手册页。
--client[SERV1,SERV2,...][CLIENT1,CLIENT2,...]