gw0 uplink 941 mb/s iface wan0 · promisc flows 1 284 denied 337 rec ● live 03:51:22 +08
断线 nullnet / edge

你家里有27台设备。 其中9台正在往外说话。

断线不替你判断哪一条连接是善意的。它只负责在设备开口之前先让你听见——默认策略是deny all,白名单要你亲手写,写完编译进网关内核,断电重启也不失效。

拉取镜像 规则语法 v3 arm64 / amd64 · 18 MB
egress map · last 60s9 active
allow 18 block 6 unknown 1 tick 1s
dev.list27
nas-attic · 阁楼2.4M
tv-living · 客厅1.2K
speaker-kit · 厨房88K
doorbell-cam310K
printer-hp0
robot-vac44K
air-purifier6K
?? : 8f : 21?
laptop-v9.1M
phone-v3.7M
thermo-hall1K
egress.logtail -fwan0 · 1 284 flows
timesrcdstportverdict
03:51:19laptop-vpkg.mirror.lan443allow
03:51:17tv-livingtelemetry.nordskal.no443block
03:51:14nas-atticntp.pool.lan123allow
03:51:09doorbell-camads-sdk.hexnode.io8883block
03:51:04speaker-kitcdn-jp.lumen.stream443allow
03:50:58tv-livingacr-ingest.nordskal.no443block
03:50:51robot-vacmap-sync.vacbase.cn443allow
03:50:47air-purifierstat.hexnode.io80block
03:50:40phone-vpush.mobile-gw.lan5223allow
03:50:33?? : 8f : 21185.?.?.? · as 未登记hold
rules.nlcompiled 03:12
deny all allow nas-attic -> pkg.mirror.lan allow speaker-* -> cdn-jp.* :443 alert unknown-mac -> * { push } kill tv-living -> *.nordskal.no # 0347 事件后手动钉死

规则是纯文本,放在/etc/nullnet里,你可以把它git起来,也可以在断网状态下改。

allow947
block337
hold7
root@gw0:~# cat incident-0347.log

三点四十七分,客厅那台电视自己醒了

没有人按开机键,屏幕也没有亮。它在四分钟里向外建立了八条连接,六条撞在deny all上被网关原地丢掉,剩下两条走的是443,证书合法、链路正常、域名注册在一家挪威的空壳公司名下。

断线不知道那两条连接里装的是什么。它只知道每隔三十秒就有一个1.2 KB的包准时发出去,一直持续到四点十一分,然后电视重新睡着,屏幕全程是黑的。你可以选择放行,断线不会劝你。但它会一直记着这件事,直到你亲手把这条规则写进白名单,或者把它彻底钉死。

03:47:02设备从休眠唤醒,本地无触发源,遥控器与红外均无事件
03:47:09八条出境请求同时发起,六条命中默认拒绝,静默丢弃
03:52:40剩余两条转为定时上报,周期三十秒,负载恒定
04:11:15连接自行断开,设备回到休眠;该目标已被手动钉死
capture · tv-living1.2 kb × 48
0000 16 03 01 02 00 01 00 01 ........ 0008 fc 03 03 9b 41 e0 7d 2a ....A.}* 0010 61 63 72 2d 69 6e 67 65 acr-inge 0018 73 74 2e 6e 6f 72 64 73 st.nords 0020 6b 61 6c 2e 6e 6f 00 17 kal.no..
SNI 明文暴露了目标域名,这是断线唯一能确定的事;包体加密,内容不可知。

下一步只有三个动作,选完立刻重新编译。

$docker run --net=host -v /etc/nullnet:/rules nullnet/edge:2.7

跑在你自己的网关上。没有云端账号,没有遥测,规则在本地编译成eBPF字节码;断线自己也在deny all里面。

footprint18 MB / 42 MB RSS
latency+0.08 ms per flow
licenseAGPL-3.0