免责声明
本脚本及本教程仅供学习与技术交流,严禁用于任何非法用途。
由此带来的法律风险与后果,均由使用者本人承担!
一、快速一键安装
所有服务器(入口/出口)均可直接运行:
bash <(curl -fsSL https://raw.githubusercontent.com/nuro-hia/realm/main/tunnel.sh)
脚本自动下载、安装、配置,并带菜单操作,无需手动编辑配置文件!
二、转发原理说明
举例模式(多出口):
每台“出口服务器”转发到一个“落地节点”,多个出口可分别批量转发,不同客户端对接不同出口即可实现多出口负载。
[客户端] --(TLS/加密)-- [出口服务器A] --(落地SS协议)--> [落地A]
|
|-- [出口服务器B] --(落地SS协议)--> [落地B]
|
|... (可继续扩展)
也可以多入口、多出口、多落地
端口管理建议:
- 建议所有节点监听端口、目标端口、落地端口一致,如均用
27567,方便批量管理。
三、服务端(出口)详细配置
1. 初始化(首次仅需一次)
- 选择菜单:
2) 初始化配置并启动 - 按提示设置为“服务端”
2. 添加端口转发规则(出口)
菜单:[3] 添加端口转发规则
- 监听端口:填写本节点转发用端口(如
27567) - 目标 IP:端口:填写“落地节点”的 IP 和端口(如
10.1.1.2:27567) - 是否为此规则启用 TLS? 推荐
y(自动生成 CA 证书) - 选择传输协议:系统提供
tcp/quic/ws三种协议可选,默认quic
每条规则都可以独立设置 TLS 证书,适合一机多出口、节点切换。
3. 启动 CA 证书拉取服务(每个出口需开一次)
- 菜单:
[11] 启动 CA 拉取服务 - 菜单:
[13] 查看/复制 CA 拉取 Token 和 curl 拉取命令
举例拉取命令:
curl "http://<出口服务器IP>:9001/cgi-bin/ca.cgi?token=<TOKEN>" -o /opt/realm/ca-<出口服务器IP>.pem
菜单会直接输出完整命令,复制即可!
四、客户端(入口)详细配置
1. 初始化(首次仅需一次)
- 菜单:
[2] 初始化配置并启动 - 按提示设置为“客户端”
2. 添加端口转发规则(入口)
菜单:[3] 添加端口转发规则
- 本地监听端口:建议与出口监听端口一致(如
27567) - 服务端 IP:端口:填写“出口服务器”公网 IP 和监听端口(如
1.2.3.4:27567) - 目标 IP:端口:填写“落地服务器”的 IP 和端口(如
10.1.1.2:27567) - 服务器密码:复制服务端生成的密码
- 是否启用 TLS? 推荐
y - 粘贴 curl 拉取命令:由出口服务端菜单 [13] 提供,脚本自动下载 CA 证书至
/opt/realm/ca-出口IP.pem - 选择传输协议:需与服务端保持一致(
tcp/quic/ws)
五、多出口、多证书对接要点
- 每个出口节点对应独立证书,文件名建议区分出口 IP。
/opt/realm/rules.txt每行记录规则详情(端口/出口/落地/密码/TLS/证书名)。/opt/realm/realm.json为自动生成的主配置。
六、管理与常见操作
1. 查看全部证书
ls /opt/realm/ca-*.pem
2. 查看全部规则
直接查看 /opt/realm/rules.txt,格式如下:
监听端口 出口IP:端口 落地IP:端口 密码 TLS证书状态 证书文件名
3. 查看/验证 TLS 配置
查看 /opt/realm/realm.json 是否出现如下字段:
"tls": {
"enabled": true,
"insecure": false,
"ca": "/opt/realm/ca-出口IP.pem"
}
七、FAQ/常见问题
- Q: 多出口会不会互相覆盖证书?
A: 不会!每条规则用独立证书文件名,互不影响。 - Q: 客户端/服务端端口必须一致吗?
A: 推荐一致,方便统一管理,但不是强制。 - Q: 如何扩容?
A: 出口服务端、入口客户端均可随时添加规则,无需重启整体服务。
八、安全提醒
- 本脚本仅供个人研究、合规测试。切勿用于任何违法行为。
- 网络环境、云平台策略、政策合规需自行评估。
九、更多脚本和维护
请访问:https://github.com/nuro-hia/realm
脚本持续更新,欢迎 star、issue 反馈需求!