如果需要把一台 VPS 的 TCP 或 UDP 端口转发到另一台服务器,常见办法包括 iptables、nftables、socat、FRP 或各类转发面板。它们各自适合不同场景,但当需求变成“一个二进制完成 TCP/UDP 转发,还要有规则管理、共享限速、流量配额、实时统计和终端界面”时,可选工具就没有那么多了。
vmflow v0.3.0 是 VPSMarket 开源的一款纯 Go 四层转发工具,支持 TCP、UDP 和同端口 tcp+udp 规则。新版本重点补齐了每规则共享带宽限制、日/月流量配额、Host Network 仪表盘、原生系统服务和只读 MCP,比较适合需要长期运行、希望明确控制资源消耗的 VPS 端口转发场景。
vmflow 是什么
vmflow 是一个自托管的 L4 用户态转发程序。它监听本机端口,把接收到的 TCP 连接或 UDP 数据转发到指定目标,同时提供 CLI、TUI、Prometheus 指标和可嵌入的 Go Runtime。
当前版本的主要能力包括:
- TCP、UDP、
tcp+udp端口转发 - 规则启停、重启、预检和配置热重载
- 每条规则独立的 IPv4/IPv6 allowlist、denylist 与 CIDR
- TCP 最大连接数、空闲超时与 UDP 会话上限
- 规则共享上传/下载带宽限制
- 可持久化的日流量和月流量配额
- CLI、终端 TUI 与 Prometheus
/metrics - systemd、launchd、Windows Service 原生服务入口
- 本地只读 stdio MCP 诊断接口
它不是 HTTP 反向代理,也不负责域名路由、网页缓存或负载均衡。当前构建中的 HTTP/HTTPS、ACME 和 NAT 穿透模块没有开放,因此不能直接把它当成 Nginx、Caddy 或 FRP 的完整替代品。
v0.3.0 最值得关注的更新
每规则共享带宽限制
传统的“每连接限速”在并发增加后很容易突破整条业务的总带宽。vmflow v0.3.0 新增 bandwidth_limit,同一个 rule_id 下的所有 TCP 连接和 UDP 会话共享限速桶,tcp+udp 规则也会跨协议共享。
bandwidth_limit:
rate: 100 Mbps
rate 会为上传和下载分别设置相同速率,也可以改用 upload 与 download 做非对称限制。配置支持 Mbps、Gbps、MB/s、MiB/s 等明确单位,其中 100 Mbps 等于每秒 12,500,000 字节,避免把 bit 与 Byte 混在一起。
日流量和月流量配额
对于有月流量上限的 VPS,单纯限速并不能避免提前跑完流量。traffic_quota 会把成功转发的上传和下载应用层数据合并计量,并按指定时区在每天或每月边界重置。
traffic_quota:
daily: 100 GB
monthly: 1 TB
timezone: Asia/Shanghai
action: block
配额用量会写入独立的 quota-state.json,即使没有启用普通统计持久化,重启后也不会把已使用流量清零。达到限制后,规则会阻止新流量,并在下一个周期自动恢复。当前 block 是唯一支持的动作。
TUI 可以直接看规则、配额和主机网络
新版 TUI 不只是查看在线状态,还能创建、编辑、复制、启停、预检和应用转发规则。基础编辑器包含共享速率、日配额和月配额,高级设置可以分别配置上传/下载速率与配额时区。
Dashboard 新增了 Host Network 区域,可以查看守护进程所在主机的网卡状态、MTU、IPv4/IPv6 CIDR、累计收发流量和实时 RX/TX 速率。这里展示的是整台主机网卡数据,不等于 vmflow 规则流量,也不是带宽测速结果。
DNS 故障切换
初始化目标检查、规则预检和出站转发会优先使用操作系统 DNS。遇到超时或网络错误时,vmflow 会依次尝试 223.5.5.5:53 和 119.29.29.29:53,并在系统 DNS 恢复后自动切回。
如果系统 DNS 已明确返回 NXDOMAIN,程序不会继续把不存在或内部域名发送给公共 DNS。目标本身是 IP 地址时,也不会经过 DNS 解析。
原生服务与自动恢复
vmflow service 提供统一的服务管理入口:
vmflow service install
vmflow service start
vmflow service status
vmflow service uninstall
Linux 使用 systemd,macOS 使用 launchd,Windows 使用系统 Service。Linux 服务默认支持失败重启,并把状态文件放在受管理目录。TUI 在默认本机目标发现已安装的服务停止后,也可以引导用户恢复服务。
需要说明的是,Windows 和 macOS 的服务代码已经包含在 v0.3.0 中,但项目路线图仍把更广泛的真机人工验证列为后续工作;正式部署前应在自己的系统版本上完成一次安装、重启和回滚测试。
给 Claude、Codex 使用的只读 MCP
vmflow mcp 会通过 stdio 启动一个本地 MCP Server,连接已经运行的 vmflow 守护进程。它不启动转发、不新增网络监听,也不能修改配置。
目前提供 5 个只读工具:
| MCP 工具 | 用途 |
|---|---|
get_vmflow_status |
查看版本、连接、授权、规则数量、流量和降级状态 |
list_forwarding_rules |
按条件列出规则摘要及限速、配额策略 |
get_forwarding_rule |
查看单条规则的完整配置、运行状态和统计 |
get_traffic_stats |
查看规则流量、配额状态与汇总数据 |
run_config_precheck |
只读检查守护进程当前持久化配置 |
这类接口适合让 AI 客户端整理运行状态、定位哪条规则接近流量配额,或在修改 YAML 后先解释预检结果。它没有 Shell、文件写入和规则修改工具,管理认证开启时建议给 MCP 单独配置 viewer token。
Linux VPS 安装 vmflow v0.3.0
Linux 和 macOS 可以通过官方安装脚本固定安装 v0.3.0。对 VPS 常见的系统级安装,可以执行:
curl -fsSL https://raw.githubusercontent.com/cloudapp3/vmflow/main/install.sh \
| bash -s -- --version v0.3.0 --system
安装器从 GitHub Release 下载对应平台归档,默认使用 checksums.txt 做 SHA-256 校验,并且只写入 vmflow 二进制,不会覆盖已有配置。Windows 用户可以直接在 v0.3.0 Release 下载 ZIP。
安装后先检查版本:
vmflow version -json
然后运行首次配置向导:
vmflow init
向导会依次选择语言、监听与目标地址、认证方式和运行模式。运行模式包括:
- 安装并启动系统原生服务,适合长期运行。
- 在当前终端前台运行,适合临时测试。
- 只保存配置,暂不启动。
如果选择系统服务,向导结束后服务已经运行,不需要再执行第二个 vmflow run。这时可以直接打开 TUI:
vmflow service status
vmflow tui
如果选择前台模式,需要保持守护进程终端打开,并在另一个终端显式连接该进程:
vmflow tui -addr http://127.0.0.1:19090
管理面为什么只监听 127.0.0.1
vmflow v0.3.0 的管理端口固定绑定 127.0.0.1,不能直接暴露到公网。vmflow init 默认开启认证,生成随机 admin token,并写入权限为 0600 的本地客户端配置,因此平时使用 vmflow ctl 或 vmflow tui 不需要把 token 放进命令历史。
需要从另一台电脑管理远程 VPS 时,应通过 SSH 转发回环端口:
ssh -N -L 19090:127.0.0.1:19090 user@your-vps
然后在本机使用显式 -addr 连接隧道,并配置专用的 viewer 或 admin 凭据。不要为了省一步操作,把 vmflow 管理端口通过防火墙或反向代理直接开放到公网。
vmflow 与 socat、iptables、FRP 有什么区别
| 工具 | 更适合的场景 | 主要差异 |
|---|---|---|
| vmflow | 长期运行的 TCP/UDP 用户态转发 | 单二进制、跨平台、规则管理、TUI、限速、配额、指标 |
| socat | 临时、单条转发或调试 | 简单直接,但缺少统一规则生命周期和配额管理 |
| iptables / nftables | Linux 内核层 NAT 与高性能转发 | 性能路径更短,但没有 vmflow 这种跨平台 TUI 和应用层计数 |
| FRP | 需要客户端/服务端配合的内网穿透 | 重点是穿透不可直接访问的内网,使用模型与 vmflow 不同 |
简单判断:如果只是临时转发一个端口,socat 可能已经够用;如果追求 Linux 内核 NAT 性能,应优先评估 nftables;如果需要内网穿透,FRP 更符合场景。vmflow 的优势在于直接 L4 转发 + 可视化规则管理 + 可执行的资源边界。
适合哪些 VPS 场景
- 把 Web、SSH、数据库或内部 API 的 TCP 端口转到后端节点
- 转发 DNS、游戏或实时通信等 UDP 服务
- 同一端口同时提供 TCP 和 UDP 转发
- 给共享出口设置整条规则的总带宽,而不是每连接限速
- 按日或按月控制 VPS 转发流量,避免提前耗尽套餐配额
- 通过 TUI 查看规则状态、实时流量和主机网卡数据
- 让 Claude、Codex 等 MCP 客户端只读检查转发状态
如果需求是 HTTP 域名分流、自动签发证书、Web 管理面板、内核级 NAT 或完整内网穿透,当前 vmflow v0.3.0 并不是对应工具。
常见问题
vmflow 支持 UDP 端口转发吗?
支持。规则协议可以设置为 tcp、udp 或 tcp+udp。UDP 会话有进程级和规则级数量限制,并提供拒绝与丢包指标。
可以限制每条转发规则的带宽和流量吗?
可以。bandwidth_limit 控制同一规则的共享上传/下载速率,traffic_quota 控制日/月上传加下载总量。配额状态会持久化,不能依靠重启进程清零。
vmflow 有 Web 面板吗?
当前正式版没有 Web 管理面板,主要管理入口是 CLI 和终端 TUI;监控系统可以读取 Prometheus 指标,AI 客户端可以使用只读 MCP。
可以在公网远程打开 vmflow TUI 吗?
管理接口只监听本机回环地址。远程管理应先建立 SSH 隧道,再让本地 CLI/TUI 连接转发后的 127.0.0.1 端口。
vmflow MCP 能修改转发规则吗?
不能。v0.3.0 的 MCP 只提供状态、规则、流量与配置预检等只读工具,不提供写配置、执行 Shell 或操作文件的能力。
总结
vmflow v0.3.0 不只是把 TCP/UDP 数据从一个端口搬到另一个端口,而是把规则生命周期、共享限速、日/月流量配额、预检、实时统计和本地安全管理整合进同一个 Go 二进制。对于需要长期运行端口转发、又不想部署大型面板的 VPS 用户,这个定位比较实用。
本文信息于 2026 年 8 月 3 日(UTC+8),根据 v0.3.0 Release、项目 README 和公开源码核对;文章没有对具体 VPS、线路吞吐或跨平台服务稳定性做独立性能测试,生产使用前请按自己的系统、并发量和网络环境验证。
- GitHub 项目:https://github.com/cloudapp3/vmflow
- v0.3.0 Release:https://github.com/cloudapp3/vmflow/releases/tag/v0.3.0
- 多语言文档源码:https://github.com/cloudapp3/vmdocs/tree/main/sites/vmflow/docs
如果还需要查看 VPS 的 CPU、内存、磁盘和网络状态,可以继续阅读 vminfo v0.3.0 只读 MCP 诊断教程;日常 DNS 与端口排查可以参考 vminfo net 网络诊断命令教程。
觉得项目有用,也欢迎在 GitHub 点一个 Star,或提交 Issue 反馈实际的 VPS 端口转发需求。
VPS资讯-测评-教程 https://bestcheapvps.org
评论