

FastRhino R68S 远程访问配置:Tailscale + RDP
记录使用 R68S 与 ImmortalWrt 配置 Tailscale 子网路由和 Windows 远程桌面的过程,涵盖网络、防火墙、开机恢复与故障排查。
FastRhino R68S 远程访问配置:Tailscale + RDP#
目标:将 FastRhino R68S 配置为校园网 PPPoE 主路由,并作为 Tailscale Subnet Router,使远程笔记本能够通过校园网直接访问 R68S 后方的台式机。
注意:目前方案需要被控端为 windows 专业版才能使用远程连接,下一步使用 sunshine 系列方案在探索中。
解决的问题#
远程访问方案:使用 FastRhino R68S 作为主路由,在 ImmortalWrt 上部署 Tailscale,并让 R68S 充当 Subnet Router(子网路由器)。远程笔记本只要加入同一个 Tailnet,就可以直接访问 R68S 后方的 Windows 台式机,而不需要把 RDP 的 3389 端口直接暴露到公网,也不要求台式机本身安装 Tailscale。
整套链路大致如下:

最终实现效果:在外部网络中,笔记本可以直接访问 192.168.1.1 管理 R68S,也可以通过 mstsc 连接 192.168.1.100 进入台式机桌面;R68S 重启后,Tailscale 和远程桌面链路也可以自动恢复。后续如果要扩展到 SSH、NAS、树莓派或其他内网服务,本质上也只是继续访问 192.168.1.x:端口。
地址和设备对应关系#
全文统一按如下对应关系:
| 角色 | 本文示例 | 说明 |
|---|---|---|
| R68S LAN 地址 | 192.168.1.1 | 内网网关,也是 LuCI 管理地址 |
| R68S 后方 LAN | 192.168.1.0/24 | 需要通过 Tailscale 发布的子网 |
| Windows 台式机 | 192.168.1.100 | 固定 DHCP 地址 |
| Windows RDP | 192.168.1.100:3389 | 最终远程桌面目标 |
| R68S Tailscale 地址 | 100.101.102.1 | 匿名示例,实际由 Tailscale 自动分配 |
| 远程笔记本 Tailscale 地址 | 100.101.102.2 | 匿名示例,实际由 Tailscale 自动分配 |
| 台式机有线网卡 MAC | AA:BB:CC:DD:EE:FF | 匿名示例,实际配置时换成自己的 MAC |
| Windows 主机名 | DESKTOP | 匿名示例,实际使用自己的主机名 |
注意:
100.x的 Tailscale 地址和fd7a:地址由 Tailscale 自动分配,不需要照抄;192.168.1.1、192.168.1.100和192.168.1.0/24则是为了让整篇文章的路由逻辑保持清晰而保留的示例。如果你的 LAN 使用其他网段,请整体替换,但一定保持“R68S LAN、发布子网、台式机固定地址”三者属于同一个局域网。
一、总体流程与拓扑#
刷入 ImmortalWrt → 配好 PPPoE 和 IPv4/IPv6 → 扩展 eMMC rootfs → 安装 Tailscale → R68S 发布 192.168.1.0/24 → 配置 tailscale0 与 firewall4 → 远程笔记本接受子网路由 → 台式机固定 192.168.1.100 → 开启并验证 RDP → 增加 Tailscale 开机自恢复 → 按需优化 RDP 帧率和 Wake-on-LAN。

后文所有地址都围绕这张图展开,配置时需要把示例中的设备名、MAC 和 Tailscale 地址替换为自己的实际值。

二、准备 R68S:固件、上网与存储#
1. 硬件与固件基线#
设备:
FastRhino R68S
SoC: Rockchip RK3568
eMMC: 16 GBtext当前固件:
ImmortalWrt 25.12.2
Target: rockchip / armv8
包管理器: apk
防火墙: firewall4 / nftablestext当前网口映射:
eth0 LAN
eth1 LAN
eth2 LAN
eth3 WANtext物理上:
最靠近电源的网口 = WAN / eth3
其余三个口 = LANtext相关教程:零基础——玩转电犀牛R68S – ConstantineFun ↗
2. 固件恢复 / 重刷#
使用的 EXT4 镜像:
对应 SHA256:
b734b3d9f757e4740b39223a41279787581c5630dac9691a768777736a3c2b87text驱动:https://static2.fnnas.com/installer/DriverAssitant_v5.1.1.zip ↗
刷机工具:https://static2.fnnas.com/installer/RKDevTool_v3.37_for_window.zip ↗
先右键以管理员的方式运行Driverinstall,点击驱动安装,弹出对话框,点击安装。右键以管理员的方式运行RKDevTool,使用双公头的数据线连接电脑和标有OTG的USB接口(靠近指示灯的接口),按住recovery孔,插入电源,2~5s松开短接点,刷机软件提示发现一个LOADER设备即可进行下一步(此时主板绿色指示灯常亮,蓝色指示灯熄灭),如果没有发现则拔出电源线和usb数据线重新执行本操作。
如下配置:
勾选强制按地址写,路径修改为本地固件地址(解压缩的),储存在 EMMC,准备好后执行。

