如何使用 OpenVPN 在路由器上设置安全的 VPN

  • OpenVPN 允许您在家用或商用路由器上创建高度安全且灵活的 VPN。
  • 安全取决于加密、证书和身份验证的良好配置。
  • 现代路由器(华硕、TP-Link、Omada 等)让创建 OpenVPN 服务器变得更加容易。
  • 正确配置客户端(PC、手机、安卓等)是充分利用 VPN 而不损失性能的关键。

如何配置路由器以使用 OpenVPN

直接在路由器上设置 VPN 是保护整个家庭或办公室网络最便捷的方法之一。无需逐个设备进行设置, 只需在路由器上设置一个 OpenVPN 服务器,这样任何连接到 Wi-Fi 的设备都会被加密。 而且您的真实IP地址将被隐藏。

OpenVPN是世界上使用最广泛的VPN协议之一;它是开源的,几乎可以在任何系统上运行。正确配置后, 它能将高安全性、良好的性能以及与华硕、TP-Link 或 Omada 等品牌路由器的兼容性结合起来。以及 Linux 和 Windows 服务器。

什么是VPN?为什么要将其安装在路由器上?

VPN(虚拟专用网络)创建了一个 您的设备与互联网之间建立加密隧道这样可以防止您的互联网服务提供商、公共 Wi-Fi 网络或潜在攻击者查看或篡改您的网络流量。实际上,您的公共 IP 地址会被 VPN 服务器的 IP 地址替换,从而确保您的数据安全传输。

如果不是在每台设备上安装 VPN,而是在路由器上进行配置, 所有经过该路由器的流量都将自动受到保护。电脑、手机、游戏机、智能电视、IP摄像头、家庭自动化……无需触碰每台设备上的任何内容(或者在使用路由器作为客户端时只需触碰最少的设备)。

什么是游戏VPN?
相关文章:
什么是游戏 VPN?什么时候值得使用游戏 VPN?

在路由器上使用 VPN 的优缺点

VPN的总体优势

激活 VPN 后,您首先会注意到您的公网 IP 地址发生了变化。这意味着 您可以隐藏或“伪装”您的真实IP地址,从而更私密地浏览网页。即使某个服务已通过 IP 地址屏蔽了您,或者您想要避免过度跟踪。

另一个巨大的优势是连接方式 您的设备与 VPN 服务器之间采用端到端加密即使你在酒吧或机场连接开放的 Wi-Fi,攻击者也无法轻易窥探你的凭证、银行详细信息或你上传或下载的文件。

此外,通过将您的显示 IP 地址更改为其他国家/地区, 您可以访问受地理位置限制的内容:流媒体目录、被地区屏蔽的网站、赌博网站或在您所在地区被禁止的服务。对于远程办公来说,它还有助于从任何地方访问公司资源。

它还能提高你的相对匿名性: 它可以减少与您的家庭 IP 地址相关的直接痕迹。尽管 cookie 和浏览历史记录仍然存在,但通过 IP 地址进行系统性跟踪变得更加困难。

最后,商业 VPN 和 OpenVPN 本身是 对普通用户来说相当容易使用通常只需打开应用程序,输入用户名和密码,点击连接即可。如果它安装在路由器上,您甚至无需记住在每台设备上激活它。

缺点和需要注意的事项

您几乎总会注意到性能有所下降。加密和额外的服务器跳转意味着: 根据所选硬件和服务器的不同,降低速度并略微增加延迟。在速度较慢的路由器或免费服务上,这种差异可能会非常大。

另一方面, 使用 VPN 并不能代替杀毒软件或良好的行为习惯。如果您下载了受感染的可执行文件或访问了恶意网站,VPN 也无济于事。事实上,一些所谓的“免费 VPN”程序本身就包含恶意软件,因此使用可靠的 VPN 服务商和软件至关重要。

此外,就 OpenVPN 而言,虽然在 PC 或移动设备上安装很简单, 高级配置(证书、脚本、路由等)可能会变得具有挑战性。 对于不习惯的人来说,在路由器上安装它又增加了一层限制:你需要一个兼容的路由器或使用特定的固件。

为什么说 OpenVPN 是个不错的选择?

