跳到主要内容

DD-WRT 是由社区打造的固件,用来替换路由器出厂自带的软件。多年来,当路由器缺少 VPN 客户端之类的功能时,它几乎是标准答案,如今仍支撑着家庭和小办公室里大量基于 Broadcom 的老硬件。如果你在搜索“DD-WRT VPN”,大概处于两种情形之一:你已经在用 DD-WRT,想加一条隧道;或者你在犹豫要不要给一台旧路由器刷机。

本文两种情形都涉及。它会讲挑选固件版本、刷机的风险、填写 OpenVPN 客户端页面、添加断网保护,以及排查常见问题。各版本的菜单名称不同,请把步骤当作通用模式。我们不保证某项 VPN 服务一定能在你的路由器上使用:XPASS 尚未验证过路由器方案,受支持的方式是免费的 VPNclient 应用。想先看一份不绑定固件的概述,请阅读路由器 VPN 指南。

到底该不该这么做

刷第三方固件是一个需要权衡的决定,不是默认选项。开始之前,请诚实地衡量一下。

可以考虑的理由

  • 路由器很旧,但仍能用,原厂固件没有 VPN 客户端,或者已经不再更新。
  • 想让全家共用一条隧道,而且有些设备装不了应用。
  • 你习惯仔细阅读说明,并且能从失误中恢复。

应该打住的理由

  • 你的路由器已经有 VPN 客户端页面,那就用它。
  • 这台路由器是唯一的上网通道,而你承受不起停机。
  • 处理器太弱。加密很吃 CPU,老路由器经隧道后可能只能达到线路速度的一小部分。
  • 在每台设备上用应用就能覆盖你在意的一切。路由器 VPN 与 VPN 应用的对比一文讲了其中的取舍。

还要注意,老固件的维护很慢,DD-WRT 版本的更新可能不频繁,所以要考虑一台无人看管的路由器挂在你网络里的安全问题。

按确切硬件挑选固件版本

后面的一切都取决于固件与硬件是否匹配。DD-WRT 不是单个文件,而是一个版本家族,选错版本是路由器变砖最常见的原因。

  1. 从标签上确认型号和硬件版本。 型号后缀如 v2 可能意味着芯片不同。
  2. 在项目的路由器数据库里查找你的型号。 条目会说明是否受支持、推荐哪个版本,以及首次刷机是否需要特殊步骤。
  3. 下载前阅读型号专属的说明和论坛帖子。 它们常常提醒需要避开的硬件版本,以及特定的重置顺序或分阶段安装之类的步骤。
  4. 检查版本的大小和内容。 为小存储设备准备的精简版本常常省去一些功能。你需要的是明确列出含有 OpenVPN 客户端的版本。如果你型号的推荐版本不包含它,那么这块硬件可能装不下 VPN 客户端。
  5. 确认版本足够新,处于合理维护的状态,并阅读其中已知问题的说明。
问题 去哪里看 为什么重要
我的确切型号受支持吗? 路由器数据库 匹配错误可能导致设备变砖
该用哪个版本? 数据库条目和说明 各版本功能不同
是否含 OpenVPN? 版本描述 没有就没有客户端
存储空间够吗? 硬件规格 小设备装不下大版本
出问题怎么恢复? 型号专属说明 开始之前先知道退路

只要有一行得不到明确的“是”,就不要刷机。

刷机前的准备

准备工作是预防问题的地方。

  • 备份原有设置,通过现有固件完成;如果运营商使用用户名和密码拨号,也记下你的上网登录信息。
  • 使用有线连接,从电脑连到路由器。千万不要通过 Wi-Fi 刷机。
  • 保证电力稳定。 刷机中途被打断可能让路由器无法使用。不要在雷雨天或插座不靠谱的时候进行。
  • 从官方项目下载文件,仔细核对文件名,并尽量保留一份原厂固件。
  • 阅读你的型号的恢复步骤,例如路由器的恢复模式,或串口、引导程序的方法。在需要之前就要了解。
  • 安排好停机时间。 留出一段家人可以离线的时间。

刷机之后,按该型号的说明重置配置并设置新的管理员密码。从头开始可以避免旧固件遗留设置造成的怪异行为。立即设置强管理员密码,因为管理页面可能使用 RFC 1918 所述的私有地址,网络里的任何人仍然可以访问它。

VPN 服务必须提供什么

路由器客户端使用的是原始信息,而不是应用登录。DD-WRT 内置的客户端是 OpenVPN,所以你的服务必须能提供 OpenVPN 形式的信息:服务器地址与端口、连接类型,通常还有证书或密钥,有时还有用户名和密码。OpenVPN 如何工作一文解释了这些部分的含义,OpenVPN 社区资源介绍了配置文件的格式。

