使用开源工具设置私人 VPN

使用 OpenWRT 和 Wireguard 在您的路由器上创建您自己的虚拟私人网络。
51 位读者喜欢这篇文章。

通过计算机网络从一个地方到另一个地方可能是一件棘手的事情。除了知道正确的地址和打开正确的端口之外,还有安全问题。对于 Linux,SSH 是一个流行的默认选项,虽然 SSH 可以做很多事情,但它仍然“只是”一个安全外壳(实际上 SSH 就是安全外壳的缩写。)更广泛的加密流量协议是 VPN,它在两个点之间创建唯一的虚拟私人网络。有了它,您可以登录到另一个网络上的计算机,并使用它的所有服务(文件共享、打印机等等),就像您实际坐在同一个房间里一样,并且每一点数据都从点到点加密。

通常,为了使 VPN 连接成为可能,每个网络的网关必须接受 VPN 流量,并且目标网络上的某些计算机必须监听 VPN 流量。但是,可以运行自己的路由器固件,该固件运行 VPN 服务器,使您能够连接到目标网络,而无需担心转发端口或考虑内部拓扑。我最喜欢的固件是 OpenWrt,在本文中,我将演示如何设置它,以及如何在上面启用 VPN。

什么是 OpenWrt?

OpenWrt 是一个开源项目,它使用 Linux 来定位嵌入式设备。它已经存在超过 15 年,并且拥有庞大而活跃的社区。

使用 OpenWrt 的方法有很多,但其主要用途是在路由器中。它提供了一个完全可写的文件系统,带有软件包管理,并且由于它是开源的,您可以查看和修改代码并为生态系统做出贡献。如果您希望更好地控制路由器,这就是您想要使用的系统。

OpenWrt 支持许多路由器,包括 思科华硕MikroTikTeltonika Networks友讯TP-link巴法络Ubiquiti许多其他品牌等知名品牌。

什么是 Wireguard?

Wireguard 是开源虚拟私人网络 (VPN) 软件,它比 OpenVPN 等其他选项更快、更简单、更安全。它使用最先进的密码学:用于对称密码学的 ChaCha20;用于密钥协商的 Curve 25519(使用椭圆曲线);以及用于哈希的 BLAKE2。这些算法的设计方式使其在嵌入式系统上高效。WIreguard 也可在各种操作系统 平台上使用。

先决条件

对于这个项目,您将需要

  • Teltonika RUT955 或另一个 OpenWrt 支持的路由器
  • 一个公共 IP 地址,用于从您的网络外部连接到您的 VPN
  • 一部安卓手机

安装 OpenWrt

要开始,请下载适用于您路由器的 OpenWrt 镜像。使用 固件选择器 检查 OpenWrt 是否支持您的路由器并下载固件。输入您路由器的型号,它将显示您的选项

通过使用搜索框右侧的下拉输入,选择您要下载的固件版本。

下载工厂镜像。

许多路由器允许您从 Web 界面刷新未经授权的固件,但 Teltonika Networks 不允许。要将 OpenWrt 固件刷新到这样的路由器,您需要使用引导加载程序。为此,请按照以下步骤操作

  1. 拔下路由器的电源线。
  2. 按住重置按钮。
  3. 插入路由器的电源线。
  4. 插入电源线后,继续按住重置按钮 5 到 8 秒钟。
  5. 将计算机的 IP 地址设置为 192.168.1.15,子网掩码设置为 255.255.255.0
  6. 通过 LAN 端口使用以太网电缆连接路由器和计算机。
  7. 打开 Web 浏览器并输入 192.168.1.1:/index.html
  8. 上传并刷新固件。

刷新过程可能需要长达三分钟。之后,您应该可以通过在浏览器中输入 192.168.1.1 来访问路由器的 Web 界面。默认情况下未设置密码。

配置网络连接

网络连接是必需的。如果您的互联网服务提供商 (ISP) 使用 DHCP 自动分配您的 IP 地址,您只需将以太网电缆插入路由器的 WAN 端口即可。

如果您需要手动分配 IP 地址,请导航到 网络 → 接口。选择 编辑 以编辑您的 WAN 接口。从 协议 字段中,选择 静态地址,然后选择 切换协议

IPv4 地址 字段中,输入您路由器的地址。设置 IPv4 子网掩码 以匹配您的网络子网;输入您将用于连接到网络的 IPv4 网关 地址;并在 使用自定义 DNS 服务器 字段中输入 DNS 服务器的地址。保存配置。