3. 首次启动、PPPoE 与基础连通性#
重刷后的 LAN 初始状态。 电脑连接 R68S LAN 后,应通过 DHCP 获得:
IPv4: 192.168.1.x
Mask: 255.255.255.0
Gateway: 192.168.1.1textLuCI:
http://192.168.1.1text如果 Windows 得到:
169.254.x.xtext表示没有成功获得 DHCP 地址。
配置 PPPoE。 LuCI:
网络
→ 接口
→ WAN
→ 修改text配置:
协议: PPPoE
设备: eth3
用户名: 校园网 PPPoE 账号
密码: 校园网 PPPoE 密码text成功后 WAN 应显示类似:
协议: PPPoE
IPv4: 10.x.x.x/32
运行时间持续增加text验证 IPv4、DNS 和 IPv6。 客户端:
ping 223.5.5.5powershell期待:
0% 丢包text测试域名:
ping www.baidu.compowershell实测可以解析到 IPv6:
240e:...text并正常通信,说明:
IPv4 正常
DNS 正常
IPv6 正常textR68S / LAN 侧也实际获得过:
240c:c283:...text的全球 IPv6 地址和前缀。
4. eMMC rootfs 扩容#
官方 EXT4 镜像首次启动后:
df -h /bash只能看到约:
/dev/root ~300Mtext但实际 eMMC 约 14.8 GiB。
检查:
cat /proc/partitionsbash初始类似:
mmcblk0 15155200
mmcblk0p1 16384
mmcblk0p2 307200text进一步:
parted -s /dev/mmcblk0 unit MiB print freebash可以看到 p2 后仍有约 14 GiB 未使用空间。
1 安装工具#
apk add parted resize2fs blkidbash2 扩大第二分区#
只扩大 p2 的结束位置:
parted -s /dev/mmcblk0 resizepart 2 100%bash不要修改 p2 起始位置。
然后:
rebootbash重启后:
cat /proc/partitionsbash实测:
mmcblk0p2 15089664text说明分区已经扩展到 eMMC 末尾。
3 扩大 EXT4 文件系统#
直接:
resize2fs /dev/mmcblk0p2bash本机曾报:
Invalid argument While checking for on-line resizing supporttext因此使用 loop device:
apk add losetup
LOOP_DEV="$(losetup -f)"
losetup "$LOOP_DEV" /dev/mmcblk0p2
resize2fs -f "$LOOP_DEV"
losetup -d "$LOOP_DEV"
rebootbash最终:
df -h /bash实测:
/dev/root 14.2G
Used 49.6M
Available 14.1Gtext扩容完成。
三、配置 Tailscale Subnet Router#
R68S 作为 192.168.1.0/24 的入口,并把远程 Tailnet 客户端的流量安全地转发到 LAN。
1. 安装并启动 Tailscale#
更新软件仓库:
apk updatebash安装:
apk add tailscalebash启用并启动:
/etc/init.d/tailscale enable
/etc/init.d/tailscale startbash检查内核转发:
sysctl net.ipv4.ip_forward
sysctl net.ipv6.conf.all.forwardingbash期待输出:
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1text2. 加入 Tailnet,并发布 LAN 子网#
R68S LAN:
192.168.1.0/24text执行:
tailscale up \
--hostname=r68s \
--advertise-routes=192.168.1.0/24 \
--accept-dns=falsebash通过终端给出的 Tailscale 登录 URL 完成账号授权。
检查:
tailscale status
tailscale ip -4
tailscale ip -6bash本机实测:
R68S Tailscale IPv4:
100.101.102.1
R68S Tailscale IPv6:
fd7a:115c:a1e0::101:102:1text3. 在管理后台批准 Subnet Route#
进入:
Tailscale Admin Console
→ Machines
→ r68s
→ Edit route settingstext批准:
192.168.1.0/24text
4. 在 ImmortalWrt 中注册 tailscale0#
LuCI:
网络
→ 接口
→ 添加新接口text配置:
名称: tailscale
协议: 不配置协议 / Unmanaged
设备: tailscale0text保存并应用。

