Realm 端口转发教程:优雅解决复杂的跨网段与双栈中转
Contents
1. 安装 realm
安装依赖包
sudo apt update -y
sudo apt install curl wget -y下载 realm
sudo mkdir -p /usr/src/realm
cd /usr/src/realm
sudo wget https://github.com/zhboner/realm/releases/download/v2.9.3/realm-x86_64-unknown-linux-gnu.tar.gz注意:如果 CPU 是 ARM 系列(比如 Oracle Cloud Always Free ARM 大盘鸡),则选择 realm-aarch64-unknown-linux-gnu.tar.gz
2. 解压运行文件至 /usr/local/bin/
sudo tar -zxvf realm-x86_64-unknown-linux-gnu.tar.gz
sudo chmod +x realm
sudo chown -R root:root realm
sudo mv realm /usr/local/bin/
sudo rm -rf /usr/src/realm3. 创建 realm 配置文件
sudo mkdir -p /etc/realm
sudo touch /etc/realm/config.toml以下是 /etc/realm/config.toml Demo
注意:Demo 中的域名、IP 需要修改成你自己转发的目标IP:PORT
[log]
level = "info"
output = "/var/log/realm.log"
[network]
use_udp = true
# 转发至域名
[[endpoints]]
listen = "[::]:10001"
remote = "bl.xzcloudnode.sbs:50309"
tcpFastOpen = true
udp = true
# 转发至 IPv4
[[endpoints]]
listen = "[::]:10002"
remote = "158.21.17.235:35003"
tcpFastOpen = true
udp = true
# 转发至 IPv6
[[endpoints]]
listen = "[::]:10003"
remote = "[2404:7a80:ff20:6900:be24:11ff:fe6c:e661]:30123"
tcpFastOpen = true
udp = true4. 创建开启自启配置文件 /etc/systemd/system/realm.service
[Unit]
Description=Realm Port Forwarding
After=network.target
[Service]
ExecStart=/usr/local/bin/realm -c /etc/realm/config.toml
Restart=always
User=root
Group=root
LimitNOFILE=1048576
[Install]
WantedBy=multi-user.target5. 启动并加入开机自启
sudo systemctl daemon-reload
sudo systemctl enable realm --now6. 常用命令
| 动作 | 命令 |
|---|---|
| 启动 | sudo systemctl start realm |
| 停止 | sudo systemctl stop realm |
| 重启 | sudo systemctl restart realm |
| 状态查看 | sudo systemctl status realm --no-pager |
| 查看日志 | sudo journalctl -u realm -n 80 --no-pager |
7. 总结
你只需要三个文件,即可完成简洁干净的转发服务:
/usr/local/bin/realm— 转发核心程序/etc/realm/config.toml— 配置文件/etc/systemd/system/realm.service— 管理服务脚本
相比一键脚本安装方式,这种仅用三个文件就可以搞定转发服务的方式,更透明、更纯净,非常适合追求控制感和极致优化的玩家。
realm 转发几乎适用绝大多数场合,性能好、功能强大,还有负载均衡、同一个端口对应多个出口的功能,这是 firewall-cmd 内核级端口转发无法做到的,但是 realm 是否适合在国内审查较严的阿里云/腾讯云等云厂家,有待验证,个人不推荐在国内强实名的 VPS 中使用。