VMx

vmx.im
啥都学一点的填坑人
  1. 首页
  2. 未分类
  3. 正文

Realm: 一个全新的流量转发工具

2020年5月13日 1610点热度 0人点赞 0条评论

背景

流量转发,顾名思义是能够转发TCP或UDP流量到指定远程主机的工具。它主要用于内网的代理,及一切需要转发流量的场景。目前,已经有很多类似的工具出现了,常见的有socat,brook等。但是,这些工具都局限于固定的ip,即只能在启动时就指定好要转发的ip地址。brook可以解析域名,但却不能动态解析。网络上虽然流行有一键脚本,能够完成动态解析,但复杂的脚本本身也是一个安全隐患。

于是,Realm出现了。

特点

  • 支持DDNS 只要传入一个域名,那么就能自动后台更新解析。
  • 高效,低消耗 依托于Rust语言,Realm保证内存安全。另外,相较于采用Go语言编写的Brook和gost,Realm执行速度更快,资源占用更低,非常适合在低配置的主机上使用。
  • 简单 相较于使用iptables动辄几条复杂的命令,Realm仅需一条命令就能启动,保证了部署的方便。
  • UDP + TCP 无需额外的工作,Realm就能同时转发UDP和TCP。

使用

现在,Realm 已经在 GitHub 上开源了,项目地址是 https://github.com/zhboner/realm

只需在发布页上下载,就能使用了。目前仅提供 Linux 的二进制文件,但仍能编译后其他平台上运行。在下载二进制文件后,启动方法如下:

// 给 realm 加上执行权限
chmod +x realm

// 启动
// 以下命令让 realm 监听本机上的 30000 端口,然后转发流量到 example.com:12345
./realm -l 127.0.0.1:30000 -r example.com:12345

具体的,启动 realm 需要两个参数:-l 和 -r。

  • -l 指定监听的本机地址和端口,地址可以省略,但必须指定端口。不指定地址的话会使用默认的 127.0.0.1 地址
  • -r 指定转发的目的地址和端口,均不能省略

新建一个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/bin/realm -l x.x.x.x:port -r x.x.x.x:port

[Install]
WantedBy=multi-user.target
通过systemctl start/stop/restart/status realm控制...

Post Views: 757
标签: 暂无
最后更新:2020年5月13日

huifei

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

COPYRIGHT © 2021 vmx.im. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang