Radmin LAN + RustDesk 远程控制

xjb转载4000+

Radmin LAN + RustDesk 远程控制

适用于:常规远程软件因网络策略被阻断、无法登录或延迟过高
原理:先用 Radmin LAN 把两台机器拉进同一个虚拟局域网(P2P 直连,不经第三方中转),再用 RustDesk 在虚拟局域网内用 IP 直连。流量端到端加密,不经过远程软件的公共服务器。

实测:直连通道建立后 ping < 50 ms,iperf3 带宽约 18 Mbps,远程桌面操作基本无感


一、前置条件

  • 两台 Windows 机器(被控端建议 Windows 专业版以上;家庭版也可用本方案,因为不依赖 RDP)
  • 两台机器都能正常上网
  • 全程需要 管理员权限

二、第一步:Radmin LAN 组网

2.1 安装

两端都从 https://www.radmin-lan.cn/ 下载安装 Radmin LAN。

2.2 建网络并加入

  1. 在被控端打开 Radmin LAN,点「创建网络」,设一个网络名和密码。
  2. 在控制端打开 Radmin LAN,点「加入网络」,输入同一个网络名和密码。

2.3 记录两端的虚拟 IP

加入成功后,Radmin LAN 会分给每台机器一个 26.x.x.x 的地址。把两个地址都记下来,后面所有配置都要用。

2.4 关闭安全选项(重要)

在 Radmin LAN 的网络设置里:

  • 取消勾选「允许其他网络成员访问我的本地局域网」(Allow access to local network)
    → 否则任何拿到网络密码的人都能借你的机器进入你的内网。
  • 勾选「禁止新成员加入」(禁止无密码加入)
    → 成员固定为这两台,别人无法再加入。

2.5 验证互通

在控制端 PowerShell 中执行:

ping 26.10.20.30      # 换成被控端的虚拟 IP

正常结果是延迟几十毫秒。 如果延迟超过 200 ms,说明 Radmin 没打通 P2P,走了它自己的中继,见本文第八节。


三、第二步:安装 RustDesk

3.1 下载

RustDesk 不在 winget 源里(winget install RustDesk.RustDesk 会报“找不到与输入条件匹配的程序包”),需手动从 GitHub 下载:

https://github.com/rustdesk/rustdesk/releases/latest

选择 rustdesk-<版本>-x86_64.exe。

3.2 建议校验

如果目标机器下载不稳定,可以用任意途径传文件过去,但务必核对 SHA256,确保文件未被篡改。在 GitHub Release 页面或 API 中查官方摘要:

(Get-FileHash .\rustdesk-1.5.0-x86_64.exe -Algorithm SHA256).Hash.ToLower()

与官方公布值一致才安装。

3.3 安装

双击 exe,选择:

  • Install(不要选 "Run without installing")

装完后打开 RustDesk,进入 设置 → 常规,确认「服务」按钮显示为「停止」——显示“停止”表示服务正在运行(按钮文字表示点击后会做什么,不是当前状态)。


四、第三步:开启 RustDesk 的 IP 直连

打开 RustDesk → 左下角 设置(三横线)→ 安全:

设置项 操作
启用 IP 直接访问(Enable direct IP access) 勾选
端口 保持默认 21118
永久密码(Permanent password) 设置一个强随机密码

两端都要做这一步。

注意:

  • 永久密码不要与本机 Windows 登录密码相同,也不要复用。
  • 界面上方的「一次性密码」每次重启会变,可直接关掉;长期连接只用永久密码。
  • 设好后,界面下方会显示端口号,确认是 21118,自己主动再输入一次并点击“应用”。

关于“服务器地址留空”

设置 → 网络 → ID/中继服务器里留空,不代表不连服务器,客户端会自动使用内置默认服务器(rs-ny.rustdesk.com)。

但由于本文采用的是输 IP 直连(不输 ID),该服务器只承担“设备在线”心跳,不参与两端连接的协商,因此它不知道这两台机器在互相连接。数据本身走 P2P 直连并加密。

如果需要彻底切断这条外联,可在内网自建 hbbs(RustDesk 服务端),两端都把服务器地址指向内网 IP。这一步不影响连通性,属于可选加固。


五、第四步:防火墙白名单

RustDesk 安装时会自动创建一条入站规则 RustDesk Service,来源不限,任何能访问到本机的人都能连 21118,必须收紧。

两端都执行(把 26.10.20.40 换成对方的虚拟 IP):

# 1) 禁用 RustDesk 自带的宽泛入站规则
Get-NetFirewallRule -DisplayName 'RustDesk Service' |
  Where-Object { $_.Direction -eq 'Inbound' } |
  Disable-NetFirewallRule

# 2) 只允许对方那一个 IP 访问
$Peer = '26.10.20.40'
New-NetFirewallRule -DisplayName 'RustDesk-Peer-TCP' -Direction Inbound -Action Allow `
  -Protocol TCP -LocalPort 21115-21119 -RemoteAddress $Peer -Profile Any

New-NetFirewallRule -DisplayName 'RustDesk-Peer-UDP' -Direction Inbound -Action Allow `
  -Protocol UDP -LocalPort 21116 -RemoteAddress $Peer -Profile Any
  • 禁用默认规则:默认规则允许任何来源,等于把 21118 暴露给所有人。
  • -RemoteAddress $Peer:白名单只放行对方 IP,其余一律拒绝。
  • -Profile Any:Radmin LAN 的虚拟网卡常被 Windows 识别为「公用网络」,如果规则只写了 Domain,Private 就不会生效。

验收