验证:
ubus call network.interface.tailscale statusbash实测关键项:
"up": true
"l3_device": "tailscale0"
"proto": "none"
"device": "tailscale0"text5. 配置 firewall4 访问 LAN#
LuCI:
网络
→ 防火墙
→ 区域
→ 添加text配置:
名称: tailscale
输入: ACCEPT
输出: ACCEPT
区域内转发: ACCEPT
涵盖网络: tailscale
IP 动态伪装 / Masquerading: 开启
TCP MSS 钳制: 开启
允许转发到目标区域: lan
允许来自源区域的转发: 留空text
逻辑链路:
flowchart LR
A["Tailscale 客户端"] --> B["tailscale0"] --> C["tailscale firewall zone"]
C --> D["R68S 本机"]
C --> E["LAN 192.168.1.0/24"]mermaid验证生成规则:
nft list chain inet fw4 input_tailscalebash实测:
jump accept_from_tailscaletext以及:
nft list chain inet fw4 forward_tailscalebash实测:
jump accept_to_lantext本配置同时采用:
tailscale set --snat-subnet-routes=falsebash由 OpenWrt firewall zone 的 Masquerading 处理 LAN 侧 NAT。
四、配置远程客户端与 Windows RDP#
远程笔记本通过 Tailscale 进入 R68S,再由 R68S 转发到台式机的 192.168.1.100:3389。
1. 配置远程笔记本到 R68S 的链路#
笔记本加入同一 Tailnet。
实测:
zz-notebook:
100.101.102.2
r68s:
100.101.102.1text允许使用 R68S 发布的子网路由:
tailscale set --accept-routes=truepowershell验证路由:
Get-NetRoute -DestinationPrefix 192.168.1.0/24powershell正常应指向:
Interface: Tailscale
NextHop: 100.100.100.100text本地维护时注意路由冲突: 如果笔记本同时:
物理网线直连 R68S LAN + Tailscale accept-routes=truetextWindows 可能同时存在两条,造成路由抢占:
192.168.1.0/24 → 本地以太网
192.168.1.0/24 → Tailscaletext因此本地插线维护时:
tailscale set --accept-routes=falsepowershell真正远程使用时:
tailscale set --accept-routes=truepowershell远程笔记本只通过校园网接入,不连接 R68S LAN。
测试:
tailscale ping r68spowershell输出:
via [240c:...]:41641 in 3~6mstext说明已经建立 IPv6 Direct。
测试 R68S LAN IP:
ping 192.168.1.1powershell测试 LuCI:
Test-NetConnection 192.168.1.1 -Port 80powershell浏览器:
http://192.168.1.1text能够远程打开 LuCI。
2. 配置台式机网络与固定地址#
台式机最终直接使用原生 2.5G 有线网卡连接 R68S LAN。
原生网卡(以你实际的为准):
名称: 以太网
状态: Up
LinkSpeed: 2.5 Gbps
MAC: AA-BB-CC-DD-EE-FFtext首次直接接入 R68S 后,如 Windows 临时获得:
169.254.x.xtext重新获取 DHCP:
ipconfig /release "以太网"
ipconfig /renew "以太网"powershell实测随后正常获得:
IPv4: 192.168.1.158
Gateway: 192.168.1.1text说明:物理链路正常、DHCP 正常、R68S LAN 正常。
将网络设为 Private。 检查:
Get-NetConnectionProfile -InterfaceAlias "以太网"powershell如果为 Public,则执行:
Set-NetConnectionProfile -InterfaceAlias "以太网" -NetworkCategory Privatepowershell最终使用 Private 网络配置文件。
设置永久 DHCP 静态租约。 LuCI:
网络
→ DHCP/DNS
→ 静态租约text最终配置:
主机名: DESKTOP
MAC: AA:BB:CC:DD:EE:FF
IPv4: 192.168.1.100
租约时间: 未指定
DUID/IAIDs: 留空
IPv6 令牌: 留空
设置标签: 留空
匹配标签: 留空
实例: 未指定
广播: 不勾选
转发/反向 DNS: 不勾选text
保存并应用后,台式机最终显示:
IPv4: 192.168.1.100
Gateway: 192.168.1.1text因此台式机最终固定 LAN 地址:
192.168.1.100text3. 开启 Windows Remote Desktop 并登录账户#
台式机:
设置
→ 系统
→ 远程桌面
→ 开启远程桌面text验证 RDP 服务:
Get-NetTCPConnection -LocalPort 3389 -State Listenpowershell实测:
0.0.0.0:3389 Listen
[::]:3389 Listentext本机验证:
Test-NetConnection localhost -Port 3389powershell实测:
TcpTestSucceeded : TruetextRDP 登录账户 (注意替换)。台式机:
whoami
hostnamepowershell实测:
desktop\administrator
DESKTOPtext账户:
DESKTOP\Administratortext检查:
net user Administratorpowershell确认:
账户启用: Yes
本地组成员: Administratorstext之后 RDP 使用:
用户名: DESKTOP\Administrator
密码: 开机密码text4. 远程笔记本最终 RDP 验收#
笔记本:
tailscale set --accept-routes=truepowershell测试最终地址:
Test-NetConnection 192.168.1.100 -Port 3389powershell实测:
ComputerName : 192.168.1.100
RemoteAddress : 192.168.1.100
RemotePort : 3389
InterfaceAlias : Tailscale
SourceAddress : 100.101.102.2
TcpTestSucceeded : Truetext随后使用:
Win + R
mstsctext目标:
192.168.1.100text凭据:
DESKTOP\Administratortext已成功进入台式机 Windows 桌面。
因此完整链路已经实际验证:
flowchart LR
A["远程笔记本<br/>100.101.102.2"] -->|Tailscale| B["R68S<br/>100.101.102.1"]
B -->|"Subnet Route<br/>192.168.1.0/24"| C["DESKTOP<br/>192.168.1.100"]
C -->|TCP 3389| D["Windows Remote Desktop"]mermaid五、稳定性配置: R68S 重启后自动恢复 Tailscale#
核心链路跑通后,再处理这个启动时序问题,增加 WAN ifup 后的数据面检查脚本:
cat > /etc/hotplug.d/iface/99-tailscale-wan-fix <<'SCRIPT'
#!/bin/sh
[ "$ACTION" = "ifup" ] || exit 0
[ "$INTERFACE" = "wan" ] || exit 0
(
sleep 10
ubus call network.interface.wan status 2>/dev/null \
| grep -q '"up": true' || exit 0
TS_ADDR_OK=0
ip -4 addr show dev tailscale0 2>/dev/null \
| grep -q 'inet 100\.' && TS_ADDR_OK=1
TS_ROUTE_OK=0
ip route show table 52 2>/dev/null \
| grep -q '100\.100\.100\.100' && TS_ROUTE_OK=1
if [ "$TS_ADDR_OK" -ne 1 ] || [ "$TS_ROUTE_OK" -ne 1 ]; then
logger -t tailscale-wan-fix \
"Tailscale dataplane incomplete after WAN up, restarting tailscale"
/etc/init.d/tailscale restart
else
logger -t tailscale-wan-fix \
"Tailscale dataplane healthy, no restart needed"
fi
) &
SCRIPT
chmod +x /etc/hotplug.d/iface/99-tailscale-wan-fixbash该脚本的作用:
当 WAN 或 PPPoE 拨号连接建立(ifup)后,会先等待 10 秒钟。接着,脚本会依次检查 tailscale0 接口是否获取到了 100.x 开头的地址,以及 table 52 路由表中是否存在 Tailscale 相关的路由。如果检查发现异常(比如缺少地址或路由),脚本就会自动重启 Tailscale 服务;如果检查结果一切正常,则不进行任何操作。
六、Wake-on-LAN:通过 R68S 远程启动台式机#
1 Windows 网卡电源管理#
路径:
设备管理器
→ 网络适配器
→ Realtek Gaming 2.5GbE Family Controller
→ 属性
→ 电源管理text保留:
☑ 允许计算机关闭此设备以节约电源
☑ 允许此设备唤醒计算机
☑ 只允许幻数据包唤醒计算机text2 Windows 网卡高级设置#
路径:
设备管理器
→ Realtek Gaming 2.5GbE Family Controller
→ 属性
→ 高级textWOL 相关项:
关机 网络唤醒
→ 开启
魔术封包唤醒
→ 开启
样式比对唤醒
→ 建议关闭
网络唤醒和关机连接速度
→ 可使用 10 Mbps First / 低速待机text3 Windows 网卡唤醒权限#
执行:
powercfg /devicequery wake_armedpowershell本机实测包含(以你的网卡为准):
Realtek Gaming 2.5GbE Family Controllertext说明:Windows 已允许该网卡唤醒系统
4 主板 BIOS / UEFI 配置#
配置为:
PME 唤醒:开启 / Enabled
解释:
→ 允许 PCIe 设备触发 Power Management Event
→ 网卡收到 Magic Packet 后可以唤醒主机text5 R68S 安装 Wake-on-LAN#
SSH R68S:
apk add luci-app-wolbashCLI 测试命令:LAN Bridge:
br-lantext发送 Magic Packet:
etherwake -b -i br-lan AA:BB:CC:DD:EE:FFbash6 LuCI Wake-on-LAN 页面配置#
进入:
LuCI → Wake on LANtext默认 Binary:
Etherwaketext无需额外安装 wakeonlan。
点击:添加
为 DESKTOP 配置:
名称:DESKTOP
MAC 地址:AA:BB:CC:DD:EE:FF
接口:br-lan
广播:开启
密码:留空text保存并应用。
七、RDP 显示与帧率优化(可选)#
远程会话默认常见约 30 FPS;在远程主机上设置 DWMFRAMEINTERVAL=15 可以把 RDP 的最大帧率提高到 60 FPS。
在远程主机上以管理员 PowerShell 执行:
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations" `
/v DWMFRAMEINTERVAL `
/t REG_DWORD `
/d 15 `
/fpowershell确认:
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations" `
/v DWMFRAMEINTERVALpowershell应该看到:
DWMFRAMEINTERVAL REG_DWORD 0xfpowershell如果有 GPU,推荐把 GPU 加速也打开。运行:
Win + R
gpedit.mscplaintext进入:
计算机配置
→ 管理模板
→ Windows 组件
→ 远程桌面服务
→ 远程桌面会话主机
→ 远程会话环境plaintext启用下面三个配置:

