返回帮助中心

Realm 端口转发配置

高级配置

使用 Realm 工具配合 WarpTok 实现灵活的端口转发方案

最后更新:2024-01-13

什么是 Realm

Realm 简介

Realm 是一个轻量级的端口转发工具,支持 TCP/UDP 协议,可以在本地服务器上将流量转发到 WarpTok 的入口地址,实现更灵活的网络架构。

适用场景

  1. 需要在本地服务器上统一管理多个转发规则
  2. 需要对流量进行预处理或监控
  3. 在内网环境中部署转发节点
  4. 需要自定义转发逻辑

安装 Realm

Linux 系统

# 下载最新版本
wget https://github.com/zhboner/realm/releases/download/v2.5.4/realm-x86_64-unknown-linux-gnu.tar.gz

# 解压
tar -xzf realm-x86_64-unknown-linux-gnu.tar.gz

# 移动到系统路径
sudo mv realm /usr/local/bin/

# 验证安装
realm --version

Windows 系统

  1. 访问 GitHub Releases 页面
  2. 下载 realm-x86_64-pc-windows-msvc.zip
  3. 解压到任意目录(如 C:\realm)
  4. 将目录添加到系统环境变量 PATH
  5. 打开命令提示符,运行 realm --version 验证

macOS 系统

# 使用 Homebrew 安装
brew install realm

# 或手动下载
wget https://github.com/zhboner/realm/releases/download/v2.5.4/realm-x86_64-apple-darwin.tar.gz
tar -xzf realm-x86_64-apple-darwin.tar.gz
sudo mv realm /usr/local/bin/

基础配置

创建配置文件

创建 realm 配置文件 config.toml

# config.toml
[network]
no_tcp = false
use_udp = true

[[endpoints]]
listen = "0.0.0.0:8080"
remote = "203.0.113.45:1935"

# listen: 本地监听地址和端口
# remote: WarpTok 入口 IP 和端口

配置说明

  1. listen: 指定本地监听的 IP 和端口
  2. - 0.0.0.0 表示监听所有网卡
  3. - 也可以指定具体 IP,如 192.168.1.100
  4. remote: 指定转发目标
  5. - 填写 WarpTok 分配的入口 IP 和端口
  6. - 可以从 WarpTok 控制台获取
  7. no_tcp: 是否禁用 TCP(默认 false)
  8. use_udp: 是否启用 UDP(默认 false)

配合 WarpTok 使用

配置架构

典型的三层转发架构

  1. 应用/客户端 → 本地 Realm 服务 → WarpTok 入口 → 目标服务器
  2. 举例(TikTok 直播):
  3. OBS (推流软件)
  4. ↓ 推流到本地
  5. 127.0.0.1:8080 (Realm 监听)
  6. ↓ 转发到 WarpTok
  7. 203.0.113.45:1935 (WarpTok 入口)
  8. ↓ WarpTok 转发
  9. live.tiktok.com:1935 (TikTok 服务器)

配置步骤

  1. 1. 在 WarpTok 控制台配置目标地址
  2. - 目标 IP: live.tiktok.com
  3. - 目标端口: 1935
  4. 2. 记录 WarpTok 分配的入口地址
  5. - 入口 IP: 例如 203.0.113.45
  6. - 入口端口: 例如 1935
  7. 3. 创建 Realm 配置文件
  8. - listen: 0.0.0.0:8080
  9. - remote: 203.0.113.45:1935
  10. 4. 在 OBS 中配置
  11. - 服务器: rtmp://127.0.0.1:8080/live

高级配置

多端口转发

同时转发多个端口

# config.toml
[network]
no_tcp = false
use_udp = true

# 转发规则 1:RTMP 推流
[[endpoints]]
listen = "0.0.0.0:8080"
remote = "203.0.113.45:1935"

# 转发规则 2:HTTP API
[[endpoints]]
listen = "0.0.0.0:8081"
remote = "203.0.113.46:80"

# 转发规则 3:WebSocket
[[endpoints]]
listen = "0.0.0.0:8082"
remote = "203.0.113.47:443"

负载均衡

使用多个 WarpTok 入口实现负载均衡