OpenVPN 是一款广泛使用的开源 VPN 解决方案,能够运行在 第 3 层隧道模式 (TUN) 或第 2 层桥接模式 (TAP)它几乎兼容所有桌面系统(Windows、Linux、macOS)、服务器,并且还可以通过应用程序兼容Android和iOS。

通过依赖SSL/TLS, 它允许使用数字证书、用户名/密码或两者进行身份验证。它比 IPsec 更灵活,而且在很多情况下更容易管理,提供了大量的参数来调整性能和安全性。

就性能而言,OpenVPN能够提供 网络速度快,延迟低,连接稳定。只要服务器有足够的资源并且加密配置选择得当,它通常通过 UDP 运行,以避免重传并实现更高的速度,并提供额外的压缩和优化选项。

配置路由器以使用 OpenVPN

OpenVPN 中的 TUN 和 TAP 模式

有模式 TUNOpenVPN 它模拟处理 IP 流量的点对点接口。它将 IP 数据包封装在 UDP 或 TCP 中,非常适合创建与物理本地网络不同的虚拟子网;例如,所有 VPN 客户端都位于 10.8.0.0/24 网段。

在模式下 TAP因此,模拟了一个完整的以太网接口。 整个以太网帧都被封装起来。不仅仅是 IP 地址。这使得远程设备看起来与本地设备位于同一子网(这对于某些桥接场景和依赖广播的服务很有用),但如果源网络和目标网络共享同一范围,情况就会变得复杂。

推荐用于安全 OpenVPN VPN 的加密方式

现代且强大的 OpenVPN 配置通常依赖于 为 CA、服务器和客户端提供基于椭圆曲线 (EC) 的证书例如,在签名中使用 secp521r1 曲线和像 SHA-512 这样的强哈希算法。

在TLS控制通道中,推荐的做法是 至少使用 TLS 1.2,如果可能,请使用 TLS 1.3。使用 ECDHE 的加密套件用于完美前向保密,例如 TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384 或 TLS 1.3 中的更新套件 TLS_AES_256_GCM_SHA384 和 TLS_CHACHA20_POLY1305_SHA256。您可以使用 OpenVPN 命令列出密码套件和曲线,以检查您的安装支持哪些加密套件。

对于数据通道而言,如今的理想状态是 AES-256-GCM 或 CHACHA20-POLY1305如果您的 CPU 支持 AES-NI,则 AES-GCM 通常速度更快;对于没有加速功能的设备,CHACHA20-POLY1305 通常性能更佳。OpenVPN 包含用于查看可用加密套件的工具(openvpn --show-ciphers)。

另外,建议 添加一个带有 tls-crypt 的 HMAC 层。tls-auth 对 TLS 的初始阶段进行加密和身份验证。这可以缓解拒绝服务攻击、UDP 端口泛洪和 TCP SYN 攻击,并防止没有正确密钥的客户端发起握手。旧版本使用 tls-auth;tls-crypt 是其升级版本,它还对预共享密钥进行加密。

在路由器上使用 OpenVPN 的前提条件

在路由器上启用 OpenVPN 之前,最好先检查以下几项内容。首先, 请确保您的路由器支持 OpenVPN 服务器华硕、TP-Link、Omada 等品牌的许多中高端机型都包含此功能,但并非所有机型都包含。

其次,你需要有互联网连接。 可从外部访问的公共 IP 地址如果您位于 CG-NAT 之后(某些光纤或无线链路提供商通常使用 CG-NAT),您将无法将端口转发到您的路由器,并且除非您的提供商为您提供静态公共 IP 或您退出 CG-NAT,否则 OpenVPN 将无法从外部工作。

这也很重要 配置动态域名系统 (DDNS) 或在广域网上分配静态 IP 地址。这样一来,客户只需使用一个域名(my-vpn.dyndns.org)即可连接,无需担心 IP 地址变更。为了安全起见,建议将系统时间与互联网时间保持同步,现代路由器通常通过 NTP 服务来实现这一点。

在TP-Link路由器上配置OpenVPN服务器

情况 1:家庭网络中只有一个路由器

在仅使用一台TP-Link路由器的简单场景中,典型流程是登录设备的Web界面,进入高级设置部分 VPN 服务器 > OpenVPN 并激活服务器如果这是您第一次使用,路由器会要求您生成证书才能继续。