八、故障排查#
1. ping 台式机超时,但 RDP 正常#
远程测试中:
ping 192.168.1.100powershell曾超时,但同时:
Test-NetConnection 192.168.1.100 -Port 3389powershell返回:
TcpTestSucceeded : Truetext原因:
Windows 防火墙可以阻止 ICMP Echo
但允许 TCP 3389text因此判断 RDP 链路是否正常时,以 TCP 3389 是否成功为准。
无需为了 ping 开放而关闭 Windows 防火墙。
2 R68S 看似在线,但 LAN 访问失败#
先检查:
ip addr show tailscale0bash正常必须包含:
inet 100.101.102.1/32
inet6 fd7a:115c:a1e0::101:102:1/128text如果只有:
fe80::...text执行:
/etc/init.d/tailscale restartbash并检查 hotplug 自动修复脚本。
3 检查 firewall4#
nft list chain inet fw4 input_tailscale
nft list chain inet fw4 forward_tailscalebash正常应分别包含:
jump accept_from_tailscale
jump accept_to_lantext4 笔记本无法访问 192.168.1.0/24#
确认:
tailscale set --accept-routes=truepowershell并:
Get-NetRoute -DestinationPrefix 192.168.1.0/24powershell应走 Tailscale。
5 本地插 R68S 网线时 LuCI 反而打不开#
关闭 Tailscale 子网路由接收:
tailscale set --accept-routes=falsepowershell避免本地 192.168.1.0/24 与 Tailscale 192.168.1.0/24 产生路由冲突。
6 台式机得到 169.254.x.x#
说明 DHCP 暂未成功。
执行:
ipconfig /release "以太网"
ipconfig /renew "以太网"powershell正常最终应获得:
192.168.1.100
Gateway 192.168.1.1text7 台式机 ping 不通但 RDP 正常#
测试:
Test-NetConnection 192.168.1.100 -Port 3389powershell只要:
TcpTestSucceeded : Truetext即可确认 RDP 网络正常。ICMP Echo 是否开放不影响远程桌面。