Vigorous Pro

The world can always use more heroes.

  1. 1. 前言
  2. 2. 获取配置文件
    1. 2.1. 利用 wgcf 获取配置
  3. 3. 配置 OpenWrt
    1. 3.1. 安装组件
    2. 3.2. 配置 Wireguard
    3. 3.3. 配置内网
    4. 3.4. 启用自动地址配置和路由器发现
    5. 3.5. 修改内网地址前缀(ULA)
  4. 4. 最终效果
  5. 5. 参考内容

说起来,其实这算是一篇拖更了蛮久的文章了。虽然没有 IPv6 对于日常使用完全没有任何影响,但是就还算总想折腾一下,给家里添置上 IPv6。我将会说明如何利用 Cloudflare WARP 为家中添置 IPv6 网络。

前言

最初的最初,其实是想等运营商给分配 IPv6 的,但是等了几年也没有任何的进展。

既然等分配的路子行不通,那我就走 HE 的 Tunnel 吧,奈何 KT 和 HE 的线路全都要绕美国。 直到 Cloudflare 出了 WARP 也总算是有了个比较好的解决方案了。 ˋ( ° ▽、° )

781c7e3164bec402569302054a3acb64.png

获取配置文件

获取配置文件的方式有蛮多种的,其他使用过的工具会放在文章末尾参考链接的部分

利用 wgcf 获取配置

这里以 @ViRb3 大佬的 wgcf 工具 Github 为例

此处以 Windows 为例,不同操作系统操作方式相同

下载二进制程序后,执行 ./wgcf register 来创建账号, 看到 Successfully created Cloudflare Warp account 说明账号创建成功了。

192f2177a35b58d01a395df85b7036e7.png

接下来,我们需要执行 ./wgcf generate 来生成 Wireguard 配置文件

8045095b900ca152482248237af22348.png

正常情况下,我们就得到了一个名为 wgcf-profile.conf 的配置文件

204c06a815d588667641295a33000725.png

配置 OpenWrt

安装组件

此处以 19.07.7 版本的 OpenWrt 为例

打开 OpenWrt 后台,安装 luci-app-wireguardkmod-ipt-nat6

1bf6da4dc65e1d5a268ba8e11276cf83.png

安装完成后,重启 OpenWrt 后

配置 Wireguard

打开 Network - Interfaces, 点击 Add new interface... 添加 Wireguard

d0dd3b2ca8d9be8890d46549147e24cd.png

填写名称,协议选择 WireGuard VPN, 点击 Create interfaces

9e39a1b040be97fac2e72fba2422103b.png

按照,刚刚生成的文件 wgcf-profile.conf,填写 Private KeyIP Addresses, IP 的部分只填写 IPv6 即可

26bda9ff50f4903f6687e1f265f9325f.png

点击 Firewall Settings 选项卡, 添加至 wan 的防火墙组

3640fc2a672e28e6029e48f64e2e4086.png

点击 Peers 选项卡, 点击 Add peer, 按照,刚刚生成的文件 wgcf-profile.conf,填写 Public KeyEndpoint Host 以及 Endpoint Port
因为我们只需要他访问 IPv6 网络,所以 Allowed IPs 填写 ::/0
勾选 Route Allowed IPs

9250a6c51a29c227e350943c4362e814.png

点击 Save , Save & Apply

配置内网

此时,你会发现通过路由器,你已经可以访问 IPv6 但内网的设备还是不行

e7c77a3313e23ab5f8d0addd6fd875db.png

打开 Network - Interfaces, 点击 LAN, 打开 DHCP Server - IPv6 Settings 选项卡

Router Advertisement-Service 设置为 server mode
DHCPv6-Service 设置为 disabled
NDP-Proxy 设置为 disabled
勾选 Always announce default router
保存设置

a13c12e87d1f4ffc08191770d281f752.png

启用自动地址配置和路由器发现

SSH 连接 OpenWrt 后运行该指令以启用自动地址配置和路由器发现

1
2
echo "net.ipv6.conf.default.accept_ra=2" >> /etc/sysctl.conf
echo "net.ipv6.conf.all.accept_ra=2" >> /etc/sysctl.conf

修改内网地址前缀(ULA)

修改内网地址前缀,避免一些设备以为我们没有 IPv6 网络

1
2
3
4
uci set network.globals.ula_prefix="$(uci get network.globals.ula_prefix | sed 's/^./d/')"
uci commit network
uci set dhcp.lan.ra_default='1'
uci commit dhcp

设置防火墙

1
ip6tables -t nat -I POSTROUTING -s `uci get network.globals.ula_prefix` -j MASQUERADE

重启网络

1
/etc/init.d/network restart

最终效果

此时,我们便能访问 IPv6 网络啦~ ( ̄y▽, ̄)╭

e4b0fefadf8ffe53414ccbed26734501.png

参考内容

本文作者 : Edison Jwa
本文使用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议
本文链接 : https://www.wevg.org/archives/cloudflare-with-openwrt-as-ipv6/

本文最后更新于 天前,文中所描述的信息可能已发生改变