Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
algo — Set up a personal VPN in the cloud | Kitploit
工具/GitHubGitHub/trailofbits/algo
Encryption/Decryption ToolsScripting & AutomationNetwork SecurityCloud SecurityPrivacy
GitHubtrailofbits/algo

algo

Set up a personal VPN in the cloud

查看仓库
30.4k2.4k1个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

Algo VPN

Twitter

Algo VPN 是一组 Ansible 脚本,用于简化个人 WireGuard 和 IPsec VPN 的设置。它使用了最安全的默认配置,并支持主流云服务提供商。

更多信息请查看我们的发布公告。

特性

  • 仅支持 IKEv2,采用强加密(AES-GCM、SHA2 和 P-256),适用于 iOS、macOS 和 Linux
  • 支持 WireGuard,适用于上述所有平台,以及 Android 和 Windows 11
  • 为 iOS、macOS、Android 和 Windows 的 WireGuard 客户端生成 .conf 文件和 QR 码
  • 生成 Apple 配置文件,自动配置 iOS 和 macOS 设备的 IPsec 连接——无需客户端软件
  • 包含辅助脚本,用于添加、删除和管理用户
  • 通过本地 DNS 解析器拦截广告(可选)
  • 设置受限的 SSH 用户用于流量隧道(可选)
  • 注重隐私,最小化日志记录,自动日志轮转,可配置的隐私增强功能
  • 基于 Ubuntu 22.04 LTS,自动安全更新
  • 可部署到 DigitalOcean、Amazon Lightsail、Amazon EC2、Vultr、Microsoft Azure、Google Compute Engine、Scaleway、OpenStack、CloudStack、Hetzner Cloud、Linode 或您自己的 Ubuntu 服务器(适用于高级用户)

非特性

  • 不支持旧版密码套件或协议,如 L2TP、IKEv1 或 RSA
  • 不安装 Tor、OpenVPN 或其他有风险的服务器
  • 不依赖 TLS 的安全性
  • 不声称提供匿名性或规避审查
  • 不声称保护您免受 FSB、MSS、DGSE 或 FSM 的侵害

部署 Algo 服务器

获取 Algo 服务器运行的最简单方法是在本地系统上运行,或者从 Google Cloud Shell 运行,让它为您在云中设置一台_新的_虚拟机。

  1. 在云托管提供商处注册账户。 Algo 支持 DigitalOcean(最友好)、Amazon Lightsail、Amazon EC2、Vultr、Microsoft Azure、Google Compute Engine、Scaleway、DreamCompute、Linode、其他基于 OpenStack 的云托管、基于 CloudStack 的云托管或 Hetzner Cloud。

  2. 获取 Algo 副本。 Algo 脚本将从您的本地系统运行。有两种获取方式:

    • 下载 ZIP 文件。解压文件,创建一个名为 algo-master 的目录,其中包含 Algo 脚本。

    • 使用 git clone 创建一个名为 algo 的目录,其中包含 Algo 脚本:

      root@kitploit:~
      git clone https://github.com/trailofbits/algo.git
      
  3. 设置配置选项。 使用您喜欢的文本编辑器打开 config.cfg。在 users 列表中指定您要创建的用户。为您计划连接到 VPN 的每台设备创建一个唯一用户。在部署前,您还应检查其他选项,因为之后改变主意可能需要您部署全新的服务器。

就是这样!您现在可以设置客户端连接到您的 VPN。继续下面的配置 VPN 客户端。

root@kitploit:~
    "#                         恭喜!                                          #"
    "#                    您的 Algo 服务器正在运行。                           #"
    "#    配置文件和证书位于 ./configs/ 目录中。                              #"
    "#              连接后,请前往 https://whoer.net/ 检查                    #"
    "#            确保所有流量都通过 VPN。                                     #"
    "#                    本地 DNS 解析器 172.16.0.1                          #"
    "#        新用户的 p12 和 SSH 密钥密码为 XXXXXXXX                         #"
    "#        CA 密钥密码为 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX                   #"
    "#      SSH 访问:ssh -F configs/<server_ip>/ssh_config <hostname>        #"

