斐讯 N1 盒子变身旁路由:翻墙 + 去广告 + 青龙全在软路由上,新手向保姆级教程
把一台吃灰的斐讯 N1 盒子刷成 Armbian 后,改造成家庭旁路由:给全家(尤其 Mac)提供透明代理翻墙、DNS 层广告过滤,还能顺便跑青龙面板定时签到。本文用大白话讲透旁路由原理、mihomo 透明网关配置、磁盘迁移到外置硬盘,每一步都有可复制的命令,并给出从"全部走代理"到"国内直连/国外代理"的标准分流方案

30 秒看懂:斐讯 N1 是一台不到 100 块钱、已经停产的电视盒子,但它的硬件(Amlogic S905d 四核 + 2G 内存)刷上 Armbian Linux 后就变成一台可以通宵开机的迷你小主机。我们把它接到家里的路由器下,让它扮演”旁路由”:家里的电脑(以 Mac 为例)只要把网关和 DNS 指到它,它就会自动帮你这台电脑做两件事——① 把需要”翻墙”的流量通过代理节点送出(国内流量直接走家里网络,不绕弯);② 在 DNS 这一层把广告域名直接拦掉。既不用每台设备装软件,也不用开代理开关,全自动、零配置。本教程还会顺带讲怎么接外置硬盘扩容、把容易占满系统的 Docker 存储搬过去,以及青龙面板定时任务该怎么和这套体系共存。
你有没有这样的苦恼:
- 家里的 Mac/手机要”科学上网”,得每台都装一个代理客户端,换台设备就要重新设置;
- 开了代理之后,打开百度、淘宝这些国内网站也变慢了,因为流量全送去绕了一圈;
- 浏览器里去广告插件装了一堆,但 App 里的广告还是拦不住;
- 一台 N1 盒子买回来吃灰,却不知道它能干什么。
如果你有以上任何一条,这篇把 N1 改造成旁路由的教程就是为你准备的。我们会从原理讲起(旁路由到底是啥、为什么改了网关就直接全自动),再到每一步怎么敲命令,最后带 FAQ 帮你排查常见坑。
一、原理:旁路由到底是什么?为什么”只改网关”就能全自动?
1. 先分清三种”路由器/网关”
主路由:就是你家光猫/京东、小米、华硕那种路由器,它负责所有设备的上网出口,一般 IP 是 192.168.1.1(或类似)。它管着 DNS 分配、WiFi、有线网络。
旁路由:它不是”替代”主路由,而是”插在”主路由旁边帮忙干活的另一台设备。旁路由自己不连宽带,它用网线或 WiFi 接到主路由的局域网里,取得一个固定的局域网 IP(比如 192.168.1.2)。它像主路由的一个”得力助手”,专门负责主路由干不好的活——比如翻墙、去广告。
透明网关:这是这次改造的核心。你平时用”代理软件”(Clash、Surge)是装在各电脑上,每台设置一个代理地址。而旁路由的玩法是”透明网关”——不需要在电脑上装任何软件,只要把电脑的网关和DNS都指向旁路由那个 IP,电脑的所有网络流量就会自动先经过旁路由,由旁路由来决定:哪个域名走代理、哪个直连、哪个广告域名直接丢掉。
2. 走一遍流量(30 秒看懂原理链)
[Mac] --(所有流量)--> [旁路由 192.168.1.2] --mihomo 规则---> 国外域名 → 代理节点 → 境外
│
├-> 国内域名 → 直接走主路由(192.168.1.1)
└-> 广告域名 → 丢弃(REJECT)
- Mac 只要改一次”网关 + DNS”,以后全自动:不用装软件、不用开开关、临时不想要随时改回去。
- 代理 + 去广告的规则库全在旁路由的
mihomo(开源代理内核)里统一管理,你只管浏览,不用管。 - 因为规则是”国内直连、国外代理”,国内网站不绕弯不、不会变慢;国外网站自动走代理。
大白话:主路由是”大门保安”,负责放行所有人进出;旁路由是”门口额外加的分拣台”,检查每一件”包裹”(网络请求)该走哪个通道,该寄境外的送代理,本地直接直连、广告直接扔掉。你只需要把”寄件地址(网关)“写成旁路由即可。
二、前置准备
| 项目 | 说明 | 花不花钱 |
|---|---|---|
| 斐讯 N1 盒子 | Amlogic S905d 四核 / 2G 内存 / 带网口和 HDMI | 二手约 60~90 元 |
| 外置硬盘 | USB 移动硬盘 / 大容量 U 盘(建议 ≥32G),给它扩容系统盘 | 有就省,几个~几十元 |
| Armbian 系统 | 已给 N1 刷好的 Armbian Linux 系统 | 免费 |
| 一个能”科学上网”的节点/订阅 | 自建 VPS 或机场订阅(clash 订阅 URL) | 自有 VPS 或订阅费 |
| SSH 工具 | Mac 自带终端 / Windows Xshell / MobaXterm | 免费 |
| 一台 Mac | 苹果电脑(本教程以 macOS 为例) | —— |
前置知识:会 SSH 登录一台 Linux(
ssh root@192.168.1.2),会基本的vi/nano/cat看配置。完全没碰过 Linux 也能跟着做,因为命令我都给你。
三、动手第一步:N1 刷 Armbian + 接上外置硬盘(约 30 分钟)
如果已经刷好 Armbian 并 SSH 能登录,请跳过本节,直接看【第四步 装 mihomo 旁路由】。
1. 给 N1 刷 Armbian
- 先去 ophub 整理的 Armbian 镜像库下载适合 Amlogic-S905d 的 Armbian 镜像(带
S905*字样,务必是 LAN 独立透传版本)。 - 用工具(如
balenaEtcher或dd)把镜像烧录到一张 SD 卡或 U 盘。 - 把卡插入 N1 的 SD 卡槽,N1 通电(插网线到主路由 LAN 口)会自动从卡启动。
- 首次启动会进入终端,可以看屏幕提示设个 root 密码(或一路回车用默认)。登录后用
armbian-config或nmtui配置为静态 IP,比如192.168.1.2/24,网关填主路由192.168.1.1。
# 假设已能以 root 登录 N1,确认 IP 和路由
ip addr # 看 eth0 的 IP 是否 192.168.1.2
ip route # 应有一行 default via 192.168.1.1
cat /proc/sys/net/ipv4/ip_forward # 应输出 1(允许转发,旁路由必需)
小知识:旁路由要能转发其他设备的流量,内核的
ip_forward必须等于 1。多数 Armbian 默认已开,若输出0,敲sysctl -w net.ipv4.ip_forward=1临时开启,并写入/etc/sysctl.conf永久生效。
2. 接外置硬盘并挂载(给系统盘扩容)
N1 的板载存储(eMMC / SD 卡)通常只有 6~8G,跑 Docker + 青龙 + mihomo 很容易装满。接一块外置硬盘(USB),把它格式化成 ext4 并挂载到一个目录(我们约定挂到 /data / /storage),以后所有 Docker 数据、镜像、青龙都放这里。
# 看外置盘是不是被识别(选别是 sda/sdb 的分区)
lsblk
# 如果没分区就新建一个 ext4 分区(把 /dev/sda1 换成你的盘)
sudo mkfs.ext4 /dev/sda1
# 创建挂载点并挂载
sudo mkdir -p /data /storage
sudo mount /dev/sda1 /data
# 让开机自动挂载(把下面这段写进 /etc/fstab)
echo '/dev/sda1 /data ext4 defaults 0 2' | sudo tee -a /etc/fstab
如果你之前只用系统盘跑 Docker,会发现空间被 secretly 吃光——原因见【第六节】“为什么明明接了外置盘,系统盘还是被占满”。
四、装 mihomo 做旁路由(核心环节,约 20 分钟)
我们把旁路由的”大脑”就交给了 mihomo(Clash.Meta 的开源内核,很多桌面代理软件 ClashX / FlClash 底层就是它)。这样N1 和你在电脑上用的代理,分流规则可以完全一致。
1. 安装 mihomo
去 mihomo 的 GitHub release 页,下载 mihomo-linux-arm64 版(N1 是 ARM 架构)。放到 /usr/local/bin/mihomo 并加执行权限:
# 伪造名写进去,换成本地上传也行
sudo wget -O /usr/local/bin/mihomo <下载到的mihomo-linux-arm64的URL>
sudo chmod +x /usr/local/bin/mihomo
mihomo -v # 看版本,能输出就是安装成功
2. 准备一份 Clash / mihomo 配置文件
你有两种来源:
- A. 你自己的完整代理订阅(机场/自建给的
config.yaml):直接用它当主配置最好,因为它的rules(分流规则)通常已经很完善(国内直连 + 广告 reject + GFW 走代理)。 - B. 手写一份最小配置:填你自己一个节点的
proxies,加上下面的rules。
我们把它放到 /data/mihomo/config.yaml(放外置盘,避免占系统盘):
# /data/mihomo/config.yaml(示例,把 <节点> 换成你的)
mixed-port: 7890 # 局域网访问用的混合端口(HTTP+SOCKS)
redir-port: 7891 # 透明代理端口(下面的 iptables 要用它,别改)
bind-address: '*'
allow-lan: true # 允许局域网连接
mode: rule
log-level: info
external-controller: 0.0.0.0:9090 # 可视化/API 端口
dns:
enable: true
listen: '192.168.1.2:53' # 你 N1 的静态 IP!这个端口给局域网设备做 DNS(去广告)
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
nameserver:
- 114.114.114.114
- 8.8.8.8
nameserver-policy:
"geosite:cn,private":
- https://223.5.5.5/dns-query
- https://120.53.53.53/dns-query
"geosite:geolocation-!cn":
- https://dns.cloudflare.com/dns-query
proxies:
- {你的一个节点, 例如 vless/vmess/shadowsocks...}
proxy-groups:
- name: PROXY
type: select
proxies: [你节点]
rules:
- RULE-SET,reject,REJECT
- GEOSITE,cn,DIRECT # 国内域名直连
- GEOIP,CN,DIRECT # 国内 IP 直连(兜底)
- MATCH,PROXY # 其余统统走代理
上面
dns.listen特意写成192.168.1.2:53而不是默认的:53,是为了避开系统自带的 systemd-resolved 抢占 53 端口——把 DNS 绑定到你自己网卡 IP,既能服务局域网设备又不会和系统抢。
3. 让 mihomo 开机自启(systemd)
sudo tee /etc/systemd/system/mihomo.service >/dev/null <<'EOF'
[Unit]
Description=mihomo proxy for N1
After=network.target
[Service]
ExecStart=/usr/local/bin/mihomo -d /data/mihomo -f /data/mihomo/config.yaml
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload && sudo systemctl enable --now mihomo
sudo systemctl status mihomo # 应显示 active,监听 7890
3.5 打开透明转发(关键!让”只改网关”生效)
现在 mihomo 还只是个”代理服务器”。要让 Mac 只改网关就能全自动,需要两个追加:
- 加一套 iptables 透明转发规则——把从局域网 Mac 进来的 HTTP/HTTPS 转发给 mihomo 的
7891(redir) 端口:
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 7891
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 7891
sudo sysctl -w net.ipv4.ip_forward=1 # 确保转发已开
- 让这些规则开机自动带上(挂到 mihomo 服务每次启动后执行):
sudo tee /usr/local/bin/n1-fwd.sh >/dev/null <<'EOF'
#!/bin/bash
iptables -t nat -C PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 7891 2>/dev/null || iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 7891
iptables -t nat -C PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 7891 2>/dev/null || iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 7891
sysctl -w net.ipv4.ip_forward=1 >/dev/null
EOF
sudo chmod +x /usr/local/bin/n1-fwd.sh
# 用 drop-in 让它随 mihomo 启动执行
sudo mkdir -p /etc/systemd/system/mihomo.service.d
printf '[Service]\nExecStartPost=/usr/local/bin/n1-fwd.sh\n' | sudo tee /etc/systemd/system/mihomo.service.d/fwd.conf
sudo systemctl daemon-reload
重要:这套透明转发只针对”从局域网进来”的流量(
-i eth0),不会影响 N1 自己走代理——所以青龙、N1 上其它服务照常直连,不会被牵连、也不会把自己搞断网。
五、Mac 端设置(只需这么一次)
在 Mac:系统设置 → 网络 → 选你连的 WiFi/以太网 → 详细信息 → TCP/IP:
- 手动配置 IPv4(或 DHCP 绑定也行),给你的 Mac 个固定 IP,比如
192.168.1.50; - **路由器(网关)**填
192.168.1.2(旁路由); - DNS 填
192.168.1.2(旁路由,做 DNS 去广告); - 关掉之前可能有的”高级 → 代理”里任何 HTTP/SOCKS 代理勾选(否则会和透明网关叠加出问题)。
然后直接刷新浏览器、打开 App,就完成了。你可以访问 myip 网站看代理出口 IP,或观察前 → FAQ 验证方法。
验证透明代理已生效
在 Mac 上正常上网,然后回到 N1 终端看 mihomo 当前在帮谁转发:
curl -s http://127.0.0.1:9090/connections | python3 -c "import sys,json; d=json.load(sys.stdin); [print(c['metadata'].get('host') or c['metadata'].get('destinationIP')) for c in d.get('connections',[])]" | sort | uniq -c | sort -rn | head -20
如果你刚才用 Mac 开了 Google / X / YouTube,这些域名会出现在列表——证明 Mac 的流量确实无感知地经过旁路由分流了,而且没开代理开关。gstatic 是测速地址,Google/X 走 PROXY,京东/淘宝走 DIRECT,都正常。
六、为什么”接了外置硬盘,系统盘还是满”?(重要、超常见)
这是一个让很多人疑惑的坑:明明外置硬盘好几百 G,为什么 6G 的系统盘还是被占满、用着用着就没空间?真相:Docker 用的是 containerd 存储,而 Docker 有一条”数据根目录”。绝大多数人只把 Docker 的 data-root 指到外置盘,却漏掉了 containerd 自己的数据目录还在系统盘。
具体表现:
/var/lib/containerd → 3~4G(系统盘/内存卡上!) ← 镜像层都在这
/data/docker → 几十 MB(外置盘,几乎没用上)
根因:containerd(Docker 底层的镜像存储引擎)有自己的 data-root,默认在 /var/lib/containerd(系统盘)。你只有把 containerd 的 data-root 也迁到外置盘,镜像才会真正写到外置盘。很多人只改了 docker daemon 的 data-root,漏了 containerd,等于白改。
一键迁移(软链方式,最稳、可回滚)
sudo systemctl stop docker
sudo mkdir -p /data/containerd
sudo mv /var/lib/containerd /data/containerd # 把镜像层搬到外置盘
sudo ln -s /data/containerd /var/lib/containerd # 软链,让 containerd 还按原路径找
sudo systemctl start docker
# 验证
df -h / # 系统盘使用率应明显下降(例如 90% → 34%)
docker ps # 原有容器自动恢复(镜像没丢、不用重新拉)
docker info | grep -i containerd
用软链而不是改配置:containerd 仍按
/var/lib/containerd找,但实际落到外置盘。回滚只要rm 软链 && mv挪回去即可,风险低。迁移时千万别用一条 SSH 命令直接跑大 mv——3~4G 拷贝可能要一两分钟,SSH 断开就会中断。稳妥做法是把上面的命令写进一个脚本放到 N1 上用
nohup后台跑,再轮询结果。
以后新装容器,数据都放外置盘(养成习惯)
# 不要在系统盘留容器数据——卷一律绑定到 /data/<项目>
docker run -v /data/qinglong:/ql/data ... # 青龙示例
docker run -v /data/your-app:/data ... # 其它服务同理
规则:镜像自动落 containerd(已迁外盘);数据卷一律 -v /data/xxx。这样系统盘只放系统本体(内核+基础包约 2G),永不爆。
七、把这个全灌到 Docker + 青龙(可选:定时签到/爬虫自动化)
Docker 在 N1 上跑起来后,除了翻墙去广告,你还能跑 青龙面板——一个可视化定时任务管理器,社区有大量现成脚本(签到、监控、爬虫等)。因为你的流量经过 mihomo,青龙要访问需要”翻墙”的接口时,也天然可以走代理(青龙里配好走 N1 的 7890 即可)。
# 青龙容器(装到外置盘 /data/ql,端口 5700 只绑内网)
docker run -d --name qinglong -it --restart=always \
-p 127.0.0.1:5700:5700 \
-v /data/ql:/ql/data \
-e TZ=Asia/Shanghai \
whyour/qinglong:latest
然后用 浏览器访问 http://<N1-IP>:5700 初始化青龙,导入脚本,设置定时 cron。
安全提示:青龙面板只监听本机(127.0.0.1),不要绑到
0.0.0.0暴露到局域网/公网,除非你用防火墙控制了访问,否则有被扫描页面的风险。
FAQ(新手最常踩的坑)
Q1:设了透明网关后,家里所有设备都走代理了吗?会不会全断网?
不会。这套透明转发规则只 -i eth0 方向,且只有把网关指到 N1 的设备才走。其它设备(手机、电视)网关还是主路由,完全不受影响。即使 N1 挂了,你用网关 .1 的设备照常上网,只有被指到 .2 的那台受影响。
Q2:为什么我只改网关,但 x.com / Facebook 打不开? 大概率是你把”代理开关”开错了:透明网关要求电脑上不要开任何系统代理/SOCKS(否则双重叠加)。确认:Mac 系统设置 → 网络 → 高级 → 代理里的 HTTP/SOCKS 全部取消勾选,只保留”网关+DNS 指 192.168.1.2”。改完刷新浏览器重试。
Q3. 为什么国内的站无法上、我死也连不上?
先排除是不是走了代理:透明网关模式下,GEOSITE,cn,DIRECT 和 GEOIP,CN,DIRECT 应该让国内站直连。如果国内站也走了代理,多半是规则集没下载成功(cncidr/gfw 等 rule-provider 首次要从 GitHub 拉取,失败会 fallback)。打开 log-level: info,看 mihomo 日志里该域名命中哪条 rule;或 curl 试:
curl -s http://127.0.0.1:9090/proxies # 看节点 aliveness
Q4. 开了透明模式后 N1 自己断网了(SSH 也连不上)?
这是误开 mihomo 的 tun.enable + auto-route 的典型症状:auto-route:true 会把 N1 自己的默认路由也接管进 TUN,把自己绕死。透明网关做 “转” 不要用 auto-route,用我们【第四步】的 iptables REDIRECT 方式(-i eth0 只管别人,不碰 N1 自己)。若已中招:SSH 到 N1(若还能进) 把 config 里 tun 段注释掉重启,或临时 systemctl stop mihomo 让路由恢复。
Q5. mihomo 启动报 listen :53: address already in use?
53 端口被系统的 systemd-resolved 占了。解法:把配置里 dns.listen 改成你网卡的具体 IP(如 '192.168.1.2:53')而不是 ':53',这样只在 N1 自己的 IP 上监听,不跟 127.0.0.53 冲突。Mac 的 DNS 填这个 IP 照样能用。
Q6. 外置盘挂载了,为什么 docker info 还显示 containerd 在 /var/lib?
因为 Docker 的 containerd 和 docker daemon 分两套 data-root。只改 docker 那一套不完整。按【第六节】把 /var/lib/containerd 软链到外置盘的 /data/containerd,重启 docker 后 docker info | grep -i root 和 df / 应看到系统盘占用降下来。
Q7. 重启 N1 后,prox 规则/iptables 就没了吗?
iptables 规则是内存的,重启会丢。所以一定要把透明转发规则写进 n1-fwd.sh 并作为 mihomo.service 的 ExecStartPost(第3.5步),这样 mihomo 一启动规则自动回来。配置文件和自启服务本身用 systemd 管理,重启不会丢。
Q8. N1 只有一个网口,怎么同时”接入”和”对外”? N1 的单网口通过主路由的交换机口接到局域网,所有人共用 192.168.1.0/24 这个网段,物理上它是挂在主路由的 LAN 口下,不是独立再分网段。所以”接入”和”出口”其实是同一个口——这正是旁路由的魅力,不需要两个网口。
进阶玩法(可选)
- 给青龙的签到脚本走代理:青龙容器里 HTTP_PROXY 设
http://<N1-IP>:7890,需要翻墙的脚本自动走。 - 可视化看板:配
external-ui或接 Clash Dashboard,网页看分流命中、切节点。 - 多设备共享:只要把手机/平板网关+DNS 指到 N1,它们也能享受同样透明代理(如果主路由 DHCP 全局指定 DNS=192.168.1.2 则全屋自动)。
- 广告更强:在
rules顶部加RULE-SET,reject,REJECT(用 anti-AD / oisd 等大名单),能拦更多 App 内广告。
命令速查表
| 用途 | 命令 |
|---|---|
| 看 mihomo 状态 | systemctl status mihomo |
| 重载配置 | sudo systemctl restart mihomo |
| 看实时分流命中 | curl -s http://127.0.0.1:9090/connections | python3 -c ...(上文) |
| 看 Nat 转发已生效 | sudo iptables -t nat -S PREROUTING | grep 7891 |
| 看磁盘搬迁效果 | df -h /、docker info | grep -i containerd |
免责声明
- 本教程仅为技术学习与自娱自乐用途,请遵守你所在地区及目标服务商的相关法律法规;“翻墙""代理”相关操作在部分司法辖区可能受限,使用者需自行判断与承担风险。
- 教程中所有 IP、域名、命令均为示例(你的实际 IP/订阅/端口请替换),不构成任何对特定商用服务或产品的建议。
- 自行操作可能造成数据丢失或设备变砖,请在动手前备份重要数据,Nidyad、N、N 等主机属性参数以你自己机器为准。
- 作者不对因操作本教程导致的任何损失负责。祝玩得开心,也记得保护好你的节点与账号安全。
Hook this up to your favourite commenting platform — Giscus, Disqus, or your own.
Continue reading

Oracle 免费 VPS 优化手册:1G 小内存 VPS 从 426MB 可用到 630MB 完整实战
以一台 Oracle Cloud 免费 1核/1G 小内存 VPS(跑自用代理服务)为例,讲透小内存机器的完整优化方法论:内存审计、关闭无用服务、移除 snapd、journald 限容、swappiness 调优、重启验证,以及把易失服务转成 systemd 开机自启。每一步都有真实数据对比和可复制命令

让你的 VPS 登录不再单调:打造炫酷实用的 MOTD
通过自定义 Shell 脚本制作 MOTD 欢迎界面,在每次 SSH 登录时展示系统状态、网络信息和维护提醒,兼顾美观与实用性。

免费畅享DeepSeek API推荐--基元律动
折腾 AI Agent 时发现基元律动这个多模型聚合平台:一个 API Key 就能调用 DeepSeek V4、GLM 5.2、Kimi 2.7 等 12 款国产模型,兼容 OpenAI 与 Anthropic 协议,改一行 base_url 即可接入。目前邀请制注册,双方各完成一次有效 OpenSquilla 调用即可获得 68 元 Token 额度,实测够个人开发者用一阵