向晚时光

RealM - 搭建安全加密隧道中转TG代理

笔记 ·

原因懂的都懂。之前用的方案是Socks5+Gost隧道中转,不过Gost据说有运行久了转发效率会变低(掉速)的小问题,后来Realm合并Kaminari之后支持了隧道加密转发就换了Realm,测试了大半年,运行稳定。

这几天看Loc貌似MJJ被WALL干翻了一堆花里胡哨的协议,笑~


项目地址

https://github.com/zhboner/realm

必要条件

  1. 一台国内鸡鸡作为中转节点(假设IP:1.1.1.1,用于下文配置参考)
  2. 一台外地鸡鸡作为落地节点(假设IP:2.2.2.2,用于下文配置参考)

外地鸡配置

1. 配置socks

个人习惯使用X-UI面板

apt install curl -y
bash <(curl -Ls https://raw.githubusercontent.com/vaxilu/x-ui/master/install.sh)

添加一个socks配置仅监听本地端口

2. 配置realm落地wss隧道

新建一个文件夹,下载realm进去

mkdir /home/RealM
wget -P /home/RealM https://github.com/zhboner/realm/releases/download/v2.4.3/realm-x86_64-unknown-linux-gnu.tar.gz

进目录解压缩

cd /home/RealM
tar -zxvf realm-x86_64-unknown-linux-gnu.tar.gz

给realm执行权限

chmod +x relam

新建一个realm配置文件

nano /home/RealM/config.toml

键入

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

[network]
no_tcp = false
use_udp = true

[[endpoints]]
listen = "0.0.0.0:20066"
remote = "127.0.0.1:53838"
listen_transport = "ws;host=www.mi.com;path=/;tls;servername=www.mi.com"

上述配置,listen段为中转鸡的传入端口,remote段为上文创建的socks端口,listen_transport段为隧道伪装的domain,自行更改。

保存后接着设置realm的systemd方便管理。

nano /etc/systemd/system/realm.service

键入

[Unit]
Description=RealM
After=network.target
Wants=network.target

[Service]
WorkingDirectory=/home/RealM/
ExecStart=/home/RealM/realm -c /home/RealM/config.toml
Restart=on-abnormal
RestartSec=5s
KillMode=mixed

StandardOutput=null
StandardError=syslog

[Install]
WantedBy=multi-user.target

自行更改配置中WorkingDirectory/ExecStart段内容为realm所在的路径位置。

保存,启动

systemctl daemon-reload
systemctl start realm

检查realm是否成功启动

systemctl status realm

设置开机自启

systemctl enable realm
3. 配置ufw防火墙

非必要,用于限制入口IP提高安全性

apt update && apt upgrade -y
apt install ufw -y

完成后启用服务

systemctl enable ufw --now

检查是否成功启用

systemctl status ufw

先放行SSH端口

ufw allow 22/tcp

开启防火墙

ufw enable

出现提示,键入“Y”

Command may disrupt existing ssh connections. Proceed with operation (y|n)?

添加规则限制realm转发的端口仅国内鸡的IP(1.1.1.1)能访问

ufw allow from 1.1.1.1 to any port 20066

自行更改命令中IP(1.1.1.1)和端口(20066)为你实际所使用的IP/端口。

检查一下规则是否添加成功

ufw status numbered

国内鸡配置

配置完外地鸡,国内鸡就很简单了,只需要参考上文安装realm,参考以下配置文件

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

[network]
no_tcp = false
use_udp = true

[[endpoints]]
listen = "0.0.0.0:20088"
remote = "2.2.2.2:20066"
remote_transport = "ws;host=www.mi.com;path=/;tls;sni=www.mi.com;insecure"

上述配置,listen段为TG代理的连接端口,可自定义。remote段为上文创建的外地鸡的传入端口,listen_transport段为隧道伪装的domain,自行更改。

保存后参考上文增加systemd配置并启动

systemctl start realm

连接测试

测试环境为移动端,毕竟手机上TG才不方便,总不能时刻挂着V吧,麻烦。

侧边栏 → Setting → Data and Storage → Proxy Setting → Add Proxy

选择SOCKS5 Proxy,Server填写国内中转鸡的IP(1.1.1.1),Port填写国内中转鸡设置的连接端口(20088),Username/Password填写外地落地鸡Socks5的账号密码,保存后勾选Use Proxy,出现Connected大功告成~

接下来愉快的在TG学习吧~当然,看学习视频的速度取决于国内鸡的上传口子大小及其与外地鸡通信的速度,还取决于是不是TG会员,所以速度方面因鸡而异,此方案优势还是在于上TG方便与稳定。

# note, realm