对 XPASS 而言,“My Pass”页面显示适用于你通行证的设置说明和连接方式,应用用页面上的用户名和密码登录。我们没有测试过 DD-WRT,所以不要想当然地认为这些信息符合路由器的要求。任何密钥或配置文件都要当作密码对待;到公开论坛求助时,先把机密内容去掉。

一些较新的版本也提供 WireGuard。如果你的版本有,WireGuard 官网解释了相关概念,但原则相同:只有在服务为其提供了信息时才使用。

填写 OpenVPN 客户端页面

在典型的版本中,客户端位于 Services 菜单下名为 VPN 的标签页。措辞和布局各有差异,请按模式操作。

  1. 启用 OpenVPN 客户端,使用 Start 选项。
  2. 服务器 IP 或名称及端口。 从你的信息中原样复制。
  3. 隧道设备(Tunnel device)。 路由式 VPN 通常选 TUN。按服务的说明选择。
  4. 隧道协议(Tunnel protocol)。 按要求选 UDP 或 TCP。UDP 通常更快,TCP 有时更能适应限制较严的网络。OpenVPN 的 TCP 与 UDP一文说明了区别。
  5. 加密算法与哈希。 与你的信息中的值一致。不匹配是失败的常见原因。
  6. 用户名密码认证。 如果服务使用用户名和密码,启用并填写。
  7. 证书与密钥。 如果服务提供,就把 CA 证书、客户端证书和密钥粘贴到对应字段。注意不要截断行或多出空格。
  8. 附加配置。 许多版本有一个文本框,用于填入服务配置文件里的额外指令。只粘贴你看得懂的部分。
  9. NAT 与防火墙选项。 启用 NAT,让 LAN 中的设备共用隧道地址,并保持防火墙保护开启。
  10. 保存并应用。 在状态页面查看是否显示已连接,以及是否有隧道地址。

如果状态停在“连接中”,请看日志,通常会显示原因:认证失败、证书错误或连接超时。

添加断网保护

默认情况下,如果隧道断开,DD-WRT 会回落到正常的上网线路。原本受保护的流量突然失去保护,而你可能毫无察觉。断网保护改变了这一点:隧道不通时,LAN 的流量被禁止外出。

通常的做法是在“Administration”下的“Commands”页面添加一条防火墙规则,并保存为防火墙脚本,使其每次启动时都运行。通俗地讲,就是丢弃从 LAN 经正常 WAN 接口转发出去的数据包,只允许隧道接口承载它们。接口名称因硬件而异(LAN 网桥常叫 br0,隧道常叫 tun0,WAN 的名称各不相同),所以复制网上的示例之前,请先看看你自己路由器上的接口。

一个简单的写法如下,其中的名称必须换成与你的路由器相符的:

iptables -I FORWARD -i br0 -o WAN_INTERFACE -j DROP

重要的注意事项:

  • 在你有有线连接时测试,因为错误的规则可能把你自己挡在外面。
  • 留好删除规则的办法,要么清空脚本,要么重置。
  • 路由器自身发往 VPN 服务器的流量仍然要走 WAN 接口。上面的规则只影响被转发的流量。
  • 记住取舍:不稳定的隧道会让你断网,而不是悄悄泄露。VPN 断网保护一文介绍了这个概念。

DNS、MTU 与测试

DNS。 如果设备仍向运营商请求域名解析,你访问的目的地依然会被它看到。在 VPN 或设置页面里,把 DNS 设为 VPN 服务推荐的服务器,或使用能经隧道访问的解析器,然后测试。

MTU。 隧道会增加开销。如果网页只加载一半或大文件下载停滞,就一点点调小隧道的 MTU。其机制见 RFC 1191。

测试清单。

  1. 状态页显示隧道已连接。
  2. LAN 中的设备在隧道开启和关闭时显示的公网 IP 不同。
  3. DNS 测试显示的解析器来自隧道路径。
  4. 如果你添加了断网保护,停止隧道会切断上网。
  5. 重启之后,隧道无需手动操作就能恢复。
  6. 在有线连接下,关闭再开启隧道各测一次速度,下降的幅度在可接受范围内。

排查问题

认证失败。 重新输入用户名和密码,检查证书与密钥是否完整,并确认它们属于你所选的隧道类型。

停在“连接中”。 检查路由器的日期和时间,因为证书需要准确的时钟。核对服务器地址和端口是否正确,如果你的信息允许,试试另一种协议。