那么你就必须做出选择。 协议(UDP 或 TCP)将服务端口设置为 1024-65535 范围内,并且 定义 VPN 子网/掩码 (例如 10.8.0.0/24)将从中为客户端分配虚拟 IP 地址。

路由器还可以让你选择 客户访问类型仅限家庭网络,或家庭网络和互联网(这样流量就会通过您的家庭网络访问互联网,如果您外出时想使用家里的 IP 地址,这将非常有用)。配置完成后,设置将被保存,如果证书尚不存在,则会生成证书,并导出配置文件供 OpenVPN 客户端使用。

情况 2:网络拓扑图上有两个或多个路由器

如果你有一个来自网络服务提供商的调制解调器路由器,并且在其后面还有一个处于中立模式的TP-Link路由器,情况就会稍微复杂一些。和之前一样, 您需要在内部路由器(Router2)上配置 OpenVPN。:协议、端口、VPN 子网、访问类型、配置文件生成和导出。

那么你必须 打开主调制解调器/路由器(Router1)上的端口 使用虚拟服务器或端口转发功能,将流量转发到路由器2的IP地址。请务必确保内部端口与配置的VPN服务端口匹配,并记住您使用的外部端口。

然后,在Router2导出的.ovpn文件中, 您需要编辑两条关键信息。将远程地址更改为路由器1的WAN IP地址(即您的ISP提供的公网IP地址),并将端口号替换为您已转发的外部端口号。保存文件后,即可在外部客户端上使用它。

在华硕路由器上配置 OpenVPN 服务器