Get-NetFirewallRule -DisplayName 'RustDesk*' |
  Select-Object DisplayName, Enabled, Direction | Format-Table -AutoSize

预期结果:

RustDesk Service     True  Outbound     ← 出站保留
RustDesk Service    False   Inbound     ← 必须变成 False
RustDesk-Peer-TCP    True   Inbound
RustDesk-Peer-UDP    True   Inbound

六、第五步:连接

在控制端打开 RustDesk,主界面「控制远程桌面」输入框里直接填被控端的虚拟 IP(不要填 ID !!!):

26.10.20.30

点连接,输入被控端设置的永久密码即可。


七、双向连接

两端都按第二至五步配置后,任一方向都可以发起连接:

  • 控制端 → 被控端:输入被控端的 26.x IP
  • 被控端 → 控制端:输入控制端的 26.x IP

八、验证与排错

8.1 判断是直连还是走中继

Test-Connection 26.10.20.30 -Count 6 | Select-Object Address, ResponseTime
延迟 含义
30–60 ms P2P 直连,正常
200–900 ms 走了 Radmin 的服务器中继,需要重连

判断依据看 ping 的 RTT

8.2 恢复直连的重连顺序

Radmin LAN 断开后重连时,打洞可能失败而退化成中继。按以下顺序操作:

  1. 两端都在托盘图标右键 → 退出(Exit),不是「断开」
  2. 等 10 秒
  3. 先启动一端,加入网络,等 15 秒
  4. 再启动另一端
  5. 等 30 秒后检查 ping

如果仍不通,把顺序反过来再试一次(先另一端)。

8.3 端口不通的排查

Test-NetConnection 26.10.20.30 -Port 21118

TcpTestSucceeded : True 才算通。若为 False:

  1. 被控端是否勾选了「启用 IP 直接访问」
  2. 防火墙规则是否存在且为 Enabled=True(见第五节验收)
  3. Get-NetTCPConnection -LocalPort 21118 -State Listen 是否有输出

8.4 常见现象

现象 原因 处理
画面卡但能操作 带宽不足 设置 → 显示,画质速度最优化,编码器选 H.265
开启隐私屏幕后无法操控 隐私屏幕模式与显卡驱动冲突 取消隐私屏幕,或切换模式后重新勾选一次
隐私屏幕模式 2 延迟明显变大 模式 2 走的是另一条渲染路径,占用更高 用模式 1,或直接
连接后立即断开 密码错误或服务未运行 检查「设置 → 常规」服务状态
偶尔卡顿 虚拟网卡 MTU 导致分片 可试将 Radmin LAN 网卡 MTU 降为 1400

九、安全要点汇总

  1. 防火墙只放行对方一个 IP,不要用网段,不要用「任何 IP」。
  2. 关闭 Radmin LAN 的局域网共享,并禁止新成员加入。
  3. RustDesk 永久密码强度足够,不与系统密码相同,不在客户端保存凭据。
  4. Radmin LAN 不要频繁退出。它靠客户端保活维持 NAT 映射,频繁重启会增加打洞失败概率。
  5. 被控端建议使用受限账户远程登录,而非管理员账户,降低控制端被入侵后的横向扩散风险。
  6. 被控端重要数据定期备份,防勒索。
  7. RustDesk 只从官方 GitHub Release 下载并校验 SHA256,不使用第三方修改版。

无法消除的风险

  • Radmin LAN 的信令服务在境外,它知道「这两台机器组成了一个网络、何时活跃」。数据内容看不到(P2P 直连 + 加密),但连接元数据可见。
  • RustDesk 默认会向 rs-ny.rustdesk.com 注册设备在线状态,知道你在线。用 IP 直连时它不参与连接协商,但要完全消除需自建服务端。
  • 若其中一台机器本身被入侵,防火墙白名单无法阻止攻击(攻击者就在白名单内侧)。真正的防线是终端安全与账号权限。

十、可选:自建 RustDesk 服务端

如需彻底切断 RustDesk 的境外外联,并保留「IP 不通时走内网中继」的兜底:

  1. 从 https://github.com/rustdesk/rustdesk-server/releases 下载 rustdesk-server-windows-x86_64.zip,解压得到 hbbs.exe、hbbr.exe。
  2. 在一台常开的、位于同一虚拟局域网内的机器上运行:
.\hbbs.exe -r <该机的26.x地址>
.\hbbr.exe
  1. 首次运行会生成 id_ed25519.pub,记录其内容。
  2. 两端 RustDesk → 设置 → 网络 → ID/中继服务器:
    • ID 服务器:<该机的26.x地址>
    • 中继服务器:<该机的26.x地址>
    • Key:粘贴 id_ed25519.pub 的内容
  3. 用 nssm 或计划任务把 hbbs.exe/hbbr.exe 注册为开机自启服务。

完成后两端界面显示的 ID 会变成数字(表示已注册到自建服务器),此时可用 ID 或 IP 两种方式连接。


附:为什么 RustDesk 不用 Parsec / ToDesk

这类软件即使有了虚拟局域网也无法使用,因为它们的账号登录、设备列表、连接协商全部依赖各自的云端服务器。当这些域名或 IP 段被网络策略阻断时,虚拟局域网只解决了网络可达性,解决不了云端依赖。

如果需要比 RustDesk 更低的延迟和更好的画质,可考虑 Sunshine + Moonlight:它通过本地 PIN 配对,不依赖任何云端服务,开源可审计,只要机器有可用的硬件编码器(NVIDIA NVENC / Intel QuickSync / AMD AMF)即可。

posted @ 2026-10-23 00:08  Nhzkl  阅读(9)  评论(0)    收藏  举报