分享技术 · 探索极限 · Code is Art
安全 发布 2026-05-11 260阅读 约 9分钟阅读

WireGuard 反向访问客户端:如何从家里远程桌面连接外网笔记本

WireGuard 反向访问客户端:如何从家里远程桌面连接外网笔记本

大多数 WireGuard 教程只讲“外部设备如何访问家里内网”,例如手机在外面访问 NAS、OpenWrt、服务器。

但有时候我们需要反过来:

笔记本在外网
笔记本通过 WireGuard 连回家里
家里内网电脑想远程桌面连接这台笔记本

也就是从家庭内网反向访问 WireGuard 客户端。本文整理这个场景的配置和排障方法。

一、场景说明

假设网络如下:

家庭内网:192.168.1.0/24
OpenWrt:192.168.1.2
WireGuard 网段:10.7.0.0/24
OpenWrt wg0:10.7.0.1
手机:10.7.0.2
笔记本:10.7.0.3

笔记本当前不在家里,而是通过外部网络上网,例如:

笔记本 → 手机热点 → 运营商网络 → 家里公网 IP → OpenWrt WireGuard

目标是让家里内网电脑远程桌面连接:

10.7.0.3

这个地址是笔记本的 WireGuard 隧道 IP。

二、先确认笔记本是独立 Peer

不要让手机和笔记本共用同一份 WireGuard 配置。

正确规划:

手机:10.7.0.2/32
笔记本:10.7.0.3/32

OpenWrt 上笔记本 Peer 应该是:

描述:laptop
允许的 IP:10.7.0.3/32
为允许的 IP 创建路由:勾选
持续保持连接:25

在 OpenWrt 上查看:

wg show

应该看到类似:

peer: 笔记本公钥
  endpoint: 外部公网IP:随机端口
  allowed ips: 10.7.0.3/32
  latest handshake: 几秒前
  transfer: xxx received, xxx sent

如果 allowed ips10.7.0.3/32,并且有 latest handshake,就说明笔记本已经连入 WireGuard。

三、确认 10.7.0.3 是笔记本

在笔记本 Windows 上执行:

ipconfig

找到 WireGuard 网卡,应该能看到:

IPv4 地址:10.7.0.3

也可以用 PowerShell:

Get-NetIPAddress | findstr 10.7

如果笔记本没有 10.7.0.3,说明配置不对。

四、OpenWrt 防火墙允许 lan → wg

外部客户端访问家庭内网时,需要:

wg → lan

家庭内网访问外部 WireGuard 客户端时,需要:

lan → wg

进入 OpenWrt:

网络 → 防火墙 → 区域 → wg

建议:

涵盖网络:wg0
输入:接受
输出:接受
转发:接受
TCP MSS 钳制:开启
IP 动态伪装:不勾选

如果只需要外部访问家里:

允许转发到目标区域:lan

如果还需要家里访问外部客户端:

允许来自源区域的转发:lan

最终需要双向:

wg → lan
lan → wg

五、内网设备必须知道 10.7.0.0/24 在哪里

如果你已经把全屋设备默认网关设置为 OpenWrt:

默认网关:192.168.1.2

那么内网设备访问 10.7.0.3 时会自动交给 OpenWrt。

如果某些设备默认网关仍然是主路由:

默认网关:192.168.1.1

那么主路由需要添加静态路由:

目标网段:10.7.0.0/24
下一跳:192.168.1.2

示例:

目标网段:10.7.0.0/24
下一跳:192.168.1.2

否则内网设备不知道如何到达 WireGuard 网段。

六、测试三层网络

在家里内网电脑上测试:

ping 10.7.0.3

如果能 ping 通,说明:

家庭内网 → OpenWrt → WireGuard → 外网笔记本

这条链路已经通了。

如果 ping 不通,检查:

  • 笔记本 WireGuard 是否在线。
  • wg show 是否有 latest handshake。
  • OpenWrt Peer allowed IP 是否是 10.7.0.3/32
  • 是否勾选“为允许的 IP 创建路由”。
  • 防火墙是否允许 lan → wg
  • 内网设备默认网关是否是 OpenWrt。
  • 主路由是否缺少到 WireGuard 网段的静态路由。

