8 个版本 (稳定)
1.6.0 | 2023年6月10日 |
---|---|
1.5.0 | 2023年6月3日 |
1.3.0 | 2023年5月31日 |
0.9.0 | 2023年5月28日 |
#921 在 命令行工具
每月下载量 98
52KB
1K SLoC
AdGuardian-Term
基于终端,实时监控和统计您的 AdGuard Home 实例流量
关于
AdGuardian 终端版本 - 通过这个(非官方)的伴侣,监控您的 AdGuard Home 实例流量
功能
- 实时查询监控: 实时获取并显示所有 DNS 查询,让您随时随地了解您的网络中正在发生什么
- 允许和阻止统计: 快速了解 AdGuard 允许、过滤或阻止的查询数量
- 历史查询数量: 通过历史查询数量数据分析网络活动。这可以帮助您跟踪趋势和发现任何异常活动
- 过滤器列表: AdGuardian 显示您的活动过滤器列表,显示哪些过滤器正在做最多的工作
- 顶级域名统计: 查看您的网络中最受查询的域名(包括已阻止、允许和其他情况)
- 轻量级和便捷: AdGuardian 可以使用超小型的 Docker 镜像或直接使用无依赖的可执行文件运行
- 良好和安全: 使用 Rust 编写并单元测试,应用程序本地运行,无外部请求,并且当然它是完全开源的
关于 AdGuard
AdGuard Home 是一个免费的开源自托管的(或管理的)网络广告和跟踪器阻止器。它作为一个 DNS 服务器,将跟踪域名重定向到“黑洞”,从而阻止您的设备连接到这些服务器。它使您的互联网更快、更安全,并提供了许多有用的功能,如加密 DNS(DoH、DoT、DNSCrypt)、家长控制、阻止恶意软件/网络钓鱼、按设备配置、自定义 DNS 规则等。
内容
入门
运行此程序有几种选择...
Docker
docker run -it lissy93/adguardian
您还可以通过环境变量传递您的AdGuard信息(使用
-e
),请参阅配置部分以获取示例和可用配置参数列表。
如果您在使用DockerHub时遇到问题,或者希望使用不同的仓库,图像也可以通过GHCR获得 - 只需将图像名称替换为:ghcr.io/lissy93/adguardian
。或者,如果您想从源代码自行构建,可以使用docker buildx build -t adguardian .
然后使用docker run -it adguardian
运行。
可执行文件
curl -o adguardian https://github.com/Lissy93/AdGuardian-Term/releases/latest/download/adguardian-linux && \
chmod +x adguardian && \
./adguardian
在上面的示例中,不要忘记更新下载最新稳定版本的操作系统URL。
您也可以直接访问发布标签,下载最新可执行文件,然后双击运行。
从 Crates.io 安装
cargo install adguardian
adguardian
AdGuardian已作为crate发布到crates.io/crates/adguardian。所以,只要您已安装Cargo,就可以直接拉取二进制文件,然后按照上面执行。同样,请参阅下面的配置部分,了解如何传递您的AdGuard信息。
从源代码构建
git clone [email protected]:Lissy93/AdGuardian-Term.git && \
cd AdGuardian-Term && \
make
您需要
git
、cargo
和make
(有关安装说明,请参阅此处)。您还可以直接在Makefile中运行定义的cargo命令,例如cargo run
单行命令
bash <(curl -sL https://raw.githubusercontent.com/Lissy93/AdGuardian-Term/main/quick-start.sh)
这将运行quick-start.sh Bash脚本,该脚本将下载并执行适用于您的系统类型的最新二进制文件。务必先阅读并理解该文件。
不确定选择哪种方法?
- 使用Docker最简单,但需要安装,并增加一些开销(确切地说,是12Mb)
- 而使用可执行文件则不需要任何额外的依赖项
- 如果您已安装Rust,从crates.io获取也将既简单又高效
- 如果您的系统架构不受支持,您需要从源代码构建,如果您想运行分支或修改代码,也是如此
配置
该应用程序需要连接到AdGuard实例的详细信息。这些信息可以作为环境变量提供,也可以作为标志参数传递。如果这些字段中任何一项缺失或不完整,应用程序启动时将提示您输入值。
以下参数被接受
ADGUARD_IP
/--adguard-ip
- 您本地AdGuard Home实例的IP地址ADGUARD_PORT
/--adguard-port
- AdGuard正在运行的端口号ADGUARD_USERNAME
/--adguard-username
- AdGuard Home用户名ADGUARD_PASSWORD
/--adguard-password
- AdGuard Home密码
还有一些其他可选的环境变量可以设置
ADGUARD_PROTOCOL
- 连接到AdGuard时使用的协议(默认为http
)ADGUARD_UPDATE_INTERVAL
- UI刷新的速率(以秒为单位)(默认为2
)
示例
使用标志
adguardian -- \
--adguard-ip "192.168.180.1" \
--adguard-port "3000" \
--adguard-username "admin" \
--adguard-password "bobs-your-uncle"
使用环境变量
ADGUARD_IP="192.168.180.1" ADGUARD_PORT="3000" ADGUARD_USERNAME="admin" ADGUARD_PASSWORD="bobs-your-uncle" adguardian
在 Docker 中
docker run \
-e "ADGUARD_IP=192.168.180.1" \
-e "ADGUARD_PORT=3000" \
-e "ADGUARD_USERNAME=admin" \
-e "ADGUARD_PASSWORD=bobs-your-uncle" \
-it lissy93/adguardian
Web 模式
由于ttyd,终端仪表板也可以通过浏览器查看。
AdGuardian完全兼容ttyd,因此安装后,只需在运行命令前加上ttyd即可。例如:ttyd docker run -it lissy93/adguardian
或ttyd adguardian
这可以用于嵌入到另一个应用程序或仪表板中(例如Dashy 😉 - 尽管Dashy已经有了一个AdGuard小部件!)
另一个不错的选择是gotty,它的工作方式类似。注意,如果您想允许用户输入,则需要传递-w
选项。
您还可以将此与ngrok等服务结合使用,以转发端口,并从任何地方访问仪表板。但请注意应用正确的访问控制!
开发
先决条件
您需要安装Rust。运行:curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
- 请参阅安装文档。如果您还没有安装,还需要Git。
然后使用以下命令克隆仓库并进入该仓库: git clone [email protected]:Lissy93/AdGuardian-Term.git
&& cd AdGuardian-Term
您可以在Makefile中查看可用的项目命令列表。
运行
要构建并运行项目进行开发,请运行cargo run
技术文档
文档可以在此查看:
测试和质量
cargo test
- 运行单元测试cargo check
- 确保应用程序可编译cargo bench
- 执行基准测试cargo clippy
- 分析改进区域cargo doc
- 生成文档
构建
开发完成后,您可以使用以下命令构建生产项目:cargo build --release
系统的二进制文件将随后可在项目的./target/release/
目录中找到。您可以直接执行,例如,通过运行./target/release/adguardian
(Windows上请添加.exe)
CI / CD
应用程序的测试、构建和发布是通过GitHub Actions完成的。
查看当前工作流程状态
致谢
贡献者
艾丽西亚·赛克斯 |
无 |
赞助商
无 |
艾迪·拉扎里尼 |
阿南德·乔德哈里 |
大卫·杨 |
卡罗尔·乌埃勒特 |
扎克·比尔斯 |
乌利塞斯·加斯孔 |
布莱恩·麦戈纳格尔 |
弗拉基米尔·季莫费耶夫 |
贾森·阿什 |
无 |
布伦特 |
无 |
无 |
依赖项
以下依赖项的维护者使得此项目成为可能:
- anyhow - 用于惯用错误处理的错误对象
- base64 - 基础64编码
- chrono - 日期和时间解析和操作
- colored - 处理终端颜色
- crossterm - 用于键盘和鼠标事件的终端操作
- futures - 用于异步计算的futures扩展
- reqwest - HTTP客户端
- serde - JSON响应的序列化
- tokio - 改进的futures
- tui-rs - 终端绘图
镜像
此仓库的镜像发布在: codeberg.org/alicia/adguardian
贡献
有任何形式的贡献都十分欢迎(并且将非常感激!)有关行为准则,请参阅贡献者公约。有关项目设置,请参阅开发部分。
新来的吗?
要开始,请Fork仓库,进行更改,添加,提交并推送代码,然后回来这里打开一个pull请求。如果你是GitHub或开源的新手,这篇指南或git文档可能有助于您入门,但如有需要,请随时寻求支持。
你不是程序员?
您也可以以其他方式支持此项目,给我们点个星标,考虑在GitHub上赞助我们,在您的网络中分享,并报告您遇到的任何错误。
许可协议
_Lissy93/AdGuardian-Term 在MIT许可下发布 © Alicia Sykes 2023._
有关信息,请参阅TLDR Legal > MIT
展开许可
The MIT License (MIT)
Copyright (c) Alicia Sykes <alicia@omg.com>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sub-license, and/or sell
copies of the Software, and to permit persons to whom the Software is furnished
to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included install
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANT ABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
© Alicia Sykes 2023
许可协议MIT
感谢您的访问:)
依赖项
~11–26MB
~371K SLoC