配置 VPN 客户端

用户需要的证书和配置文件位于 configs 目录中。请务必确保这些文件的安全,因为许多文件包含私钥。所有文件都保存在以新 Algo VPN 服务器 IP 地址命名的子目录下。

IPsec 用户重要提示:如果您以后想要添加或删除用户,必须在服务器部署时对 Do you want to retain the keys (PKI)? 提示选择 yes。这将保留用户管理所需的证书颁发机构。

Apple

Apple 设备使用 WireGuard 提供 VPN 服务。Algo 为 config.cfg 中定义的每个用户生成 WireGuard 配置文件 wireguard/<username>.conf 和 QR 码 wireguard/<username>.png。

在 iOS 上,从 iOS App Store 安装 WireGuard 应用。然后,使用 WireGuard 应用扫描 QR 码或通过 AirDrop 将配置文件传输到设备。

在 macOS 上,从 Mac App Store 安装 WireGuard 应用。运行应用后,WireGuard 将出现在菜单栏中。点击 WireGuard 图标,选择 Import tunnel(s) from file...,然后选择相应的 WireGuard 配置文件。

在 iOS 或 macOS 上,您可以通过编辑 WireGuard 应用中的隧道配置来启用“按需连接”和/或排除某些受信任的 Wi-Fi 网络(例如您的家庭或工作网络)。(Algo 无法自动为您完成此操作。)

如果您更希望在 Apple 设备上使用内置的 IPsec VPN,或者需要自动配置“按需连接”或排除的 Wi-Fi 网络,请参阅 Apple IPsec 客户端设置指南 以获取详细配置说明。

Android

Android 使用 WireGuard 提供 VPN 服务。安装 WireGuard VPN 客户端。将相应的 wireguard/<name>.conf 文件导入您的设备,然后使用它设置新连接。有关详细的安装和配置说明,请参阅 Android 设置指南。

Windows

Windows 使用 WireGuard 提供 VPN 服务。Algo 为 config.cfg 中定义的每个用户生成 WireGuard 配置文件 wireguard/<username>.conf。

安装 WireGuard VPN 客户端。将生成的 wireguard/<username>.conf 文件导入您的设备,然后使用它设置新连接。有关更详细的操作说明和故障排除,请参阅 Windows 设置说明。

Linux

Linux 客户端可以使用 WireGuard 或 IPsec:

WireGuard:WireGuard 与 Linux 客户端配合良好。有关在 Ubuntu 和其他发行版上配置 WireGuard 的逐步说明,请参阅 Linux WireGuard 设置指南。

IPsec:对于 strongSwan IPsec 客户端(包括 OpenWrt、Ubuntu Server 和其他发行版),请参阅 Linux IPsec 设置指南 以获取详细配置说明。

OpenWrt

对于使用 WireGuard 的 OpenWrt 路由器,请参阅 OpenWrt WireGuard 设置指南 以获取特定于路由器的配置说明。

其他设备

