Updated at: 2024-02-07
在电脑上根据自己设备情况下载 23.05.2
版本的 OpenWRT,比如我用的 macOS
不同 OpenWRT 版本可能变化很大,建议使用我用的这个版本
curl -o openwrt.img.gz https://downloads.openwrt.org/releases/23.05.2/targets/x86/64/openwrt-23.05.2-x86-64-generic-ext4-combined-efi.img.gz
先制作一个 Ubuntu 启动 U 盘,插入 OpenWRT 设备,从 U 盘启动(比如 F11 或 Delete 或 F1-F12)
把电脑和路由用网线连接起来,并且 IP 改成相同的网段,然后把 openwrt.img.gz 从电脑复制到路由里
scp xxx@xxx:/path/to/openwrt.img.gz ./
查看一下路由的硬盘
lsblk
用 root 写入硬盘
gunzip -c openwrt.img.gz | dd of=/dev/sda bs=4M
关机,拔掉连接电脑的网线,拔掉 U 盘,开机
uci set network.lan.ipaddr=192.168.2.1
uci commit
顺便移除 Serial console
vim /boot/grub/grub.cfg
移除这个,不然开机会慢
console=ttyS0,115200n8
重启或断电重启
把电脑的 IP 改成路由同网段,然后访问 http://192.168.2.1 如果路由有多个网口,挨个尝试,直到某个能访问。
如果这里没有获取到 IPv6 PD。如果你的调制解调器也有路由的功能,那么需要其支持下发 PD,否则就让 OpenWRT 拨号来获取 PD。否则请联系运营商,对于所有 Relay,NAT6 等非 Native 方案说不。
此时把电脑重新插拔一下网线,自动获取 IP,应该可以获取到 GUA,DNS 应该也是 GUA。如果此时仍获取到一个 ULA,应该会在下次路由重启后消失
brook dnsclient -d http3.ooo -t A -s 192.168.2.1:53
brook dnsclient -d http3.ooo -t AAAA -s 192.168.2.1:53
brook dnsclient -d http3.ooo -t A -s [xxx]:53
brook dnsclient -d http3.ooo -t AAAA -s [xxx]:53
brook echoclient -s 137.184.237.95:7777
brook echoclient -s [2604:a880:4:1d0::4cf:b000]:7777
sed -i 's/https\:\/\/downloads.openwrt.org\//https\:\/\/mirrors.cloud.tencent.com\/openwrt\//g' /etc/opkg/distfeeds.conf
opkg update
opkg install parted losetup resize2fs
wget -U "" -O expand-root.sh "https://openwrt.org/_export/code/docs/guide-user/advanced/expand_root?codeblock=0"
. ./expand-root.sh
重启
brook dnsclient -d http3.ooo -t A -s 127.0.0.1:53
brook dnsclient -d http3.ooo -t AAAA -s 127.0.0.1:53
brook dnsclient -d http3.ooo -t A -s [::1]:53
brook dnsclient -d http3.ooo -t AAAA -s [::1]:53
brook echoclient -s 137.184.237.95:7777
brook echoclient -s [2604:a880:4:1d0::4cf:b000]:7777
也可以测试一下你的 Brook Server
brook testbrook --link 'brook://...'
Brook.ipk 会占用 :9999, 127.0.0.1:8888, [::1]:8888, 127.0.0.1:5353 端口
然后访问 http://192.168.2.1:9999 控制台
看看你的电脑上分配的两个 DNS,一个 IPv4, 一个 IPv6
brook dnsclient -d http3.ooo -t A -s 192.168.2.1:53
brook dnsclient -d http3.ooo -t AAAA -s 192.168.2.1:53
brook dnsclient -d http3.ooo -t A -s [xxx]:53
brook dnsclient -d http3.ooo -t AAAA -s [xxx]:53
测试 IPv4 和 IPv6,TCP 和 UDP,当然你的 Brook Server 应该支持双栈
brook echoclient -s 137.184.237.95:7777
brook echoclient -s [2604:a880:4:1d0::4cf:b000]:7777