Wireguard 对端之间通过中继服务器通信

上篇文章中,笔者使用 Wireguard 建立了一个 VPN,基本的网络拓扑图 1 所示。ESLAB 和 Mobile 使用 PC 作为中继服务器,连接在同一个子网内。ESLAB 可以和作为中继服务器的 PC 之间自由通讯,Mobile 也可以和 PC 之间自由通讯,然而 ESLAB 和 Mobile 之间却无法建立连接。经过好一番搜索,笔者才意识到作为中继服务器的主机上没有开启 IP 转发(路由)。

Wireguard-VPN-topology
图1. VPN 子网拓扑图

要在 Windows 中开启路由转发,首先通过 Powershell 查看当前所有接口的编号与状态:

Get-NetIPInterface | select ifIndex,InterfaceAlias,AddressFamily,ConnectionState,Forwarding | Sort-Object -Property IfIndex | Format-Table

执行完后可以看到所有接口的编号 ifIndex,以及名称,是否启用了 Forwarding 等等,如图 2 所示。

图2. 接口状态

最后,根据接口编号指定某一接口启用 Forwarding 功能:

Set-NetIPInterface -ifindex <required interface index from table> -Forwarding Enabled

设置完后再次查看接口状态,可以看到由 Disabled 变为 Enabled。连上 VPN 后,ESLAB 和 Mobile 之间两个客户端也能 ping 通了。设置完成。

参考资料

发表回复

您的电子邮箱地址不会被公开。