文件
scripts/realm/README.md
2026-04-27 11:04:36 +08:00

3.3 KiB

realm.sh

realm 的交互式安装与管理脚本。安装时会自动写入 systemd 单元 (realm.service) 作为守护进程。

系统要求

  • Linux x86_64 / aarch64 / armv7
  • 使用 systemd 的发行版Debian 10+ / Ubuntu 20.04+ / CentOS 8+ / Rocky / AlmaLinux 等)
  • root 权限

依赖

依赖 用途
curl 下载二进制、查询 GitHub API
tar 解压发行包
systemd 服务管理

Debian / Ubuntu

apt update && apt install -y curl tar

CentOS / RHEL / Rocky / Alma

dnf install -y curl tar

一键执行

bash <(curl -fsSL https://git.suhang.me/suhang/scripts/raw/branch/release/realm/realm.sh)

菜单

选项 说明
1 安装 realm询问安装目录与 GitHub 代理,下载最新版二进制 + 写入 systemd 单元)
2 添加一条转发规则(监听端口 → 远端地址:端口)
3 删除指定编号的转发规则
4 列出当前所有转发规则
5 / 6 / 7 启动 / 停止 / 重启服务
8 查看 systemctl status realm
9 journalctl -u realm -f 实时日志
10 更新 realm 内核到 GitHub 最新版
11 更新本脚本(从 release 分支拉取)
12 卸载删除二进制、配置目录、systemd 单元、日志)

路径与文件

安装时会询问安装目录,默认 /opt/realm。所有自身文件都集中在该目录下,systemd 单元固定在 /etc/systemd/system/

路径 说明
<INSTALL_DIR>/realm 可执行二进制(默认 /opt/realm/realm
<INSTALL_DIR>/config.toml 配置文件TOML
<INSTALL_DIR>/realm.log realm 自身日志
/etc/systemd/system/realm.service systemd 单元(ExecStart 即所选目录)

后续运行脚本时,会从 realm.serviceExecStart 反查出原安装目录,无需再次输入。

GitHub 代理

安装时会提示输入 GitHub 代理域名(默认直连,不使用代理;如需走代理推荐填 ghfast.top)。代理只作用于 release 二进制下载地址,例如:

https://ghfast.top/https://github.com/zhboner/realm/releases/download/...

api.github.com(用于查询最新版本号)不会走代理 —— 该接口大多数 GitHub 反代都无法转发。如果你的网络无法直连 api.github.com,需自行解决(例如通过 hosts 或本机代理)。

选择会保存到 <INSTALL_DIR>/.proxy,更新内核(菜单 10)时会沿用。如需更换代理,可直接编辑该文件后再执行更新。

调试

启动脚本时加 --debug(或 -d可打印更多日志,包括架构识别、代理拼接结果、curl 详细输出、写入配置等:

bash <(curl -fsSL https://git.suhang.me/suhang/scripts/raw/branch/release/realm/realm.sh) --debug

配置示例

脚本生成的 config.toml 大致如下,每条规则对应一个 [[endpoints]] 块:

[log]
level = "warn"
output = "/opt/realm/realm.log"

[network]
no_tcp = false
use_udp = true

[[endpoints]]
listen = "0.0.0.0:5000"
remote = "example.com:443"

如需手动编辑,可直接修改该文件后执行 systemctl restart realm

卸载

进入菜单选择 12 即可移除二进制、配置目录、systemd 单元和日志文件。