前言

  • 我们在玩 vps 时经常会看到中转、落地的说法,这里就简单说下怎么通过 Realm 实现中转。

  • 假设 A 是本地网络,B 是一台线路好 ip 烂的中转线路机,C 是一台线路烂 ip 干净的落地机。先在落地机 C 上搭建好代理服务,这里使用的 Realm 服务是运行在中转机 B 上的。

安装 Realm

去 Realm 的 Releases 页面下载对应你系统版本的编译好的压缩文件,解压即可得对应二进制可执行文件realm,这里以 x86_64 架构为例:

1
wget https://github.com/zhboner/realm/releases/download/v2.9.3/realm-x86_64-unknown-linux-musl.tar.gz && tar -zxvf realm-x86_64-unknown-linux-musl.tar.gz -C /usr/local/bin && rm realm-x86_64-unknown-linux-musl.tar.gz

赋权:

1
chmod +x /usr/local/bin/realm

配置 Realm

  • 创建配置文件config.toml
1
2
mkdir -p /etc/realm
vim /etc/realm/config.toml
  • 配置示例:
1
2
3
4
5
6
7
8
9
10
11
[log]
level = "warn"
output = "realm.log"

[network]
no_tcp = false
use_udp = false

[[endpoints]]
listen = "0.0.0.0:8443" #监听本机的8443端口流量
remote = "IP of C:443" #将其转发到C的443端口
  • 注意在防火墙开启本机监听端口
  • 本地客户端 A 配置:使用在 C 上面搭建的代理服务,但注意将服务器地址中转机 B,端口改成上面 Realm 监听的端口。

将 Realm 添加到系统服务

以 Debian 为例:

  1. 创建服务单元文件
1
vim /etc/systemd/system/realm.service
  1. 写入以下内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[Unit]
Description=Realm Service
After=network-online.target
Wants=network-online.target systemd-networkd-wait-online.service

[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/realm -c /etc/realm/config.toml
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target
  1. 启用服务
1
2
3
4
systemctl daemon-reload
systemctl start realm.service
systemctl enable realm.service
systemctl status realm.service
  1. 实时查看日志
1
journalctl -u realm.service -f