简介

  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
END
本文作者: 文章标题:Realm转发使用教程
本文地址:https://www.mokoc.live/archives/14/
版权说明:若无注明,本文皆mokoの小站原创,转载请保留文章出处。
最后修改:2024 年 11 月 10 日
如果觉得我的文章对你有用,请赞赏(扫码有惊喜!!!)