就这样!您已成功配置 WAN 接口以获得网络连接。

安装必要的软件包

固件默认不包含许多软件包,但 OpenWrt 有一个软件包管理器,其中包含您可以安装的软件包选择。导航到 系统 → 软件,然后选择 更新列表… 来更新您的软件包管理器

在过滤器输入中,键入 Wireguard,并等待系统找到包含此关键字的所有软件包。查找并安装名为 luci-app-wireguard 的软件包。

此软件包包含用于配置 Wireguard 的 Web 界面,并安装 Wireguard 工作所需的所有依赖项。

如果在安装 Wireguard 软件包之前收到警告,提示缺少软件包并且在存储库中找不到,请忽略它并继续。

接下来,查找并安装名为 luci-app-ttyd 的软件包。这将用于稍后访问终端。

安装这些软件包后,重新启动路由器以使更改生效。

配置 Wireguard 接口

接下来,创建 Wireguard 接口。导航到 网络 → 接口,然后在左下方选择 添加新接口…。在弹出窗口中,输入您想要的接口名称,从下拉列表中选择 Wireguard VPN,然后在右下方选择 创建接口

在新弹出的窗口中,选择 生成密钥 以生成 Wireguard 接口的私钥。在 监听端口 字段中,输入您想要的端口。我将使用默认的 Wireguard 端口 51820。在 IP 地址 字段中,分配将用于 Wireguard 接口的 IP 地址。在本示例中,我使用 10.0.0.1/24。数字 24 表示我的子网大小。

保存配置并重新启动接口。

导航到 服务 → 终端,登录到 shell,然后输入命令 wg show。您将看到有关您的 Wiregaurd 接口的一些信息,包括其公钥。复制公钥 - 您稍后需要它来创建对等方。

配置防火墙

导航到 网络 → 防火墙,然后选择 流量规则 选项卡。在页面底部,选择 添加。在弹出窗口的 名称 字段中,为您的规则命名,例如 Allow-wg。接下来,将 目标区域Lan 更改为 设备,并将 目标端口 设置为 51820。

保存配置。

在安卓手机上配置 Wireguard

从 Google Play 在您的手机上安装 Wireguard 应用程序。安装完成后,打开应用程序并从头开始创建一个新接口。在 名称 字段中,输入您要用于接口的名称。在 私钥 字段中,按右侧的双箭头图标以生成密钥对。您将需要上面的公钥来在您的手机和路由器之间创建对等方。在 地址 字段中,分配您将用于通过 VPN 连接到手机的 IP 地址。我将使用 10.0.0.2/24。在 监听端口 中,输入一个端口;我将再次使用默认端口。

保存配置。

要向配置添加对等方,请选择 添加对等方。在 公钥 字段中,输入您路由器的 Wireguard 公钥。在 端点 字段中,输入您路由器的公共 IP 地址和端口,用冒号分隔,例如 12.34.56.78:51820。在 允许的 IP 字段中,输入您想要通过 Wireguard 接口访问的 IP 地址。(您可以输入您路由器的 VPN 接口 IP 地址和 LAN 接口地址。)IP 地址必须用逗号分隔。您还可以定义子网的大小。

保存配置。

配置中还剩最后一步:在路由器上添加对等方。

在路由器上添加对等方

导航到 网络 → 接口 并选择您的 Wireguard 接口。转到 对等方 选项卡,然后选择 添加对等方。在 描述 字段中,输入对等方的名称。在 公钥 字段中,输入您手机的 Wireguard 接口公钥,在 允许的 IP 字段中,输入您手机的 Wireguard 接口 IP 地址。选中 路由 允许的 IP 复选框。

保存配置并重新启动接口。

测试配置

在手机上打开 Web 浏览器。在 URL 栏中,输入 IP 地址 10.0.0.1192.168.1.1。您应该能够访问您路由器的网站。

您自己的 VPN

现在有很多 VPN 服务在做广告,但是拥有和控制您自己的基础设施有很多好处,尤其是当该基础设施仅用于提高安全性时。没有必要依靠其他人为您提供与数据的安全连接。使用 OpenWrt 和 Wireguard,您可以拥有自己的开源 VPN 解决方案。

接下来阅读什么
标签
User profile image.
我是一名来自立陶宛的程序员/管理员。我感兴趣的领域是:Linux 嵌入式 Linux 网络编程 其他嵌入式系统,如 Arduino 和许多其他系统

评论已关闭。

Creative Commons 许可协议本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.