Realm 是Rust语言开发的流量转发工具,Realm 比 Gost占用资源更小。
支持多组服务器转发,同时也支持tcp和udp,还有域名解析便捷。
据我的测试结果来看,对于RDP的转发 realm 比市面上别的转发工具延迟都要明显低一些。
- 下载最新的可执行文件到本地:
Github 以最新版本为主,根据自己的系统版本下载即可,
比如我的是64位Debian系统,则需下载 realm-x86_64-unknown-linux-gnu.tar.gz
也可以下载 musl 版本的 musl是静态编译版本 体积稍大
1
2
3
|
cd /usr/local/bin
wget https://github.com/zhboner/realm/releases/download/v2.4.6/realm-x86_64-unknown-linux-gnu.tar.gz
tar -zxvf realm-x86_64-unknown-linux-gnu.tar.gz
|
- 赋予程序可执行权限:
- 创建realm配置文件:
realm 最新版的配置文件为 toml 结尾的文本文件
1
2
|
mkdir -p /etc/realm
vim /etc/realm/config.tml
|
具体的配置文件规则很简单,只需要在 listen 里填入vps上的带转发端口号,remote 中填入目的地的vps的ip和端口号即可:
1
2
3
4
5
6
7
8
9
10
11
|
[network]
no_tcp = false
use_udp = true
[[endpoints]]
listen = "0.0.0.0:23456"
remote = "test.cloudflare.com:23456"
[[endpoints]]
listen = "0.0.0.0:54321"
remote = "1.1.1.1:443"
|
配置文件支持各种协议,以及域名解析等操作,更多规则可以查看项目 Github主页
- 创建自启动服务项:
使用systemd 来创建开机启动防止机器重启了服务没了
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
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=/usr/local/bin/realm -c /etc/realm/config.tml
[Install]
WantedBy=multi-user.target
|
- 开启服务配置自启
1
2
3
4
5
6
|
systemctl daemon-reload
systemctl enable realm && systemctl start realm
# ps: 禁用自启
systemctl stop realm && systemctl disable realm
|
如果你的落地服务器使用的是动态IP,或者DDNS服务,可以在 crontab 计划任务里来设置定时重启realm服务:
1
2
3
4
5
|
cronteb -e
#填写内容为时间和重启的服务名称:
00 5 * * * systemctl restart realm
|
- 测试是否成功转发:
此时就应该可以成功通过这台 vps 来转发落地服务器的任何流量了,
如果发现无法转发,可以看一下是否开启了selinux、iptables、防火墙规则等等干扰了程序端口运行。
关闭干扰的防火墙规则或者添加转发端口到白名单即可,
如果还是无法转发可以查看一下realm日志log判断错误所在:
1
2
3
4
|
tail /var/log/realm.log -f
# 如果没有配置log字段那么就 使用journalctl 查看日志
journalctl -u realm -f
|
一般的错误都是域名解析失败,可以改变系统的DNS为 8.8.8.8 即可。
参考:
Realm端口转发工具安装教程