树莓派搭建科学上网 WiFi
文章目录
免责声明: 本文内容仅供学习研究使用,请勿用于非法用途。文中提到的所有软件或产品均为研究用途, 本人从未直接或间接从中获利。 所有搭建过程均由 Claude Code 全自动完成,并由 Claude Code 整理此文。
想让家里多个设备都能科学上网,逐台安装客户端、配置节点既繁琐,有些设备还根本装不了。更省心的做法:让树莓派新建一个专用 WiFi,设备连上即可科学上网,无需安装任何客户端、无需任何配置。
家里原有的路由器和 WiFi 完全不动,树莓派即使出故障也不影响正常上网。
网络结构
一般家庭网络是这样:所有设备连主路由,主路由直接连接互联网。
本方案在此基础上加一台树莓派,让它新建一个独立的 WiFi 网络:主路由通过网线为树莓派提供互联网上行,树莓派则用自己的无线网卡发出一个专用热点,接管这个热点上的流量并完成科学上网。正常上网走主路由的主 WiFi,需要科学上网时连树莓派的专用 WiFi,两个网络并存、互不干扰:
互联网
│
主路由 ── 主 WiFi(照常使用,不受影响)
│
网线(为树莓派提供上行)
│
树莓派 ── 新建专用 WiFi(独立网段)
└─ 连上即自动科学上网,国内网站照常直连
严格来说,树莓派在这里扮演的是"二级路由 / 独立无线接入点(AP)“的角色:它有自己独立的网段,自己负责这个网络的地址分配与转发,而不是与主路由共用同一网段。因此它更像是主路由下游的一个"科学上网专用网络”,而非传统意义上与主路由同网段的旁路由。
核心优势是对设备零打扰:设备无需安装任何客户端、无需填写任何代理设置,连上这个 WiFi 即可科学上网。同时它是"可选项",树莓派关机或故障时,换回主 WiFi 照常上网,不会拖累整个家庭网络。
树莓派承担的三个角色
一台树莓派同时扮演三个角色,这是整个方案的核心。
1. 发出 WiFi(无线热点)
树莓派用自己的无线网卡发出专用热点,相当于一台小型无线路由器,负责让设备接入并为它们分配地址。
无线网卡被用于发出热点后,就无法同时再连接其他 WiFi。因此树莓派自身上网必须通过网线接入主路由。这是搭建的前提。
2. 连接远端服务器(代理内核)
这是真正"科学上网"的部分。树莓派上运行一个代理内核(如 xray),它携带节点信息(服务器地址、协议、密钥),负责将数据加密后发送至远端服务器再取回。
前提是你已有一个可用的节点(VLESS / Hysteria2 等)。搭建方法可参考:三种主流VPN搭建方法完全指南。
3. 智能分流(透明代理)
若所有流量都绕经远端,国内应用会变慢甚至异常。因此需要一个"分拣"环节:国内网站直连,仅国外网站走代理。
这一职责由 sing-box 承担。它建立一个虚拟网卡,将 WiFi 的流量全部截获并根据分流规则判断去向——国内的放行,国外的交给代理内核出境。整个过程对设备完全无感,因此称为"透明"代理。
需要强调的是,sing-box 本身并不知道哪些网站属于国内、哪些属于国外,所谓"智能"分流的前提是为它配置了分流规则集(如 geosite-cn、geoip-cn 这类由社区维护的域名与 IP 列表)。sing-box 依据这些规则集比对流量的目标域名与 IP,命中国内列表的直连、其余走代理。若不加载规则,就只是无差别的全量代理,没有分流可言。
三个角色串联,一条数据的完整路径是:
设备 → 专用 WiFi → sing-box(分拣:国内放行,国外挑出)
→ 代理内核(加密出境)→ 远端服务器 → 目标网站
为什么用两个软件(sing-box + xray)
有个常见疑问:sing-box 本身就是通用代理工具,支持 VLESS/Reality、Hysteria2 等几乎所有协议,一个软件即可同时完成"连接节点 + TUN 透明代理 + 分流",为什么还要再搭一个 xray?
答案是:这不是技术上的必须,而是让两者各做擅长的事。
- sing-box 擅长接管流量与分流:TUN 开箱即用、分流规则灵活,但它只有配置文件、没有图形界面,换节点需手动改 JSON。
- xray 擅长连接节点:配上图形界面 v2rayN 后,导入订阅、切换线路、测速都只需点击操作。而 xray 自身做 TUN 透明代理较为麻烦(缺少原生 TUN 入站)。
需要澄清:更方便的其实不是 xray 本身,而是套在它外面的图形界面 v2rayN。xray 裸跑同样是手改配置。便利来自"有没有 GUI",与内核是 xray 还是 sing-box 无关。
于是分工顺理成章:sing-box 管 TUN 与分流,xray 管连接节点。这样拆分还带来一个额外好处——更换节点极为省心:节点失效或想切换线路时只需在 xray/v2rayN 一侧操作,sing-box 的分流规则与虚拟网卡完全无需改动,两层解耦、互不影响。
追求极简的话,完全可以砍掉 xray,只用 sing-box 一个软件全包(TUN 入站 + 分流 + 直接连节点的出站),代价是换节点、测速都要手动编辑配置文件。
两者如何协同:本地端口 10808
sing-box 与 xray 之间只靠一个本地端口 127.0.0.1:10808 对接,这是它们唯一的"接头暗号":
- xray 启动后在该端口监听,对外提供标准的 SOCKS 代理服务,意即"谁把流量交给我 10808,我就负责加密送出境"。
- sing-box 的出站配置里写明:“需要代理的流量,转发给 socks
127.0.0.1:10808。”
于是 sing-box 每分拣出一条国外流量,就按此约定塞进 10808 端口,xray 在那头接住、加密、发往境外节点。两者无需知道对方内部如何实现,只共用这一个交接口。这也正是"解耦"的根源:只要 xray 守着 10808,里面换什么节点都与 sing-box 无关。
这里容易产生一个疑问:不是用了 TUN 透明代理吗,为什么还有 SOCKS 端口? 因为 TUN 和 SOCKS 处在链路的不同位置、各管一段:
设备 ──[TUN]──> sing-box ──[SOCKS:10808]──> xray ──> 境外节点
↑ 前半段用 TUN ↑ 后半段用 SOCKS
- 前半段(设备 ↔ sing-box)用 TUN:面对的是一堆不受控、不会主动配代理的设备,只能用 TUN 虚拟网卡把它们的流量无差别截获,这就是"透明"——设备什么都不用配。
- 后半段(sing-box ↔ xray)用 SOCKS:这是同一台树莓派内部两个程序之间的对接,sing-box 已把流量收拢好,只需一个标准接口递交给 xray,SOCKS 就是最通用的"程序对程序"代理接口。
一句话:TUN 负责"从设备把流量捞进来",SOCKS 负责"在软件之间把流量传出去"。
流量处理流程
以一台设备连上 WiFi 访问网站为例,完整流程如下:
- 设备发出请求:请求经 WiFi 到达树莓派。
- TUN 截获:sing-box 的 TUN 虚拟网卡是这个网络的出口,所有流量(DNS 查询、网页请求,不论端口协议)全部被它捞进来,设备无感。
- 域名嗅探:sing-box 先"拆开看一眼"目标是谁——从 DNS 请求或 TLS 握手中提取目标域名,这是分流判断的依据。
- 分流判断:拿目标域名/IP 比对
geosite-cn/geoip-cn规则集——命中国内列表判为"国内"、走直连;未命中判为"国外"、走代理。DNS 解析同样分流:国内域名用国内 DNS、国外域名用境外 DNS,避免污染。 - 分头处理:
- 国内流量:sing-box 直接从树莓派网线送出 → 主路由 → 互联网,全程不碰 xray,因此国内应用不绕路、不减速。
- 国外流量:sing-box 递给
127.0.0.1:10808。
- 加密出境:xray 在 10808 接住国外流量,用 VLESS-Reality 加密后发往境外节点。
- 原路返回:目标网站的响应沿原路折回——境外节点 → xray → sing-box → TUN → WiFi → 设备。
① 设备发出请求(经 WiFi 到达树莓派)
│
▼
② sing-box TUN 全部截获
│
③ 嗅探目标域名
│
④ 对照 geosite-cn / geoip-cn 判断
│
├── ⑤ 国内 ──► 直连 ──► 主路由 ──► 互联网(不经过 xray)
│
└── ⑤ 国外 ──► 递给 127.0.0.1:10808
│
▼
⑥ xray 加密(VLESS-Reality)──► 境外节点 ──► 目标网站
│
▼
⑦ 响应原路返回:境外节点 → xray → sing-box → TUN → WiFi → 设备
概括起来就是:TUN 全抓 → 嗅探域名 → 对照规则分流 → 国内直连、国外交给 xray 加密出境,返回时原路折回。整个过程对设备完全透明,它只觉得"连了个能上外网的普通 WiFi"。
注意事项
具体命令可交由 Claude Code 逐步完成,但以下几点提前了解能少走弯路:
一个配置项可能导致树莓派"自我锁死":sing-box 的
strict_route选项若设为true,会丢弃局域网入站连接(包括 SSH),导致 SSH 连不上、WiFi 也不通;加之服务开机自启,重启后一开机又再次锁死,最终需接显示器在本地登录才能恢复。本场景该选项务必设为false,且改动网络配置前应保留一条"可本地登录"的后路。上行必须使用网线:无线网卡已用于发出热点,无法同时连接主路由。若目标位置无法布线,需加装 USB 无线网卡。
5GHz 信道选择:发出 5G 热点时优先选用 36/40/44/48 信道,最为稳定;部分信道需进行雷达检测,热点可能无法启动或随机断开。
SSH 突然连不上未必是故障:较新的 Debian(13/trixie)在多次认证失败后会临时拉黑来源 IP 约 1~5 分钟并自动解除,无需误判为设备故障,稍候再试即可。配置密钥免密登录基本可避免触发。
为树莓派绑定静态 IP:在主路由后台固定树莓派的 IP,避免 IP 变动导致相关设置失效。
最终效果
搭建完成后,多个设备连上专用 WiFi 即可科学上网,国内网站照常直连、不绕路;使用主 WiFi 的设备完全不受影响。树莓派 5 运行这套方案负载很低,长期开启稳定可靠。