七、远程桌面连接地址

如果笔记本的 WireGuard IP 是:

10.7.0.3

那么家里内网电脑远程桌面应该连接:

10.7.0.3

不要连接:

  • 笔记本当前外部网络的 IP。
  • 手机热点分配给笔记本的 IP。
  • 家里公网域名。
  • 手机的 WireGuard IP。

八、能 ping 通但远程桌面不通

如果能 ping 通 10.7.0.3,但 RDP 不通,说明 WireGuard 网络没问题,问题大概率在 Windows 远程桌面服务。

先在家里内网电脑测试端口:

Test-NetConnection 10.7.0.3 -Port 3389

如果:

TcpTestSucceeded : True

就可以直接用远程桌面连接 10.7.0.3

如果是 False,去笔记本上排查 Windows RDP。

九、笔记本本机检查 3389

在笔记本上执行:

Test-NetConnection localhost -Port 3389

如果本机都失败,说明笔记本没有正常监听 RDP,和 WireGuard 无关。

检查服务:

Get-Service TermService

检查 RDP 配置:

Get-ItemProperty 'HKLM:\System\CurrentControlSet\Control\Terminal Server' -Name fDenyTSConnections

fDenyTSConnections 应该是:

检查 RDP-Tcp 配置:

Get-ItemProperty 'HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' |
Select-Object fEnableWinStation, PortNumber, LanAdapter, UserAuthentication, SecurityLayer

常见正常值:

fEnableWinStation  : 1
PortNumber         : 3389
LanAdapter         : 0
UserAuthentication : 1
SecurityLayer      : 2

查看是否有 RDP 监听器:

qwinsta

正常应该看到类似:

rdp-tcp    Listen

查看端口监听:

netstat -ano | findstr LISTENING | findstr :3389

如果没有监听,说明 RDP 服务端没有真正启动。

十、开启 Windows 防火墙规则

笔记本管理员 PowerShell:

Enable-NetFirewallRule -DisplayGroup "Remote Desktop"

如果 WireGuard 网络被识别为公用网络,远程桌面可能仍然被防火墙拦截。

查看网络类型:

Get-NetConnectionProfile

找到 WireGuard 对应接口,把它改成专用网络:

Set-NetConnectionProfile -InterfaceAlias "你的 WireGuard 接口名" -NetworkCategory Private

接口名以 Get-NetConnectionProfile 显示为准。

十一、Windows 版本限制

Windows 家庭版不能作为远程桌面服务端。需要:

Windows Pro
Windows Enterprise
Windows Education

如果是 Home 版,可以考虑:

  • RustDesk
  • AnyDesk
  • VNC
  • Parsec
  • 升级到 Windows Pro

十二、排障逻辑总结

情况 1:ping 不通 10.7.0.3

优先查:

WireGuard peer
allowed_ips
route_allowed_ips
lan → wg 防火墙
内网设备默认网关
主路由静态路由

情况 2:ping 通,但 3389 不通

优先查:

Windows 远程桌面是否启用
TermService 是否运行
RDP-Tcp 是否监听
Windows 防火墙
WireGuard 网卡网络类型

情况 3:笔记本本机 localhost:3389 都不通

说明问题在 Windows RDP 服务端,不在 WireGuard。

总结

WireGuard 反向访问客户端的关键点是:

  • 每个客户端使用独立 IP 和独立密钥。
  • OpenWrt 上 Peer 的 allowed IP 必须是客户端的 /32 地址。
  • OpenWrt 要允许 lan → wg
  • 家庭内网设备要知道 10.7.0.0/24 走 OpenWrt。
  • 远程桌面目标是客户端的 WireGuard IP,例如 10.7.0.3
  • 能 ping 通但 RDP 不通时,优先排查 Windows 远程桌面服务本身。

这类场景很适合远程维护外出笔记本、临时办公电脑,或者把外部设备安全接入家庭内网。

发表回复