alexanderkozariychuk-pixel/vpn-infrastructure-showcase

GitHub: alexanderkozariychuk-pixel/vpn-infrastructure-showcase

一个开源的多跳VPN基础设施项目,通过混淆技术和自动化部署帮助用户在受限网络中绕过DPI审查。

Stars: 0 | Forks: 0

# 多跳VPN基础设施 [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE(MIT)) [![Project Status](https://img.shields.io/badge/Status-Active-green.svg)](README.md) ## 目录 - [项目概述](#project-overview) - [架构设计](#architecture) - [当前状态](#current-status-) - [技术栈](#tech-stack) - [主要功能](#key-features) - [下一步计划](#next-steps) - [安装配置](#setup) - [自动化和脚本](#automation-and-scripts) - [故障排除](#troubleshooting) ## 项目概述 多跳VPN基础设施,提供稳定、私密的连接服务,旨在绕过DPI限制并提供监控和故障转移能力。 ## 架构设计 该基础设施设计为多跳链式结构,用于绕过基于DPI和 whitelist 的过滤机制。 流量从客户端依次经过**俄罗斯桥接节点**、**摩尔多瓦入口节点**,最终到达**法国出口节点**。 独立的**监控节点**(位于荷兰)负责收集指标并发送告警。 ``` graph LR Client["Client (6 devices)"] --> Bridge["Russian Bridge (Retranslator)
AmneziaWG + Xray"] Bridge --> Entry["Entry Node (Moldova)
AmneziaWG + Xray"] Entry --> Exit["Exit Node (France)
Xray (VLESS+XHTTP)"] Exit --> Internet["Internet"] subgraph Monitoring Monitor["Monitoring Node (Netherlands)
Uptime Kuma, Prometheus, Grafana"] end Bridge -.-> Monitor Entry -.-> Monitor Exit -.-> Monitor ``` ## 当前状态 ✅ - VPS1 已配置并运行(摩尔多瓦) - VPN隧道(AmneziaWG)已建立 - 已为9个客户端创建配置文件 - 监控设置: - Uptime Kuma + Telegram 告警 - Node Exporter + Prometheus(指标收集) - **Python脚本**(`awg_status.py`)采集 AmneziaWG 指标(节点、流量、握手)并推送到 Uptime Kuma ## 技术栈 - **网络**:WireGuard、AmneziaWG - **监控**:Prometheus、Node Exporter、Uptime Kuma - **自动化**:Python(Aeza、4VPS.SU API)、Ansible(进行中) ## 主要功能 - 通过混淆层绕过DPI - 多客户端VPN配置 - 可观测性(指标和告警) - 故障转移测试脚本 ## 下一步计划 - 使用 Python 脚本在法国(Aeza)配置出口节点。 - 获取俄罗斯VPS(4VPS.SU 或其他)并设置桥接角色。 - 配置 Xray 链:俄罗斯桥接 → 摩尔多瓦入口 → 法国出口。 - 将监控迁移到独立的VPS(荷兰)。 - 编写 Ansible playbook 以自动化整个部署过程。 ## 安装配置 详见 [docs/setup-tutorial.md](docs/setup-tutorial.md) ## 自动化和脚本 ### 当前自动化 实用脚本组织在 [`scripts/`](scripts/) 目录中: | 脚本 | 描述 | |--------|-------------| | **维护** | | | [`rotate-keys.sh`](scripts/maintenance/rotate-keys.sh) | 为现有 AmneziaWG 客户端生成新密钥,更新服务器配置,并重启服务。 | | [`backup-configs.sh`](scripts/maintenance/backup-configs.sh) | 创建所有关键配置文件(AmneziaWG、Xray、监控)的带时间戳归档。 | | **监控** | | | [`healthcheck.sh`](scripts/monitoring/healthcheck.sh) | 检查 AmneziaWG、Xray 和关键端口的状态。如果全部健康则返回退出码 0。 | | [`awg_status.py`](scripts/monitoring/awg_status.py) | Python 脚本,用于采集 AmneziaWG 指标(节点、流量、握手时长)并推送到 Uptime Kuma。复制到 `/usr/local/bin/awg_status.py` 并替换占位符。 | | **安装配置** | | | [`install-monitoring.sh`](scripts/setup/install-monitoring.sh) | 通过 Docker 在全新的 VPS 上部署完整监控栈(Uptime Kuma、Prometheus、Node Exporter、Alertmanager)。 | | [`setup-new-vps.sh`](scripts/setup/setup-new-vps.sh) | 在新 VPS 上执行基础配置:创建用户、配置 SSH 密钥、禁用密码认证、设置防火墙。 | | [`install-amneziawg.sh`](scripts/setup/install-amneziawg.sh) | 在全新 Ubuntu 服务器上一键安装 AmneziaWG(基于官方安装程序)。 | | **提供商自动化** | | | [`create_aeza_vps.py`](scripts/providers/aeza/create_aeza_vps.py) | Python 脚本,使用 Aeza 官方 API 在 Aeza(法国出口节点)上配置 VPS。 | | [`create_vps.py`](scripts/providers/fourvps/create_vps.py) | Python 脚本,在 4VPS.SU(俄罗斯桥接节点)上配置 VPS – 需要 API token 和正确的 DC/套餐 ID(包含发现模式)。 | ### 计划中的自动化 - **Ansible playbook** 用于在所有节点上配置 AmneziaWG、Xray 和监控(见 `ansible/` 目录)。 - **CI/CD**(GitHub Actions)用于自动化测试脚本和 playbook(计划中)。 - **Terraform**(可选)– 如果将来选择支持官方 Terraform 的提供商。 所有服务器配置将由 Ansible 处理,使设置可重复且受版本控制。 ## 故障排除 ### 实际挑战 在测试过程中,我遇到了移动网络限制,只能访问白名单网站。 本项目包含以下故障排除和分析: - DPI 过滤行为 - UDP 流量不稳定性 - VPN 协议被阻止 详见 [docs/troubleshooting.md](docs/troubleshooting.md)
标签:AmneziaWG, DPI绕过, Grafana, Node Exporter, Python, Uptime Kuma, VLESS, VPN, WireGuard, Xray, 中继节点, 多跳VPN, 应用安全, 无后门, 本体建模, 流量混淆, 特权提升, 监控告警, 科学上网, 穿透审查, 系统提示词, 网络基础设施, 网络安全, 网络安全, 翻墙工具, 自动化部署, 自定义请求头, 请求拦截, 逆向工具, 隐私保护, 隐私保护