VPS 流量管理神器:Nfuse 教程,用 Linux 内核直接给端口加把锁
折腾 VPS 的小伙伴都知道,流量不仅是要钱,有时候简直是“命根子”。特别是如果你想搞点“发车”业务,或者把服务器分给朋友用,怎么精确控制每个端口用了多少流量,超量了怎么自动断开,一直是个老大难问题。
市面上的 WebUI 面板要么收费,要么监控的流量不准(只统计应用内部流量,漏算重传和头部开销),甚至还和你现有的 iptables 规则打架。
最近发现了一个好用的开源工具——Nfuse。它走的是“硬核”路线,直接利用 Linux 内核的 nftables netdev 钩子来记账,精度高,还不耽误你跑 sing-box 或 Realm。今天就来手把手教大家怎么把这个“流量熔断器”装上。
为什么是 Nfuse?它强在哪里?
传统的流量监控大多是在应用程序层面(比如 V2Ray 的统计)或者 iptables 层面做的。但这会有两个问题:
- 不准: 应用层统计看不到 TCP 重传的数据包,而这些可是实打实消耗了你机房的带宽的。
- 不兼容: 很多面板会接管你的 iptables,想同时跑 gost、sing-box 之类的转发工具时,配置极其头疼,甚至冲突。
Nfuse 的思路完全不同。它利用了 Linux Kernel 5.16+ 引入的 netdev ingress 和 egress 钩子,直接挂在网卡上干活。
简单理解: 不管你是用 Proxy Chain 还是直接转发,流量只要经过网卡,Nfuse 就能看见。它就像是一个挂在网线上的“智能电表”,你家里换了什么电器(代理软件),它都不管,只管读数。读数超标了?直接内核级丢包(Drop),断网干脆利落。
准备工作
由于依赖较新的内核特性,Nfuse 对系统有个硬门槛:
- 操作系统: Linux
- 内核版本: ≥ 5.16 (如果低于这个版本,netdev egress 钩子不可用)
安装部署三步走
整个过程不需要复杂的依赖,因为作者用 Go 把它编译成了单文件,直接下载就能跑。
第一步:下载并安装
去 GitHub Releases 页面拽最新的二进制包(以 AMD64 为例):
# 下载
wget https://github.com/sketchain/Nfuse/releases/latest/download/nfuse-amd64.tar.gz
# 解压
tar -zxf nfuse-amd64.tar.gz
# 移动到全局路径
sudo mv nfuse /usr/local/bin/nfuse
Nfuse 终端图形界面 (TUI)
第二步:配置 Systemd 服务
我们希望它在后台稳定运行,开机自启,所以写个 systemd 服务文件。
创建 /etc/systemd/system/nfuse.service,写入以下内容:
[Unit]
Description=Nfuse per-port traffic metering and circuit breaker
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
ExecStart=/usr/local/bin/nfuse server --iface ens5
Restart=on-failure
RestartSec=3
[Install]
WantedBy=multi-user.target
注意: --iface ens5 后面的 ens5 是你的网卡名称,千万别照抄!可以用 ip -br link 命令查一下你主网卡叫什么,通常是 eth0、ens3 或 ens5。
第三步:启动服务
# 重载服务配置
sudo systemctl daemon-reload
# 开机自启并立即启动
sudo systemctl enable --now nfuse
# 看看状态是不是 active (running)
sudo systemctl status nfuse
# 查看实时日志,确认有没有报错
sudo journalctl -u nfuse -f
``
如果看到日志里没有大红 Error,那说明服务已经乖乖在内核层监听了。
### TUI 操作指南:可视化管理流量
Nfuse 自带了一个非常好用的 TUI(终端图形界面),不需要记复杂的命令行,敲 `nfuse tui` 就能进。
操作逻辑很简单:**账户 -> 端口 -> 流量上限**。一个账户可以包含多个端口,限制的是该账户下所有端口流量的总和。
#### 常用快捷键速查表
| 按键 | 功能 | 说明 |
| :--- | :--- | :--- |
| `a` | **新建账户** | 设置用户名、流量上限、档位。别忘了设上限(GiB)。 |
| `d` | **删除账户** | 连带该账户下的所有配置一起删。
| `p` | **添加端口** | 给选中账户加端口。端口是全局唯一的,别跟别的账户冲突。 |
| `x` | **删除端口** | 移除端口监控。 |
| `m` | **移动端口** | 把端口从 A 账户挪到 B 账户,历史流量数据也会跟着带走。 |
| `t` | **修改额度/档位** | 觉得给少了?随时改。 |
| `u` | **修正已用流量** | 可以直接把用量改成任意数值。如果改得超过上限,会立即熔断。
| `r` | **清零回血** | 月初了?按这个键重置流量。 |
| `q` | **退出** | 退出界面,但后台监控服务依然在跑。 |
### 实战场景与避坑排疑
**Q:我机器上已经在跑 sing-box、realm 或 gost 了,装 Nfuse 会打架吗?**
**A:** 完全不会。这是 Nfuse 最大的优势。它工作在网卡层,只是“旁路”计数。除非流量超限,否则它完全不干预数据包的转发路径。你之前怎么配置的,现在还怎么配置。
**Q:流量超限“熔断”了是什么表现?**
**A:** 就像网线拔了。对端用户会表现为连接超时、卡死。因为是在内核层直接 Drop 包,是非常强硬的限制。
**Q:如果 Nfuse 的进程崩了,限制会失效吗?**
**A:** 放心,计费规则和熔断逻辑是下放到内核里的。管理进程挂了,内核里的计数器还在跑,超量照样断网。当你通过 systemd 重启 Nfuse 进程时,它会热接管现在的计数,无缝衔接。
**Q:TCP 重传算流量吗?**
**A:** **算的。**这是 Nfuse 相比工具内统计更准确的地方。网卡上过的每一个包(包括重传的包),它都算钱。这对按量计费的场景才公平。
**Q:机器重启了,流量数据会丢吗?**
**A:** 默认每 15 秒会把数据落盘到 SQLite 数据库里。重启后,它会读取数据库恢复之前的计数,不会丢失。
### 卸载与清理
如果不想用了,清理步骤如下:
```bash
# 1. 停止并禁用服务
sudo systemctl stop nfuse
sudo systemctl disable nfuse
# 2. 清除内核中的 hooks 和规则(保留数据库)
sudo nfuse teardown
# 3. 彻底删除文件和数据库
sudo rm -rf /var/lib/nfuse
sudo rm /etc/systemd/system/nfuse.service
sudo systemctl daemon-reload
sudo rm /usr/local/bin/nfuse
总结
对于需要精细化控制 VPS 流量,特别是想玩“大流量小水管”分流的同学,Nfuse 绝对是 2026 年值得尝试的神器。它不需要 Web 面板那种笨重的架构,几兆内存占用就能搞定内核级的监控,既精准又稳定。
赶紧去给你的 VPS 加把“智能锁”吧!

评论已关闭