已连接但没有网络。 检查 NAT 与防火墙选项、DNS 设置和断网保护规则。同样的症状在其他设备上也会出现。

非常慢。 CPU 多半就是上限。如果服务允许,试试更轻量的加密算法,或把任务交给应用。

刷机后路由器不稳定。 按该型号的重置说明操作,必要时重新刷入推荐版本,不要把旧设置和新固件混用。

进不了网页管理界面。 使用有线连接,并按该型号说明中的重置或恢复流程操作。

局限与预期

  • 路由器上的隧道只覆盖家里的设备,出了门的笔记本需要自己的应用。
  • 它不能阻止钓鱼、弱密码或恶意软件,也不会让你匿名。
  • 旧硬件限制速度。不要指望几年前设计的路由器有很高的吞吐量。
  • 缺少维护的固件需要格外小心:使用强管理员密码,不需要时不开远程管理,也不开用不到的服务。
  • 网站和应用依然有各自的规则,有些会不信任 VPN 地址。

总结

在 DD-WRT 上设置 VPN,先要决定刷机是否值得,再把固件版本与你的确切硬件对应起来,并确认它含有 OpenVPN 客户端。认真做好准备,用 VPN 服务能提供的信息填写客户端页面,开启 NAT 并加上断网保护,然后测试 IP、DNS 和重启后的表现。预期路由器的 CPU 会决定速度上限。XPASS 尚未验证过路由器方案。

如果在设备上用应用更省事,价格页面说明了固定天数的预付通行证是如何运作的。

常见问题

要在路由器上用 VPN,就必须刷 DD-WRT 吗?

只有当原厂固件没有 VPN 客户端、而你又想要时才需要。刷机会替换厂商的软件,可能失败,还可能失去保修支持。如果你的路由器已有客户端页面,或者在每台设备上用应用就够了,也许根本不需要 DD-WRT。

哪种 DD-WRT 固件版本带有 OpenVPN 客户端?

取决于路由器型号和固件版本的大小。为存储空间小的设备准备的精简版本常常不含 OpenVPN,较大的版本则带有。下载前请在项目的路由器数据库中核对你的确切型号和硬件版本,并查看该版本的说明。

刷机前怎么知道路由器状态合适?

按路由器数据库核对型号和硬件版本,阅读该型号专属的说明,备份原有配置,使用有线连接,并确保整个过程中不会断电。

XPASS 能在 DD-WRT 上使用吗?

XPASS 尚未验证过路由器方案,因此不能作出保证。受支持的方式是 iOS、Android、Windows 和 macOS 上的 VPNclient 应用,“My Pass”页面会显示适用于你通行证的连接信息和方式。

为什么 VPN 断了,网络仍然能用?

除非你添加一条防火墙规则,禁止在隧道之外把流量转发到互联网,否则路由器会回落到正常线路。加上这样的规则就有了断网保护,代价是隧道一断就没有网络。

关于作者

Bob Kanokphon Thongdee,XPASS VPN 创始人

Bob Kanokphon Thongdee

  • XPASS VPN 创始人
  • eSIMonline.asia 联合创始人
  • 7 年以上网络营销经验
  • Cojourney Visa 与 Cojourney Travel 创始人

短途出行或忙碌的一个月,需要 VPN?

XPASS 提供按天数计算的预付通行证。一次付款,不会自动续费。

查看通行证

继续阅读

设备指南

如何在路由器上设置 VPN

一份不绑定具体固件的通用指南:设置前先检查什么、常见设置步骤、DNS 与 kill switch、旅行路由器和常见故障处理。

阅读约 7 分钟

VPN 基础

路由器 VPN 还是 VPN 应用:哪种方式适合你的家?

VPN 应该装在路由器上,还是装在每台设备上?本文从速度、智能家居设备、Mesh Wi-Fi、分流和日常便利性几个方面比较两种做法。

阅读约 10 分钟

VPN 安全

OpenVPN 详解:TCP、UDP 与安全性

OpenVPN 如何建立隧道、TCP 与 UDP 为何手感不同、怎样的配置才算安全,以及连接失败时如何一步步排查。

阅读约 9 分钟

VPN 安全

OpenVPN 的 TCP 与 UDP 有什么区别?

OpenVPN 可以通过 UDP 或 TCP 传输隧道数据。本文说明两者的区别、默认用 UDP 的原因、什么时候该用 TCP,以及怎样自己动手测试。

阅读约 9 分钟

VPN 安全

什么是 VPN 断网保护(Kill Switch)?

Kill Switch 能防止 VPN 断开时设备悄悄改用不受保护的连接。本文介绍它的原理,以及如何检查它是否有效。

阅读约 12 分钟