如果需要把一台 VPS 的 TCP 或 UDP 端口转发到另一台服务器,常见办法包括 iptablesnftablessocat、FRP 或各类转发面板。它们各自适合不同场景,但当需求变成“一个二进制完成 TCP/UDP 转发,还要有规则管理、共享限速、流量配额、实时统计和终端界面”时,可选工具就没有那么多了。

vmflow v0.3.0 是 VPSMarket 开源的一款纯 Go 四层转发工具,支持 TCP、UDP 和同端口 tcp+udp 规则。新版本重点补齐了每规则共享带宽限制、日/月流量配额、Host Network 仪表盘、原生系统服务和只读 MCP,比较适合需要长期运行、希望明确控制资源消耗的 VPS 端口转发场景。

vmflow v0.3.0 TCP UDP 端口转发工具预览

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 会为上传和下载分别设置相同速率,也可以改用 uploaddownload 做非对称限制。配置支持 MbpsGbpsMB/sMiB/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 规则流量,也不是带宽测速结果。

vmflow TUI 展示 TCP UDP 规则、带宽限制、流量配额和预检

DNS 故障切换

初始化目标检查、规则预检和出站转发会优先使用操作系统 DNS。遇到超时或网络错误时,vmflow 会依次尝试 223.5.5.5:53119.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

向导会依次选择语言、监听与目标地址、认证方式和运行模式。运行模式包括:

  1. 安装并启动系统原生服务,适合长期运行。
  2. 在当前终端前台运行,适合临时测试。
  3. 只保存配置,暂不启动。

如果选择系统服务,向导结束后服务已经运行,不需要再执行第二个 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 ctlvmflow 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 端口转发吗?

支持。规则协议可以设置为 tcpudptcp+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、线路吞吐或跨平台服务稳定性做独立性能测试,生产使用前请按自己的系统、并发量和网络环境验证。

如果还需要查看 VPS 的 CPU、内存、磁盘和网络状态,可以继续阅读 vminfo v0.3.0 只读 MCP 诊断教程;日常 DNS 与端口排查可以参考 vminfo net 网络诊断命令教程

觉得项目有用,也欢迎在 GitHub 点一个 Star,或提交 Issue 反馈实际的 VPS 端口转发需求。

VPS资讯-测评-教程 https://bestcheapvps.org

群组 https://t.me/VPSTG

频道 https://t.me/vpsmarkets