GoAway - DNS Sinkhole 开源项目教程
goaway DNS sinkhole written in go 项目地址: https://gitcode.com/gh_mirrors/goa/goaway
1. 项目介绍
GoAway 是一个轻量级的 DNS Sinkhole,用于阻止不需要的域名,灵感来源于 Pi-hole。它提供了 DNS 级别的域名阻塞功能,并且具有一个基于 Web 的管理仪表板。GoAway 支持跨平台使用,包括 Docker 环境,并且拥有自定义阻塞规则、实时统计等功能,同时具有低资源占用的特点。
2. 项目快速启动
Docker 安装(推荐)
运行 GoAway 在容器化环境中:
docker run pommee/goaway:latest
最佳做法是使用此仓库中的 docker-compose
文件:
docker compose up -d
使用 docker-compose
可以进行更多自定义,示例可以在此处找到。
快速安装
使用安装脚本进行安装:
# 安装最新版本
curl https://raw.githubusercontent.com/pommee/goaway/main/installer.sh | sh /dev/stdin
# 安装特定版本
curl https://raw.githubusercontent.com/pommee/goaway/main/installer.sh | sh /dev/stdin 0.40.4
安装脚本将:
- 检测你的操作系统和架构
- 下载合适的二进制文件
- 安装到
~/.local/bin
- 设置必要的权限
如果安装脚本失败,你可以从 发布页面 手动下载二进制文件。
从源码构建
最后一个选项是从源码构建:
# 构建嵌入到二进制中的前端客户端
make build
# 构建GoAway二进制
go build -o goaway
# 启动
./goaway
3. 应用案例和最佳实践
- 案例:在企业内部网络中,使用 GoAway 限制访问已知恶意域名,增强网络安全。
- 最佳实践:
- 在生产环境中,建议使用 Docker 容器运行 GoAway,以便于部署和环境隔离。
- 定期更新 GoAway 的版本,以获得最新的功能和安全修复。
- 自定义配置文件
settings.yaml
,以适应不同的网络环境和安全需求。 - 通过
--statistics-retention
选项,合理设置统计数据的保留时间,以优化存储资源的使用。
4. 典型生态项目
- Go:GoAway 本身是用 Go 语言编写的,可以探索其他用 Go 语言编写的网络服务和工具。
- Docker:GoAway 支持在 Docker 环境中运行,因此可以进一步学习 Docker 网络和容器编排。
- Web-based Dashboard:GoAway 的仪表板是基于 Web 的,可以研究相关的 Web 开发框架和技术。
- Network Security:GoAway 用于网络安全的场景,可以参考其他开源网络安全项目,如 Pi-hole、OpenVAS 等。
goaway DNS sinkhole written in go 项目地址: https://gitcode.com/gh_mirrors/goa/goaway
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考