🚀 网络转发管理脚本 - 集成官方 realm 最新版全部功能,网络链路测试,端口流量犬,保持极简本质,可视化规则操作提高效率,纯脚本构建完整中转生态
点击查看界面截图
===================== 网络链路测试功能完整报告 =====================
✍️ 参数测试报告
─────────────────────────────────────────────────────────────────
本机(客户端)发起测试
目标: 92.112.*.*:5201
测试方向: 客户端 ↔ 服务端
单项测试时长: 30秒
系统:Debian GNU/Linux 12 | 内核: 6.1.0-35-cloud-amd64
本机:cubic+htb(拥塞控制算法+队列)
TCP接收缓冲区(rmem):4096 131072 6291456
TCP发送缓冲区(wmem):4096 16384 4194304
🧭 TCP大包路由路径分析(基于nexttrace)
─────────────────────────────────────────────────────────────────
AS路径: AS979 > AS209699
运营商: Private Customer - SBC Internet Services
地理路径: 日本 > 新加坡
地图链接: https://assets.nxtrace.org/tracemap/b4a9ec9f-8b69-5793-a9b6-0cd0981d8de0.html
─────────────────────────────────────────────────────────────────
🌐 BGP对等体关系分析 (基于bgp.tools)
─────────────────────────────────────────────────────────────────
上游节点(Upstreams) :9 │ 对等节点(Peers):44
AS979 │AS21859 │AS174 │AS2914 │AS3257 │AS3356 │AS3491
NetLab │Zenlayer │Cogent │NTT │GTT │Lumen │PCCW
AS5511 │AS6453 │AS6461 │AS6762 │AS6830 │AS12956 │AS1299
Orange │TATA │Zayo │Sparkle │Liberty │Telxius │Arelion
AS3320
DTAG
─────────────────────────────────────────────────────────────────
图片链接:https://bgp.tools/pathimg/979-55037bdd89ab4a8a010e70f46a2477ba7456640ec6449f518807dd2e
─────────────────────────────────────────────────────────────────
⚡ 网络链路参数分析(基于hping3 & iperf3)
─────────────────────────────────────────────────────────────────────────────────
PING & 抖动 ⬆️ TCP上行带宽 ⬇️ TCP下行带宽
───────────────────── ───────────────────────────── ─────────────────────────────
平均: 72.3ms 220 Mbps (27.5 MB/s) 10 Mbps (1.2 MB/s)
最低: 69.5ms 总传输量: 786 MB 总传输量: 35.4 MB
最高: 75.9ms 重传: 0 次 重传: 5712 次
抖动: 6.4ms
─────────────────────────────────────────────────────────────────────────────────────────────
方向 │ 吞吐量 │ 丢包率 │ 抖动
─────────────────────────────────────────────────────────────────────────────────────────────
⬆️ UDP上行 │ 219.0 Mbps (27.4 MB/s) │ 2021/579336 (0.35%) │ 0.050 ms
⬇️ UDP下行 │ 10.0 Mbps (1.2 MB/s) │ 0/26335 (0%) │ 0.040 ms
─────────────────────────────────────────────────────────────────
测试完成时间: 2025-08-28 20:12:29 | 脚本开源地址:https://github.com/zywe03/realm-xwPF
wget -qO- https://raw.githubusercontent.com/zywe03/realm-xwPF/main/xwPF.sh | sudo bash -s install
wget -qO- https://ghfast.top/https://raw.githubusercontent.com/zywe03/realm-xwPF/main/xwPF.sh | sudo bash -s install
点击展开离线安装方法
适用于完全无法连接网络
下载必要文件
在有网络的设备上下载以下文件:
- 脚本文件下载:xwPF.sh (右键点击 → 另存为)
- Realm 程序下载(根据系统架构选择):
架构 | 适用系统 | 下载链接 | 检测命令 |
---|---|---|---|
x86_64 | 常见64位系统 | realm-x86_64-unknown-linux-gnu.tar.gz | uname -m 显示 x86_64 |
aarch64 | ARM64系统 | realm-aarch64-unknown-linux-gnu.tar.gz | uname -m 显示 aarch64 |
armv7 | ARM32系统(如树莓派) | realm-armv7-unknown-linux-gnueabihf.tar.gz | uname -m 显示 armv7l 或 armv6l |
随便创建一个目录放置脚本和压缩包文件,bash指令启动脚本选择1. 安装配置会优先自动检测脚本同目录下的realm文件进行安装
-
🚀 快速体验 -一键安装快速轻量上手体验网络转发
-
🔄 故障转移 - 使用系统工具,完成自动故障检测,保持轻量化
-
⚖️ 负载均衡 - 支持轮询、IP哈希等策略,可配置权重分配
-
🕳️ 搭建隧道 - 双端realm架构支持 TLS,ws 加密传输,搭建隧道
-
✍️ 规则备注 - 清晰的备注功能,不再需要额外记忆
-
🔔 端口流量犬 -统计端口流量,控制端口限速,限流,可设置通知方式
-
💻 直观配置系统MPTCP - 清晰的展示MPTCP界面
-
🛜 网络链路脚本 - 测试链路延迟、带宽、稳定性,大包路由情况(基于hping3 & iperf3 & nexttrace & bgp.tools)
-
📋 一键导出 - 打包全部文件为压缩包自由迁移(包括备注等等信息完全迁移)
-
📒 一键导入 - 识别导出的压缩包完成自由迁移
-
🔧 智能检测 - 自动检测系统架构、端口冲突,连接可用性
-
📝 智能日志管理 - 自动限制日志大小,防止磁盘占用过大
-
🗑️ 完整卸载 - 分阶段全面清理,“轻轻的我走了,正如我轻轻的来”
-
⚡ 原生Realm全功能 - 支持最新版realm的所有原生功能
-
tcp/udp协议
-
ws/wss/tls 加密解密并转发
-
单中转多出口
-
多中转单出口
-
Proxy Protocol
-
MPTCP
-
指定中转机的某个入口 IP,以及指定某个出口 IP (适用于多IP情况和一入口多出口和多入口一出口的情况)
-
更多玩法参考zhboner/realm
单端realm架构只负责转发(常见)
中转机安装realm,落地机安装业务软件
中转机realm只负责原模原样把设置的监听IP:端口收到的数据包进行转发到出口机,加密解密由业务软件负责
所以整个链路的加密协议由出口机业务软件决定
双端realm架构搭建隧道
中转机安装realm,落地机要安装realm和业务软件
在realm和realm之间多套一层realm支持的加密传输
负载均衡+故障转移
不断切换规则组里的落地机
IP哈希
模式 (iphash)
基于源 IP 的哈希值,决定流量走向,保证同一 IP 的请求始终落到同一落地机
-
权重即分配概率
-
故障转移
检测到某个出口故障,暂时移出负载均衡列表,恢复之后会自动添加进负载均衡列表
原生realm暂不支持故障转移
- 脚本的实现原理
1. systemd定时器触发 (每4秒)
↓
2. 执行健康检查脚本
↓
3. 读取规则配置文件
↓
4. 对每个目标执行TCP连通性检测
├── nc -z -w3 target port
└── 备用: telnet target port
↓
5. 更新健康状态文件(原子更新)
├── 成功: success_count++, fail_count=0
└── 失败: fail_count++, success_count=0
↓
6. 判断状态变化
├── 连续失败2次 → 标记为故障
└── 连续成功2次+冷却期120秒(避免抖动频繁切换) → 标记为恢复
↓
7. 如有状态变化,创建更新标记文件
客户端可使用指令while ($true) { (Invoke-WebRequest -Uri 'http://ifconfig.me/ip' -UseBasicParsing).Content; Start-Sleep -Seconds 1 }
或 while true; do curl -s ifconfig.me; echo; sleep 1; done
实时监听IP变化情况,确定模式生效
双端realm调用系统MPTCP
Q:MPTCP端点是不是创建一张新的虚拟网卡? 不是,是告诉MPTCP协议栈:这个IP地址可以用于MPTCP连接指定路径:数据可以通过这个IP地址和对应的网卡传输 建立多路径:让一个TCP连接可以同时使用多个网络路径
Q:为什么需要同时指定IP和网卡? 网卡接口:系统需要知道这个IP地址对应哪个物理网卡,用于路由选择 IP地址:MPTCP协议需要知道可以使用哪些IP地址建立子流 192.168.1.100 dev eth0 subflow fullmesh = 告诉MPTCP可以通过eth0网卡的这个IP建立连接 10.0.0.50 dev eth1 subflow fullmesh = 告诉MPTCP可以通过eth1网卡的这个IP建立连接
如果想要更精细的控制,可以考虑:
服务端也设置signal端点: 精细化控制mptcp
端口转发 vs 链式代理(分段代理)
容易搞混的两个概念
简单理解
端口转发只负责把某个端口的流量转发到另一个端口
链式代理是这样
分成了两段代理链,所以又称为分段代理,二级代理(有机会再细讲配置)
各有各的优点看使用场景 | 注意有的机不允许安装代理 | 不过某些场景链式会很灵活
链式代理 (Chained Proxy) | 端口转发 (Port Forwarding) |
---|---|
链路的机都要安装代理软件 | 中转机安装转发,出口机安装代理 |
配置文件复杂度较高 | 配置文件复杂度低(L4层转发) |
会有每跳解包/封包开销 | 原生 TCP/UDP 透传,理论上更快 |
出站控制分流更精确(每跳配置出口) | 难出站控制 |
原则均优先Linux 原生轻量化工具,保持系统干净轻量化
工具 | 用途 | 自动安装 |
---|---|---|
curl |
下载和IP获取 | ✅ |
wget |
备用下载工具 | ✅ |
tar |
解压缩工具 | ✅ |
unzip |
ZIP解压缩 | ✅ |
systemctl |
总指挥协调工作 | ✅ |
bc |
数值计算 | ✅ |
nc |
网络连接测试 | ✅ |
grep /cut |
文本处理识别 | ✅ |
inotify |
标记文件 | ✅ |
iproute2 |
MPTCP端点管理 | ✅ |
jq |
JSON数据处理 | ✅ |
nftables |
端口流量统计 | ✅ |
tc |
流量控制限制 | ✅ |
安装完成后的文件组织结构:
📦 系统文件
├── /usr/local/bin/
│ ├── realm # Realm 主程序
│ ├── xwPF.sh # 管理脚本主体
│ ├── port-traffic-dog.sh # 端口流量犬脚本
│ ├── pf # 快捷启动命令
│ └── dog # 端口流量犬快捷命令
│
├── /etc/realm/ # Realm配置目录
│ ├── manager.conf # 状态管理文件(核心)
│ ├── config.json # Realm 工作配置文件
│ ├── rules/ # 转发规则目录
│ │ ├── rule-1.conf # 规则1配置
│ │ ├── rule-2.conf # 规则2配置
│ │ └── ...
│ └── health/ # 健康检查目录(故障转移)
│ └── health_status.conf # 健康状态文件
│
├── /etc/port-traffic-dog/ # 端口流量犬配置目录
│ ├── config.json # 流量监控配置文件
│ ├── data/ # 流量数据目录
│ │ ├── traffic_2024-01.json # 月度流量数据
│ │ └── ...
│ ├── snapshots/ # 流量快照目录
│ │ ├── snapshot_20240115.json # 日度快照数据
│ │ └── ...
│ ├── notifications/ # 通知模块目录
│ │ └── telegram.sh # Telegram通知模块
│ └── logs/ # 日志目录
│ └── notification.log # 通知日志
│
├── /etc/systemd/system/
│ ├── realm.service # 主服务文件
│ ├── realm-health-check.service # 健康检查服务
│ └── realm-health-check.timer # 健康检查定时器
│
├── /etc/sysctl.d/
│ └── 90-enable-MPTCP.conf # MPTCP系统配置文件
│
└── /var/log/
└── port-traffic-dog.log # 端口流量犬日志
- 其他开源项目: https://github.com/zywe03
- 作者主页: https://zywe.de
- 问题反馈: GitHub Issues
- 纯闲聊群 tg交流群
- zhboner/realm - 提供核心的 Realm 程序
- "https://ghfast.top/""https://ghproxy.gpnu.org/""https://gh.222322.xyz/" -提供公益加速源
- 所有为项目提供反馈和建议的用户
⭐ 如果这个项目对您有帮助,请给个 Star 支持一下!