使用 WireGuard 可以方便地将不同内网中的智能家居设备连接起来。
** Warning: 以下是由 GPT-3 辅助生成的草稿,请仔细甄别。
OpenWrt设置
首先,我们需要在OpenWrt路由器上安装WireGuard。可以通过以下命令安装:
opkg update
opkg install wireguard
安装完成后,我们可以在/etc/config/wireguard目录下创建一个配置文件,并配置网络参数。例如,如果我们想要创建一个名为wg0的虚拟网卡,并且该虚拟网卡的IP地址为10.0.0.1,则可以按照如下方式配置:
config interface 'wg0'
option proto 'wireguard'
option private_key '<私钥>'
option listen_port '51820'
option fwmark '0xca6c'
config wireguard_wg0
option public_key '<公钥>'
option endpoint_address '<远程IP地址>'
option allowed_ips '10.0.0.1/24'
config route
option interface 'wg0'
option target '10.0.0.1'
option netmask '24'
option gateway '10.0.0.1'
为了让客户端能够访问虚拟网卡,我们还需要设置路由选择。这样,客户端就能够根据目标IP地址选择通过虚拟网卡进行通信。这可以通过如下方式实现:
config route
option interface 'wg0'
option target '<目标IP地址>'
option netmask '<子网掩码>'
option gateway '<网关地址>'
上面的代码中,我们设置了虚拟网卡的接口名称、目标IP地址、子网掩码和网关地址。这样,当客户端向指定的目标IP地址发送数据时,路由器就会通过虚拟网卡进行路由选择。
Linux客户端设置
对于Linux客户端,我们可以使用WireGuard的命令行工具wg来配置连接。首先,我们需要创建一个配置文件,并配置服务器的IP地址和端口号:
[Interface]
PrivateKey = <私钥>
Address = <客户端IP地址>/<子网掩码>
DNS = <DNS服务器地址>
[Peer]
PublicKey = <服务器公钥>
Endpoint = <服务器IP地址>:<端口号>
AllowedIPs = 0.0.0.0/0, ::/0
然后,我们可以使用wg命令来加载配置文件,并启动WireGuard连接:
wg-quick up /etc/wireguard/wg0.conf
这样,我们就可以通过虚拟网卡wg0访问服务器了。
Windows客户端设置
其包括两部分:启用路由转发和配置WireGuard连接。
首先,我们需要在Windows操作系统中启用路由转发。这样,Windows客户端才能够访问虚拟网卡。具体来说,我们可以按照如下步骤操作:
- 打开注册表编辑器,找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\IPEnableRouter,并将其设置为1。
- 在服务管理器中,将RemoteAccess(Routing and Remote Access)服务设为自动,并启用。
然后,我们需要配置WireGuard连接。这样,Windows客户端才能通过虚拟网卡访问服务器。配置过程如下:
- 下载并安装WireGuard的客户端工具。
- 使用客户端工具创建一个配置文件,并配置服务器的IP地址和端口号:
[Interface]
PrivateKey = <私钥>
Address = <客户端IP地址>/<子网掩码>
DNS = <DNS服务器地址>
[Peer]
PublicKey = <服务器公钥>
Endpoint = <服务器IP地址>:<端口号>
AllowedIPs = 0.0.0.0/0, ::/0
使用客户端工具加载配置文件,并启动WireGuard连接
wg-quick up /etc/wireguard/wg0.conf
这样,Windows客户端就能够通过虚拟网卡wg0访问服务器了。
参考链接
https://michlstechblog.info/blog/windows-howto-enable-ip-routing/
https://learn.microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/setup-nat-network