利用realm转发服务,转发rdp远程桌面
因为我开在debian开启了 BBR,由于 BBR 算法在用户态转发(Userspace Relay)中能更精准地控制拥塞窗口,通过 Realm 转发的 RDP 连接会比单纯的 iptables NAT 转发在操作延迟和画面流畅度上更有优势。
第一步:安装 Realm
Realm 是单二进制文件,不需要复杂的依赖安装。
下载并解压并赋权:
创建目录
mkdir -p /root/realm && cd /root/realm
# 下载最新版 (以 x86_64 为例)
wget https://github.com/zhboner/realm/releases/latest/download/realm-x86_64-unknown-linux-gnu.tar.gz
tar -xvf realm-x86_64-unknown-linux-gnu.tar.gz
chmod +x realm
第二步:编写配置文件
使用配置文件比直接跑命令行参数更清晰,也方便后期维护。
创建配置文件:
Bash
nano /root/realm/config.toml
写入以下内容:
Ini, TOML
[network]
no_delay = true # 开启 TCP_NODELAY,这对 RDP 这种实时操作至关重要
[[endpoints]]
listen = "0.0.0.0:4433" # B服务器监听端口(建议改掉默认的3389以防扫描)
remote = "A服务器IP:3389" # A服务器的真实IP和RDP端口
第三步:配置 Systemd 守护进程
为了保证服务器重启后转发依然有效,需要将其写成服务。
创建服务文件:
sudo nano /etc/systemd/system/realm.service
粘贴以下内容:
Ini, TOML
[Unit]
Description=Realm Relay Service
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/root/realm
ExecStart=/root/realm/realm -c /root/realm/config.toml
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
启动并设置自启:
systemctl daemon-reload
systemctl enable realm
systemctl start realm
由于开启了 BBR 并且使用了 Realm,可以通过以下命令在服务器上“现场围观” BBR 是如何优化这段跨美传输的
ss -tinp | grep realm
这时候你应该能看到两条 ESTAB 状态的记录:
eg:
一条是 A(你家) -> B(美西)
一条是 B(美西) -> C(美东)
关键指标怎么看?
rtt:68.42:这就是美西到美东的真实物理延迟。如果这个数字跳动很大(比如一会儿 60 一会儿 200),说明公网链路有抖动,但 BBR 会努力平滑它。
cwnd (拥塞窗口):这个数字越大,说明 BBR 认为链路质量越好,一次性发出的数据包就越多,你的 RDP 画面刷新就会越快。
pacing_rate:这是 BBR 算出来的“最稳”传输速率。
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。