#反向代理 #代理 #TLS #TCP #TLS 证书 #HTTP

bin+lib taxy

一个带有内置 WebUI 的反向代理服务器,支持 TCP/HTTP/TLS/WebSocket

45 个版本

0.3.30 2024 年 8 月 14 日
0.3.29 2024 年 5 月 7 日
0.3.28 2024 年 4 月 20 日
0.3.26 2024 年 3 月 29 日
0.3.11 2023 年 7 月 31 日

#46 in WebSocket

Download history 5/week @ 2024-04-29 142/week @ 2024-05-06 129/week @ 2024-07-22 114/week @ 2024-08-12

243 每月下载次数

MIT 许可证

720KB
7.5K SLoC

edition logo

税制

一个用 Rust 编写的带有内置 WebUI 的反向代理服务器,支持 TCP/HTTP/TLS/WebSocket。

Crates.io GitHub license Rust dependency status

🚧 注意

税制目前处于早期开发阶段。请注意,频繁的破坏性更改可能会发生,尤其是在升级到小版本(例如,从 0.3.x 到 0.4.x)时。

概述

  • 使用 Rust 构建,以实现最佳性能和安全,由 tokio 和 hyper 提供动力
  • 支持 TCP、TLS、HTTP1 和 HTTP2,包括 HTTP 升级和 WebSocket 功能
  • 易于部署的单个二进制文件,具有内置的 WebUI
  • 允许通过 REST API 在不重启服务的情况下进行实时配置更新
  • 可以从 GUI 导入 TLS 证书或生成自签名证书
  • 提供 Let's Encrypt 支持(ACME v2,仅 HTTP 挑战)以实现无缝证书提供
  • 支持自动 HTTP Brotli 压缩

截图

Taxy WebUI Screenshot

Web UI 示例

访问 https://taxy.onrender.com/。(用户名: admin,密码: admin

请注意,您可以自由更改配置,但由于实例位于防火墙后面,配置的代理不可从外部访问。

安装

有几种方法可以安装税制。

Docker

运行以下命令以使用 Docker 启动税制

docker run -d \
  -v taxy-config:/root/.config/taxy \
  -p 80:80 \
  -p 443:443 \
  -p 127.0.0.1:46492:46492 \
  --restart unless-stopped \
  --name taxy \
  ghcr.io/picohz/taxy:latest

要登录到管理面板,您首先需要创建一个用户。按照以下步骤创建管理员用户

docker exec -t -i taxy taxy add-user admin
password?: ******

Docker Compose

创建一个名为 docker-compose.yml 的文件,内容如下

version: "3"
services:
  taxy:
    image: ghcr.io/picohz/taxy:latest
    container_name: taxy
    volumes:
      - taxy-config:/root/.config/taxy
    ports:
      # Add ports here if you want to expose them to the host
      - 80:80
      - 443:443
      - 127.0.0.1:46492:46492 # Admin panel
    restart: unless-stopped

volumes:
  taxy-config:

运行以下命令以启动税制

$ docker-compose up -d

要登录到管理面板,您首先需要创建一个用户。按照以下步骤创建管理员用户

$ docker-compose exec taxy taxy add-user admin
password?: ******

然后,您可以通过 https://127.0.0.1:46492/ 访问管理面板。

Cargo binstall

cargo-binstall 会自动下载和安装您平台上的预构建二进制文件。如果没有可用的预构建二进制文件,它将回退到 cargo install

您需要先安装 cargo-binstall

然后,您可以使用以下命令安装 Taxy:

$ cargo binstall taxy

Cargo install

您需要安装 Rust 工具链。如果没有安装,请按照 rustup.rs 上的说明进行操作。

crates.io 上的软件包已经将 WebUI 作为静态资源捆绑在一起。因此,您无需自己构建它(这将需要 trunk 和 wasm 工具链)。

$ cargo install taxy

Github 发布

或者,您可以直接从 发布页面 下载最新的预构建的二进制文件。

您只需将提取的二进制文件放在您的 $PATH 中的某个位置即可。

启动服务器

首先,您需要创建一个用户来访问管理员面板。系统将提示您输入密码。

# Create a user
$ taxy add-user admin
$ password?: ******

然后,您可以启动服务器。

$ taxy start

一旦服务器启动,您就可以在 https://127.0.0.1:46492/ 访问管理员面板。

开发

要为 Taxy 做出贡献或开发它,请按照以下步骤操作

# Clone the repository
git clone https://github.com/picoHz/taxy

# Start the server
cd taxy
cargo run

# In a separate terminal, start `trunk serve` for the WebUI
cd taxy-webui
trunk serve

Gitpod

您可以使用 Gitpod 在浏览器中即时开始开发 Taxy。

Open in Gitpod

类似项目

Rust 编写的 HTTP 反向代理

致谢

社交预览图片使用了 cal gaoUnsplash 上的照片。

依赖项

~79MB
~1.5M SLoC