[[endpoints]]
listen = "0.0.0.0:8080"
remote = "203.0.113.45:1935"

[[endpoints]]
listen = "0.0.0.0:8080"
remote = "203.0.113.46:1935"

# Realm 会自动在两个远程地址间进行负载均衡

启用日志

# config.toml
[log]
level = "info"
output = "/var/log/realm.log"

# level 可选值:trace, debug, info, warn, error
# output 指定日志文件路径

运行 Realm

前台运行(测试)

# Linux/macOS
realm -c config.toml

# Windows
realm.exe -c config.toml

# 看到 "Realm is running..." 表示启动成功

后台运行(生产环境)

使用 systemd 管理(Linux)

# 1. 创建 systemd 服务文件
sudo nano /etc/systemd/system/realm.service

# 2. 添加以下内容:
[Unit]
Description=Realm Port Forwarding
After=network.target

[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/realm -c /etc/realm/config.toml
Restart=always
RestartSec=3

[Install]
WantedBy=multi-user.target

# 3. 启动服务
sudo systemctl daemon-reload
sudo systemctl start realm
sudo systemctl enable realm  # 开机自启

# 4. 查看状态
sudo systemctl status realm

# 5. 查看日志
sudo journalctl -u realm -f

Windows 后台运行

  1. 方法 1:使用 NSSM(推荐)
  2. - 下载 NSSM: nssm.cc
  3. - 运行: nssm install Realm
  4. - Path: C:\realm\realm.exe
  5. - Arguments: -c C:\realm\config.toml
  6. - 点击 Install service
  7. 方法 2:使用任务计划程序
  8. - 打开「任务计划程序」
  9. - 创建基本任务
  10. - 触发器选择「启动时」
  11. - 操作选择启动 realm.exe

监控和维护

检查运行状态

# Linux (使用 systemd)
sudo systemctl status realm

# 查看日志
sudo journalctl -u realm -n 100

# 检查端口监听
sudo netstat -tlnp | grep realm
# 或
sudo ss -tlnp | grep realm

性能监控

  1. 使用 top 或 htop 查看 CPU 和内存使用
  2. 使用 iftop 或 nload 监控网络流量
  3. 定期检查日志文件大小,避免占满磁盘
  4. 在 WarpTok 控制台查看流量使用情况

重启服务

# Linux
sudo systemctl restart realm

# Windows (使用 NSSM)
nssm restart Realm

# 手动停止和启动
# 先找到进程 ID
ps aux | grep realm
# 然后终止进程
kill -9 <PID>
# 重新启动
realm -c config.toml &

故障排除

连接失败

  1. 检查配置文件语法是否正确
  2. 确认 WarpTok 入口 IP 和端口准确
  3. 使用 telnet 测试连接:
  4. telnet 203.0.113.45 1935
  5. 检查防火墙是否放行端口
  6. 查看 Realm 日志了解错误信息

转发延迟高

  1. 在 WarpTok 控制台更换入口地区
  2. 检查本地服务器网络质量
  3. 使用 ping 测试到 WarpTok 入口的延迟
  4. 考虑升级本地服务器带宽

服务异常退出

  1. 查看日志文件查找错误信息
  2. 检查系统资源是否充足
  3. 确认配置文件没有被修改
  4. 使用 systemd 设置自动重启

最佳实践

安全建议

  1. 不要在公网暴露 Realm 监听端口
  2. 如需公网访问,使用防火墙限制来源 IP
  3. 定期更新 Realm 到最新版本
  4. 使用非标准端口增加安全性
  5. 配置文件权限设置为 600

性能优化

  1. 在物理距离近的服务器部署 Realm
  2. 使用 SSD 存储日志文件
  3. 合理配置日志级别,避免过多 I/O
  4. 定期清理旧日志文件
  5. 监控系统资源使用情况

高可用方案

  1. 部署多个 Realm 实例实现冗余
  2. 使用不同的 WarpTok 入口地址
  3. 配置健康检查和自动切换
  4. 设置监控告警及时发现问题

这篇文章有帮助吗?

如果您还有其他问题,欢迎联系我们的客服团队