对于上面未涵盖的设备或手动配置,您需要特定的证书和配置文件。您需要的文件取决于您的设备平台和 VPN 协议(WireGuard 或 IPsec)。

  • ipsec/manual/cacert.pem:CA 证书
  • ipsec/manual/.p12:用户证书和私钥(PKCS#12 格式)
  • ipsec/manual/.conf:strongSwan 客户端配置
  • ipsec/manual/.secrets:strongSwan 客户端配置
  • ipsec/apple/.mobileconfig:Apple 配置文件
  • wireguard/.conf:WireGuard 配置档案
  • wireguard/.png:WireGuard 配置 QR 码

设置 SSH 隧道

如果您开启了可选的 SSH 隧道角色,系统将为 config.cfg 中的每个用户创建本地用户账户,并且它们的 SSH authorized_key 文件将位于 configs 目录中(user.pem)。SSH 用户账户没有 shell 访问权限,不能使用密码认证,并且只有有限的隧道选项(例如,需要 ssh -N)。这确保了 SSH 用户拥有设置隧道所需的最小权限,并且无法在 Algo 服务器上执行其他操作。

使用下面的示例命令启动 SSH 隧道,将 <user> 和 <ip> 替换为您自己的。隧道设置好后,您可以将浏览器或其他应用程序配置为使用 127.0.0.1:1080 作为 SOCKS 代理,通过 Algo 服务器路由流量:

root@kitploit:~
ssh -D 127.0.0.1:1080 -f -q -C -N <user>@algo -i configs/<ip>/ssh-tunnel/<user>.pem -F configs/<ip>/ssh_config

SSH 进入 Algo 服务器

您的 Algo 服务器已配置为仅通过密钥进行 SSH 访问以进行管理。打开终端应用,cd 到您最初下载 Algo 的 algo-master 目录,然后使用成功消息中列出的命令:

root@kitploit:~
ssh -F configs/<ip>/ssh_config <hostname>

其中 <ip> 是您 Algo 服务器的 IP 地址。如果您发现自己经常登录服务器,那么自动加载您的 Algo SSH 密钥将会很方便。将以下代码片段添加到 ~/.bash_profile 的末尾,以将其永久添加到您的 shell 环境中:

root@kitploit:~
ssh-add ~/.ssh/algo > /dev/null 2>&1

或者,您可以选择将生成的任何 Algo 服务器的配置包含到您的 SSH 配置中。编辑 ~/.ssh/config 文件,在顶部添加以下指令:

root@kitploit:~
Include <algodirectory>/configs/*/ssh_config

其中 <algodirectory> 是您克隆 Algo 的目录。

添加或删除用户

Algo 使得在初始部署后轻松添加或删除 VPN 服务器上的用户。

对于 IPsec 用户:您必须在初始服务器部署时对 Do you want to retain the keys (PKI)? 提示选择 yes。这将保留用户管理所需的证书颁发机构。您还应保存部署期间显示的 p12 和 CA 密钥密码,因为它们只显示一次。

要添加或删除用户,首先编辑 config.cfg 文件中的 users 列表。根据需要添加新用户名或删除现有用户名。然后,在终端中导航到 algo 目录并运行:

macOS/Linux:

root@kitploit:~
./algo update-users

Windows:

root@kitploit:~
.\algo.ps1 update-users

过程完成后,将为任何新用户在 configs 目录中生成新的配置文件。Algo VPN 服务器将更新为仅包含 config.cfg 文件中列出的用户。被删除的用户将无法再连接,新用户将拥有全新的证书和配置文件可供使用。

隐私与日志记录

Algo 对隐私采取了务实的态度。默认情况下,我们最小化日志记录,同时保留足够的信息用于安全性和故障排除。

默认情况下记录的内容:

  • 系统安全事件(失败的 SSH 尝试、防火墙阻止、系统更新)
  • 内核消息和启动诊断(降低详细程度)
  • WireGuard 客户端状态(通过 sudo wg 可见 - 显示最后一个端点和握手时间)
  • 基本服务状态(服务启动/停止/错误)
  • 所有日志自动轮转并在 7 天后删除

隐私通过 config.cfg 中的两个主要设置控制:

  • strongswan_log_level: -1 - 控制 StrongSwan 连接日志记录(-1 = 禁用,2 = 调试)
  • privacy_enhancements_enabled: true - 日志轮转、历史清除、日志过滤和清理的总开关

要在故障排除时启用完整调试,请将 strongswan_log_level: 2 和 privacy_enhancements_enabled: false 都设置好。这将捕获详细的连接日志并禁用所有隐私功能。调试完成后请记住恢复这些更改。

部署后,验证您的隐私设置:

root@kitploit:~
ssh -F configs/<server_ip>/ssh_config <hostname>
sudo /usr/local/bin/privacy-monitor.sh

任何 VPN 解决方案都无法实现完美的隐私。无论您的服务器配置如何,您的云提供商都会看到并记录网络流量元数据。当然,您的 ISP 知道您正在连接 VPN 服务器,即使他们无法看到您通过它做什么。

为了获得最高级别的隐私,请将您的 Algo 服务器视为可丢弃的。当您需要时,启动一个新实例,用于您的特定目的,然后完全销毁它。云基础设施的短暂性可以成为一种隐私功能,如果您有意使用它的话。

附加文档

  • 常见问题
  • 故障排除
  • Algo 如何使用防火墙

特定云提供商的设置说明

  • 配置 Amazon EC2
  • 配置 Azure
  • 配置 DigitalOcean
  • 配置 Google Cloud Platform
  • 配置 Vultr
  • 配置 CloudStack
  • 配置 Hetzner Cloud

从常见平台安装和部署

  • 从 macOS 部署
  • 从 Windows 部署
  • 从 Google Cloud Shell 部署
  • 从 Docker 容器 部署

设置 VPN 客户端以连接到服务器

  • 设置 Windows 客户端
  • 设置 Android 客户端
  • 使用 Ansible 设置 Linux 客户端
  • 设置 Ubuntu 客户端使用 WireGuard
  • 设置 Linux 客户端使用 IPsec
  • 设置 Apple 设备使用 IPsec
  • 设置运行 macOS 10.13 或更早版本的 Mac 使用 WireGuard

高级部署

  • 部署到您自己的 Ubuntu 服务器,以及远程办公设置
  • 从 Ansible 非交互式部署
  • 在创建云服务器时通过 shell 脚本或 cloud-init 部署到云服务器
  • 部署到不受支持的云提供商

如果您已阅读所有文档并有进一步的问题,请创建一个新的讨论。

认可

我一直在吐槽 VPN 服务的糟糕状况,也许是时候做一个正式的演讲了。TL;DR:使用 Algo。

-- Kenn White

在选择 VPN 提供商/应用之前,请确保您已做足研究 https://research.csiro.au/ng/wp-content/uploads/sites/106/2016/08/paper-1.pdf ... – 或考虑 Algo

-- The Register

Algo 非常简单且安全。

-- the grugq

我尝试了 Algo VPN,这是一组脚本,即使您对开发不太了解,也可以在很短的时间内设置一个云中的 VPN。我必须说,Trail of Bits 的方法给我留下了深刻的印象。

-- Romain Dillet 为 TechCrunch

如果您不愿意把钱花给匿名的、随机的 VPN 提供商,这是最好的解决方案。

-- Thorin Klosowski 为 Lifehacker

贡献

请参阅我们的开发指南,了解以下信息:

  • 设置您的开发环境
  • 使用 pre-commit 钩子保证代码质量
  • 运行测试和 linter
  • 通过 Pull Request 贡献代码

支持 Algo VPN

PayPal Patreon

所有捐款都用于支持持续开发。感谢!

  • 我们通过 PayPal 和 Patreon 接受捐款。
  • 在注册 Digital Ocean 时使用我们的推荐链接,您将获得 10 美元信用额度。
  • 我们也接受并通过 Github Pull Request 贡献的新代码和错误修复。

Algo 在 AGPLv3 下许可和分发。如果您想分发基于 Algo 的闭源修改或服务,请考虑购买例外许可。与上述方法一样,这将有助于支持持续开发。

下载工具
  • 启动部署。 回到终端。在 Algo 目录中,运行适合您平台的脚本:

    macOS/Linux:

    root@kitploit:~
    ./algo
    

    Windows:

    root@kitploit:~
    .\algo.ps1
    

    首次运行脚本时,它会自动安装所需的 Python 环境(Python 3.11+)。后续运行时会立即启动,并适用于所有平台(macOS、Linux、通过 WSL 的 Windows)。Windows PowerShell 脚本在需要时会自动使用 WSL,因为 Ansible 需要类 Unix 环境。有几个可选功能可用,对于功能完整的 VPN 服务器来说,这些都是非必需的。这些可选功能在部署文档中描述。