Realm 转发教程

适用场景:用一台低配 VPS 做流量中转(中转机 → 落地机),把端口转发配置从 iptables 换成更容易维护的 Realm。你会学到安装、TOML 配置、systemd 托管与验证的完整流程。

项目地址:realm

特点

  • 支持 DDNS,传入域名后可自动更新解析。
  • 基于 Rust 编写,资源占用低,适合低配主机。
  • 配置简单,相比 iptables 更容易维护。
  • 同时支持 TCP 和 UDP 转发。

运行环境建议

推荐系统:

  • Debian 11 及以上
  • Ubuntu 20 及以上

建议先检查 GLIBC 版本,要求 2.29 及以上:

ldd --version

如果版本过低,建议直接更换到较新的系统版本。

1. 安装 Realm

mkdir -p /home/realm/work
touch /home/realm/work/config.toml
wget -P /home/realm https://github.com/zhboner/realm/releases/download/v2.5.3/realm-x86_64-unknown-linux-gnu.tar.gz
tar -zxvf /home/realm/realm-x86_64-unknown-linux-gnu.tar.gz -C /home/realm
chmod +x /home/realm/realm

2. 配置文件

Realm 支持 jsontoml 两种格式,这里更推荐 toml

参考示例地址: Realm examples

中转机示例

vim /home/realm/work/config.toml
[log]
level = "warn"
output = "/var/log/realm.log"

[network]
no_tcp = false
use_udp = true

[[endpoints]]
listen = "[::]:50001"
remote = "[2602:fce1:407::2f]:10080"
remote_transport = "tls;sni=amd.com;insecure"

落地机示例

vim /home/realm/work/config.toml
[log]
level = "warn"

[network]
no_tcp = false
use_udp = true

[[endpoints]]
listen = "[::]:10080"
remote = "127.0.0.1:10089"
listen_transport = "tls;servername=amd.com"

3. 配置开机启动

创建服务文件:

vim /etc/systemd/system/realm.service

写入以下内容:

[Unit]
Description=realm
After=network-online.target
Wants=network-online.target systemd-networkd-wait-online.service

[Service]
Type=simple
User=root
Restart=on-failure
RestartSec=5s
DynamicUser=true
ExecStart=/home/realm/realm -c /home/realm/work/config.toml

[Install]
WantedBy=multi-user.target

4. 启动服务

systemctl daemon-reload
systemctl enable realm
systemctl restart realm
systemctl status realm

验证与自查

  1. systemctl status realm 显示 active(running)
  2. ss -lntup | grep 50001(中转机监听端口)确认监听正常
  3. nc -vz <中转机IP> 50001 或客户端经中转访问落地服务,确认转发链路通
  4. 查看转发日志:tail -f /var/log/realm.log(需配置 output

参考