通过计算机网络从一个地方到另一个地方可能是一件棘手的事情。除了知道正确的地址和打开正确的端口之外,还有安全问题。对于 Linux,SSH 是一个流行的默认选项,虽然 SSH 可以做很多事情,但它仍然“只是”一个安全外壳(实际上 SSH 就是安全外壳的缩写。)更广泛的加密流量协议是 VPN,它在两个点之间创建唯一的虚拟私人网络。有了它,您可以登录到另一个网络上的计算机,并使用它的所有服务(文件共享、打印机等等),就像您实际坐在同一个房间里一样,并且每一点数据都从点到点加密。
通常,为了使 VPN 连接成为可能,每个网络的网关必须接受 VPN 流量,并且目标网络上的某些计算机必须监听 VPN 流量。但是,可以运行自己的路由器固件,该固件运行 VPN 服务器,使您能够连接到目标网络,而无需担心转发端口或考虑内部拓扑。我最喜欢的固件是 OpenWrt,在本文中,我将演示如何设置它,以及如何在上面启用 VPN。
什么是 OpenWrt?
OpenWrt 是一个开源项目,它使用 Linux 来定位嵌入式设备。它已经存在超过 15 年,并且拥有庞大而活跃的社区。
使用 OpenWrt 的方法有很多,但其主要用途是在路由器中。它提供了一个完全可写的文件系统,带有软件包管理,并且由于它是开源的,您可以查看和修改代码并为生态系统做出贡献。如果您希望更好地控制路由器,这就是您想要使用的系统。
OpenWrt 支持许多路由器,包括 思科、华硕、MikroTik、Teltonika Networks、友讯、TP-link、巴法络、Ubiquiti 和 许多其他品牌等知名品牌。
什么是 Wireguard?
Wireguard 是开源虚拟私人网络 (VPN) 软件,它比 OpenVPN 等其他选项更快、更简单、更安全。它使用最先进的密码学:用于对称密码学的 ChaCha20;用于密钥协商的 Curve 25519(使用椭圆曲线);以及用于哈希的 BLAKE2。这些算法的设计方式使其在嵌入式系统上高效。WIreguard 也可在各种操作系统 平台上使用。
先决条件
对于这个项目,您将需要
- Teltonika RUT955 或另一个 OpenWrt 支持的路由器
- 一个公共 IP 地址,用于从您的网络外部连接到您的 VPN
- 一部安卓手机
安装 OpenWrt
要开始,请下载适用于您路由器的 OpenWrt 镜像。使用 固件选择器 检查 OpenWrt 是否支持您的路由器并下载固件。输入您路由器的型号,它将显示您的选项

(Lukas Janenas,CC BY-SA 4.0)
通过使用搜索框右侧的下拉输入,选择您要下载的固件版本。
下载工厂镜像。

(Lukas Janenas,CC BY-SA 4.0)
许多路由器允许您从 Web 界面刷新未经授权的固件,但 Teltonika Networks 不允许。要将 OpenWrt 固件刷新到这样的路由器,您需要使用引导加载程序。为此,请按照以下步骤操作
- 拔下路由器的电源线。
- 按住重置按钮。
- 插入路由器的电源线。
- 插入电源线后,继续按住重置按钮 5 到 8 秒钟。
- 将计算机的 IP 地址设置为
192.168.1.15
,子网掩码设置为255.255.255.0
。 - 通过 LAN 端口使用以太网电缆连接路由器和计算机。
- 打开 Web 浏览器并输入
192.168.1.1:/index.html
。 - 上传并刷新固件。
刷新过程可能需要长达三分钟。之后,您应该可以通过在浏览器中输入 192.168.1.1
来访问路由器的 Web 界面。默认情况下未设置密码。

(Lukas Janenas,CC BY-SA 4.0)
配置网络连接
网络连接是必需的。如果您的互联网服务提供商 (ISP) 使用 DHCP 自动分配您的 IP 地址,您只需将以太网电缆插入路由器的 WAN 端口即可。
如果您需要手动分配 IP 地址,请导航到 网络 → 接口。选择 编辑 以编辑您的 WAN 接口。从 协议 字段中,选择 静态地址,然后选择 切换协议。

(Lukas Janenas,CC BY-SA 4.0)
在 IPv4 地址 字段中,输入您路由器的地址。设置 IPv4 子网掩码 以匹配您的网络子网;输入您将用于连接到网络的 IPv4 网关 地址;并在 使用自定义 DNS 服务器 字段中输入 DNS 服务器的地址。保存配置。
就这样!您已成功配置 WAN 接口以获得网络连接。
安装必要的软件包
固件默认不包含许多软件包,但 OpenWrt 有一个软件包管理器,其中包含您可以安装的软件包选择。导航到 系统 → 软件,然后选择 更新列表… 来更新您的软件包管理器

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

(Lukas Janenas,CC BY-SA 4.0)
此软件包包含用于配置 Wireguard 的 Web 界面,并安装 Wireguard 工作所需的所有依赖项。
如果在安装 Wireguard 软件包之前收到警告,提示缺少软件包并且在存储库中找不到,请忽略它并继续。
接下来,查找并安装名为 luci-app-ttyd 的软件包。这将用于稍后访问终端。
安装这些软件包后,重新启动路由器以使更改生效。
配置 Wireguard 接口
接下来,创建 Wireguard 接口。导航到 网络 → 接口,然后在左下方选择 添加新接口…。在弹出窗口中,输入您想要的接口名称,从下拉列表中选择 Wireguard VPN,然后在右下方选择 创建接口。

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

(Lukas Janenas,CC BY-SA 4.0)
保存配置并重新启动接口。
导航到 服务 → 终端,登录到 shell,然后输入命令 wg show
。您将看到有关您的 Wiregaurd 接口的一些信息,包括其公钥。复制公钥 - 您稍后需要它来创建对等方。

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

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

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

(Lukas Janenas,CC BY-SA 4.0)
保存配置。
配置中还剩最后一步:在路由器上添加对等方。
在路由器上添加对等方
导航到 网络 → 接口 并选择您的 Wireguard 接口。转到 对等方 选项卡,然后选择 添加对等方。在 描述 字段中,输入对等方的名称。在 公钥 字段中,输入您手机的 Wireguard 接口公钥,在 允许的 IP 字段中,输入您手机的 Wireguard 接口 IP 地址。选中 路由 允许的 IP 复选框。

(Lukas Janenas,CC BY-SA 4.0)
保存配置并重新启动接口。
测试配置
在手机上打开 Web 浏览器。在 URL 栏中,输入 IP 地址 10.0.0.1
或 192.168.1.1
。您应该能够访问您路由器的网站。

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