简介
Realm 是一个用 rust 编写的简单、高性能的网络中继工具。其特点为配置简单、资源占用少、性能强。
项目仓库地址:https://github.com/zhboner/realm
使用方法
1. 下载系统对应版本二进制文件,下载地址,以 linux x64 系统为例
mkdir -p /opt/realm
cd /opt/realm
wget https://github.com/zhboner/realm/releases/download/v2.6.2/realm-x86_64-unknown-linux-gnu.tar.gz
tar -zxvf realm-x86_64-unknown-linux-gnu.tar.gz
chmod +x realm
2. 编辑配置文件
简便用法,直接命令行参数启动(需在安装目录运行)
./realm -l 0.0.0.0:5000 -r 1.1.1.1:443
-l 后跟本地 ip 加端口(即本地监听的 ip+port ),-r 后跟远程 ip 加端口(即需要转发的远端服务的 ip+port ),更多参数可以使用./realm -h
查看。
配置文件,配置文件运行配置文件可以使用 toml 或者 json 格式书写,个人推荐使用 toml 格式,更加清晰明了, 官方提供的配置文件实例
vim /opt/realm/config.toml
运行以上命令,将下列内容粘贴进去后,敲下 esc 键,然后键盘输入 :wq 保存并退出
我这里使用 toml 格式书写一个最基本 tcp/udp 转发实例
[log]
level = "warn" # 输出的日志等级,日志级别: off,debug,info,error,warn
# output = "./realm.log" #日志输出路径
[network]
use_udp = true # 启用udp
[[endpoints]]
listen = "0.0.0.0:5000" # 本地监听的ip和端口
remote = "1.1.1.1:443" # 远端ip加端口
# [[endpoints]] # 可以同时配置多个转发只需要添加[[endpoints]]字段即可
# listen = "0.0.0.0:10000"
# remote = "www.google.com:443"
官方配置文件examples
[log]
level = "warn"
output = "realm.log"
[dns]
mode = "ipv4_only"
protocol = "tcp_and_udp"
nameservers = ["8.8.8.8:53", "8.8.4.4:53"]
min_ttl = 600
max_ttl = 3600
cache_size = 256
[network]
no_tcp = false
use_udp = true
ipv6_only = false
tcp_timeout = 5
udp_timeout = 30
send_proxy = true
send_proxy_version = 2
accept_proxy = true
accept_proxy_timeout = 5
tcp_keepalive = 15
tcp_keepalive_probe = 3
[[endpoints]]
listen = "0.0.0.0:5000"
remote = "1.1.1.1:443"
extra_remotes = ["1.1.1.2:443", "1.1.1.3:443"]
balance = "roundrobin: 4, 2, 1"
through = "0.0.0.0"
interface = "lo"
[[endpoints]]
listen = "0.0.0.0:10000"
remote = "www.google.com:443"
extra_remotes = ["www.youtube.com:443"]
balance = "roundrobin: 2, 1"
through = "0.0.0.0"
interface = "wlan0"
3. 设置开启自启动
linux 使用 systemd 服务来实现开机自启
在 /etc/systemd/system/ 目录下创建 realm.service 文件
vim /etc/systemd/system/realm.service
运行以上命令,将下列内容粘贴进去后,敲下 esc 键,然后键盘输入 :wq 保存并退出
以下是使用配置文件启动的配置,如果使用参数启动请自行修改 ExecStart 行的启动命令
[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
WorkingDirectory=/opt/realm
ExecStart=/opt/realm/realm -c /opt/realm/config.toml
[Install]
WantedBy=multi-user.target
4.启动服务相关命令
重载 systemd 守护进程的配置文件
systemctl daemon-reload
启用开机自启动
systemctl enable realm
启动 realm 服务
systemctl start realm
查看 realm 服务状态
systemctl status realm
查看运行日志
journalctl -u realm -o cat -f
停止 realm 服务
systemctl stop realm
重启 realm 服务
systemctl restart realm
关闭开机自启动
systemctl disable realm