通过WireGuard实现内网穿透(高级篇)

前言

上一篇《通过WireGuard实现内网穿透》已成功让两个广域网上的节点组成了局域网。本篇将介绍一些高级用法。

打通节点内网

上一篇文章已经将两个节点加入到一个192.168.168.0/24的局域网中。现在其中一个节点(thinkpad)本身还有一个自己的内网(例如172.16.3.0/24),现在希望wireguard组建的局域网中除了可以访问thinkpad节点外,还可以访问thinkpad节点内网中的设备。

thinkpad节点配置

注意是在有内网的节点(同时也是你想把这个内网共享出去的节点)下配置,本例子是在thinkpad节点设置。
不同的操作系统配置方法不一样,本例子的thinkpad节点是windows操作系统。

开启路由转发

打开注册表编辑器并转到以下路径:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

IPEnableRouter的值修改为1,然后重启电脑。

设置网络共享

选择你当前上网的网络适配器,右键,属性,选择“共享”,然后勾选“允许其他用户网络通过此计算机的Internet连接”,并从已有的网络连接中选择当前wireguard节点的名字。

更改默认 Internet 连接共享 IP

默认情况下,启用Internet共享(NAT)时,Windows会将适配器的IP地址更改为其他地址(以避免冲突)。但是,我们已经知道我们想要适配器的IP地址(在wireguard 配置的 [interface] 块中设置),在我们的例子中是192.168.168.2
要修改Windows将切换到的默认IP,只需更改注册表中的设置即可。
打开注册表编辑器并转到以下路径:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\SharedAccess\Parameters

然后只需将ScopeAddressStandaloneDHCPAddress更改为我们想要的 IP 地址(我这里thinkpad的地址为192.168.168.2)。

在重新启动时启用自动共享

由于存在互联网连接共享在重启时不会自动启动的 Windows 错误,我们需要更改一些设置以确保互联网共享已启动。
打开服务窗口,找到“Internet Connection Sharing (ICS)”,将启动类型更改为“自动”:

完成后,最后添加一个注册表:

Path: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\SharedAccess
Type: DWORD (32bit)
Setting: EnableRebootPersistConnection
Value: 1

注:以上设置只对win10有效。win7重启后,网络连接共享需要重新设置一次。

其他节点配置

在其他想要连入thinkpad内网的节点配置。本例子中aliyun节点如果想通过172.16.3.3访问处于thinkpad内网中的db server服务器,那么需要在aliyun节点做如下配置:

[Interface]
# Name = aliyun
...

[Peer]
# Name = thinkpad
...
AllowedIPs = 192.168.168.2/32,172.16.3.0/24

在aliyun节点的配置文件中,找到[Peer]这一节,在AllowedIPs配置项后面,加上thinkpad节点的内网网段:,172.16.3.0/24
重启wireguard服务,现在aliyun节点可以直接通过172.16.3.x访问thinkpad内网的db_server和web server了。

测试

做了以上配置后,我们在aliyun节点使用如下命令打印路由表:

route -n

如果你是windows系统,使用route print命令打印路由表。

可以看到凡是访问172.16.3.0网段的请求将通过aliyun网卡发送出去。

发表评论

邮箱地址不会被公开。 必填项已用*标注