在安装了 AsusWRT 的华硕路由器上,安装过程也相当有指导性。访问 Web 管理界面(http://www.asusrouter.com 或路由器的 LAN IP 地址)后, 转到 VPN > VPN 服务器,然后选择 OpenVPN根据固件的不同,界面可能会略有差异,但逻辑类似。

您将能够设置 服务器端口(建议使用 1024 到 65535 之间的端口)RSA密钥长度以及客户端是否仅将VPN用于局域网还是也用于互联网访问也是需要考虑的因素。默认情况下,OpenVPN客户端凭据通常是路由器本身的凭据,但您可以添加特定帐户以增强安全性。

设置完成后,激活 OpenVPN 服务器。 导出 .ovpn 配置文件该文件已包含嵌入式证书和基本参数。每当您更改相关服务器配置时,建议重新导出该文件,以保持客户端同步。

使用 Omada (TP-Link) 的 OpenVPN 服务器

在由 Omada Controller 管理的环境中,您可以创建以下类型的 VPN 策略 VPN 服务器 – OpenVPN 用于客户端到站点通信。您可以为其命名、启用它、选择隧道模式(拆分或完整)、协议(TCP/UDP)、端口、本地身份验证方法以及要分配给客户端的 IP 地址范围。

您还可以定义 客户端将使用的主 DNS 和辅助 DNS (例如 8.8.8.8 和 8.8.4.4,或者您内部网络中的 IP 地址)。保存策略后,系统将创建与该服务器关联的 VPN 用户(包括帐户名、密码和 OpenVPN 类型)。

然后导出该策略的 .ovpn 文件, 它可以导入到 OpenVPN 桌面或移动客户端中。如果出现问题,有时最好使用 OpenVPN“社区”客户端而不是 OpenVPN Connect,并调整数据加密等参数(例如添加 AES-128-CBC)或将远程 IP 更改为站点的实际公共 IP。

在 GNU/Linux 上搭建高级 OpenVPN 服务器

如果您不想依赖路由器的界面,而是想要完全控制路由器,您可以…… 在 Linux(例如 Debian)上搭建你自己的 OpenVPN 服务器 然后在路由器上创建一条指向该服务器的静态路由,以便本地网络可以看到 VPN 客户端。

在 Debian 系统上进行基本的 OpenVPN 安装

在 Debian 或其他衍生发行版上,安装过程包括更新系统并从软件仓库安装 OpenVPN 软件包。之后即可使用简单的 apt 命令。 下载 OpenVPN 二进制文件及其依赖项使其准备好开始生成证书和配置文件。

使用 Easy-RSA 3 生成证书

为了方便地管理 PKI(公钥基础设施),通常使用 Easy-RSA 3 可自动创建 CA、服务器证书和客户端证书。它通常是从 GitHub 下载,解压缩后,然后在其主目录中进行工作。

配置的核心在于该文件 瓦尔在这里,您可以定义使用 RSA 还是椭圆曲线(EASYRSA_ALGO)、曲线类型(EASYRSA_CURVE)、哈希值(EASYRSA_DIGEST)、过期时间,以及是否需要完整的可分辨名称 (DNN) 或仅 CN。在此处使用 secp521r1 和 SHA-512 调整 EC。 它能为你构建一个非常强大的加密基础。.

变量配置完成后,使用相应的命令(init-pki)初始化 PKI,创建 CA(可以设置私钥密码,也可以不设置)。 证书请求(gen-req)由服务器和每个客户端生成。然后根据情况以服务器或客户端身份对它们进行签名(sign-req)。

接下来,最好将文件整理到不同的文件夹中: 服务器端一个,每个客户端一个。其中包含 .crt 文件、.key 文件、ca.crt 文件以及您将用于 tls-crypt 的 ta.key 密钥。这样可以大大简化后续创建 .conf/.ovpn 文件的过程,避免出现混乱。

TLS加密密钥和Diffie-Hellman参数

使用最新版本的 OpenVPN 时,在使用 ECDHE 时无需创建特定的 Diffie-Hellman 参数文件,因此您可以 在服务器配置中选择 dh none关键是要生成一个对称密钥,该密钥将与 tls-crypt 一起使用(例如,ta.key),您需要复制该密钥。 服务器和客户端完全相同.

安全 OpenVPN 服务器配置示例

Linux 系统中典型的服务器配置文件会包含如下指令: 端口 11949、proto udp 和 dev tun指定端口、协议和虚拟接口类型。然后,引用证书和密钥:ca、cert、key、dh(或 dh none)和 tls-crypt ta.key。

在安全设置部分,包含以下参数: 密码 AES-256-GCM、tls-ciphersuites 和 tls-cipher(支持安全的 TLS 1.2/1.3 套件)、ecdh-curve secp521r1 和 tls-version-min 1.2也可以禁用重新协商(reneg-sec 0),如果使用非 AEAD 模式,则可以指定 SHA512 身份验证。

网络部分将定义拓扑结构(子网)和 虚拟子网,例如服务器 10.8.0.0 255.255.255.0除了使用 ipp.txt 文件来维护特定客户端的静态 IP 地址外,还可以通过推送路由(route 192.168.X.0 255.255.255.0)、强制所有流量通过 VPN(redirect-gateway)以及通过 dhcp-option 提供特定的 DNS 服务器来访问本地网络。

还可以启用客户端之间的通信,并可以使用 keepalive 来检测中断。 限制同时连接的最大数量最后,为了安全起见,OpenVPN 以无特权用户/组运行,启用了密钥和接口持久性,并定义了具有中等详细程度的日志路径。

OpenVPN客户端配置(PC、Linux、Windows)

客户端需要一个包含如下指令的 .ovpn 或 .conf 文件: 客户端、开发环境 tun、UDP 协议和远程 指向服务器的域名或公网 IP 地址以及您正在使用的端口。通常启用 `resolv-retry infinite`、`nobind` 和 `persist-key/tun` 可以提高稳定性。

关于凭证,客户将引用 CA、其自身的证书和密钥,以及用于TLS加密的TA.key。加密、认证和 TLS 参数必须与服务器端的参数匹配;如果客户端支持 TLS 1.3,则添加相关的 tls-cipher 套件;如果仅支持 TLS 1.2,则使用等效的 tls-cipher。出现问题时,日志级别将调整为 verb 3 或更高。

允许本地网络访问 VPN 客户端

如果您在局域网内的计算机(例如树莓派、Debian 服务器等)上设置 OpenVPN 服务器,而不是直接在路由器上设置, 您需要在路由器上创建一条静态路由。 这样 10.8.0.0/24 网络(或您使用的网络)就可以访问。

思路很简单:在路由器中指定 10.8.0.0/24 子网的网关是 OpenVPN 服务器的 LAN IP 地址。 (例如,192.168.1.100)。因此,当本地网络上的设备想要响应 VPN 客户端时,它会将流量发送到服务器,然后由服务器处理隧道内的路由。

在 Android 和其他移动设备上配置 OpenVPN 客户端

路由器与 OpenVPN

在安卓系统上,您可以使用官方的 OpenVPN 应用,或者使用兼容新功能(TLS 1.3、现代数据加密等)的更高级的客户端。首先是…… 将包含 ca.crt(客户端证书和密钥)、ta.key 和 .ovpn 文件的文件夹复制到手机内存中。.

然后,从应用程序中导入配置文件(.ovpn 文件)。 系统会检查加载的参数是否与服务器上的参数匹配。 设置已保存。之后,只需点击该配置文件即可建立连接;如果一切正常,您会看到手机从虚拟子网获取了 IP 地址,并且可以访问远程资源。

常见的连接问题及其检测方法

首次设置 OpenVPN 时,日志中出现错误是很常见的。如果客户端指示 无法解析服务器域名(未知主机)检查远程名称和动态 DNS 服务的状态;作为快速测试,使用公共 IP 直接连接以排除解析问题。

类似的消息 无法确定 IPv4/IPv6 协议 这些消息表明无法解析出有效的地址;系统会再次检查主机和 DNS 记录。收到的其他 SIGUSR1[soft,init_instance] 类型的消息通常表示在先前失败后需要重试,例如证书密码错误或路由上的防火墙问题。

如果客户端无限期地保持 WAIT 状态而没有进展,通常情况下 路由器上的端口未正确打开/转发,或者 OpenVPN 服务器未运行。关键是要检查端口转发,并在服务器上验证是否至少出现“初始化序列完成”消息。

公社问题

Windows 有时会显示警告,指出用户和组选项尚未实现; 这些并非严重错误,只是可以从 .ovpn 文件中删除的 Linux 指令。 如果它们困扰着你。另一个常见的警告是忽略客户端模式下的 dh,因为 Diffie-Hellman 仅属于服务器配置。

错误例如 tls-crypt 解包错误或 TLS 错误:本地/远程 TLS 密钥不同步 这通常表示服务器和客户端的 ta.key 文件不匹配,或者复制有误。检查并重新复制此密钥通常可以解决问题。

如果您看到有关 MTU(链路 MTU 不一致)或压缩(comp-lzo)的警告,那很可能是 服务器和客户端的压缩设置或最大数据包大小不匹配。如今,出于安全考虑,最好尽可能完全禁用两端的压缩功能。

通用TLS握手失败本质上表明: 尚未找到通用的密码组合,或者存在不兼容的 TLS 参数。检查服务器和客户端上的密码、数据密码、TLS 密码(套件)和最低 TLS 版本通常会发现问题所在。

好的 VPN 应该具备哪些条件?除了 OpenVPN 之外,还有哪些替代方案?

在选择 VPN(或底层使用 OpenVPN 的服务)时,应考虑多个因素。一个好的服务应该 提供对 IP 地址和协议的强加密,并保护 cookie 和浏览历史记录。 如果可能,请为帐户访问启用双因素身份验证。

特点如 终止开关、DNS泄漏拦截、严格的零日志策略,以及针对流媒体或P2P优化的服务器 这些都是很有吸引力的优势。从操作层面来说,这款应用易于使用,而且客服响应迅速,这也是一个非常重要的细节。

除了 OpenVPN 之外,还有其他技术和服务: WireGuard(速度非常快且现代化)、IPsec(企业环境中的经典选择)或 NordVPN、ProtonVPN、ExpressVPN、Cyber​​Ghost、Surfshark 等解决方案。 它们将所有功能都与自己的应用程序捆绑在一起。此外,还有像 Tinc 这样的免费替代方案,它提供加​​密隧道和极高的灵活性,非常适合复杂的网络或将 VPN 集成到资源有限的路由器和 NAS 设备中。

正确部署后,路由器或家庭服务器上的基于 OpenVPN 的 VPN 即可正常工作。 它可以为您提供安全的远程网络访问、强大的加密功能、良好的速度,以及一次性保护所有设备的便利。只要你注意证书、加密、路由和端口的配置,并验证你的连接具有公共 IP,且 CG-NAT 没有阻止你的路径。