Brook Shiliew Cheap Zhi Meeting Nan mitmproxy client Network Activity Monitor iOS Old App Downloader SSH Terminal Subtitle 菜根谭 Socks5 Configurator IPvBar File Link Markdown Editor IP AI nami joker brook ipio nico z zoro hancock mad httpserver google hosts

Brook OpenWRT: 完美支持 IPv4/IPv6/TCP/UDP

Updated at: 2025-02-19

新版:在 OpenWrt One 上使用 brook

img

准备 OpenWrt 设备

自行组装 OpenWrt,可以使用旧电脑,一般需要 2 个或多个网口,最好带无线网卡。

向 OpenWRT 硬盘写入系统

  1. 在电脑上根据自己设备情况下载 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
    
  2. 先制作一个 Ubuntu 启动 U 盘,插入 OpenWRT 设备,从 U 盘启动(比如 F11 或 Delete 或 F1-F12)

  3. 把电脑和路由用网线连接起来,并且 IP 改成相同的网段,然后把 openwrt.img.gz 从电脑复制到路由里

    scp xxx@xxx:/path/to/openwrt.img.gz ./
    
  4. 查看一下路由的硬盘

    lsblk
    
  5. 用 root 写入硬盘

    gunzip -c openwrt.img.gz | dd of=/dev/sda bs=4M
    
  6. 关机,拔掉连接电脑的网线,拔掉 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 如果路由有多个网口,挨个尝试,直到某个能访问。

移除 ULA

  1. Network - Interfaces - Global network options - IPv6 ULA-Prefix - Save & Apply

配置 WAN

  1. 将调制解调器与路由的另外一个口连接,如果不知道是哪个口,挨个试,在路由管理页面看看 wan 有没有数据流动。
  2. Network - Interfaces - wan - Edit - General Settings - Protocol: PPPoE - Switch protocol - username/password - Save - Save & Apply
  3. 如果此时自动创建出了一个 wan_6,就把之前的 wan6 删掉。Save & Apply

如果这里没有获取到 IPv6 PD。如果你的调制解调器也有路由的功能,那么需要其支持下发 PD,否则就让 OpenWRT 拨号来获取 PD。否则请联系运营商,对于所有 Relay,NAT6 等非 Native 方案说不。

配置 LAN

  1. Network - Interfaces - lan - Edit - Advanced Settings - IPv6 assignment length: 64
  2. Network - Interfaces - lan - Edit - Advanced Settings - DHCP Server - IPv6 RA Settings - RA Flags: None - Save - Save & Apply

在电脑上测试下网络

在电脑安装 brook CLI

此时把电脑重新插拔一下网线,自动获取 IP,应该可以获取到 GUA,DNS 应该也是 GUA。如果此时仍获取到一个 ULA,应该会在下次路由重启后消失

brook dnsclient -d txthinking.com -t A -s 192.168.2.1:53
brook dnsclient -d txthinking.com -t AAAA -s 192.168.2.1:53
brook dnsclient -d txthinking.com -t A -s [xxx]:53
brook dnsclient -d txthinking.com -t AAAA -s [xxx]:53

xxx 是你电脑获取到的 IPv6 GUA DNS

brook echoclient -s 137.184.237.95:7777
brook echoclient -s [2604:a880:4:1d0::4cf:b000]:7777

扩容

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

重启

在 OpenWrt 里测试下网络

下载 brook CLI 重命名为 brook 并复制到 OpenWrt

brook dnsclient -d txthinking.com -t A -s 127.0.0.1:53
brook dnsclient -d txthinking.com -t AAAA -s 127.0.0.1:53
brook dnsclient -d txthinking.com -t A -s [::1]:53
brook dnsclient -d txthinking.com -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://...'

安装依赖

opkg update
opkg install ca-bundle kmod-nf-socket kmod-nft-socket kmod-nf-tproxy kmod-nft-tproxy procps-ng-ps

运行 brook.openwrt

下载 brook.openwrt CLI 重命名为 brook.openwrt 并复制到 OpenWrt

brook.openwrt --link 'brook://...'

在电脑上测试下网络

看看你的电脑上分配的两个 DNS,一个 IPv4, 一个 IPv6

brook dnsclient -d txthinking.com -t A -s 192.168.2.1:53
brook dnsclient -d txthinking.com -t AAAA -s 192.168.2.1:53
brook dnsclient -d txthinking.com -t A -s [xxx]:53
brook dnsclient -d txthinking.com -t AAAA -s [xxx]:53

xxx 是你电脑获取到的 IPv6 GUA DNS

测试 IPv4 和 IPv6,TCP 和 UDP,当然你的 Brook Server 应该支持双栈

brook echoclient -s 137.184.237.95:7777
brook echoclient -s [2604:a880:4:1d0::4cf:b000]:7777
© TxThinking, Inc. All Rights Reserved.