Windows下使用N2N组建虚拟局域网(点对网)

N2N 2022/03/30

之前分别写过CentOS、OpenWRT下通过N2N实现网对网互通的文章

OpenWRT下使用N2N组建虚拟局域网(点对网)

CentOS下使用N2N组建虚拟局域网(点对网)

有朋友问,没有Linux或者软路由环境,N2N组网的双方都是Windows,该如何实现这个功能?

环境

两台物理机(Win10&11,Win7未测试,且均已关闭防火墙),分属不同的物理局域网下,记为A和B,其中

A的虚拟IP为 192.168.123.9 ,B的虚拟IP为 192.168.123.101

B的物理网IP为 192.168.3.101 ,B的物理网IP段为 192.168.3.0/24,B物理网段内有一台NAS记作C 192.168.3.200

现在,想通过N2N在A端访问到B端物理网下的这台NAS,实现 A → 虚拟网 →  B → 物理网 →  C ,如下图

那么在上述数据流向中,B充当连接A—C间的网关角色,转发A—C间的数据。

1.B端开启IP路由转发

这里的 IP路由 其实就是Linux下的 ip forward,系统默认关闭,需手动开启

方法1

重启电脑生效

方法2

开启IP转发功能,使用PowerShell(非CMD)执行命令

Set-NetIPInterface -Forwarding Enabled

检查开启状态,同样使用PowerShell(非CMD)执行命令

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

截图可以看到IP转发已开启(Enable),否则是关闭状态(Disable)

方法3

注册表定位到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

修改 IPEnableRouter 的值为 1

然后重启电脑,命令行输入 ipconfig /all 查看是否开启

2.B端开启网络共享

这里的网络共享,可以理解为桥接、或者NAT,目的是打通两张网卡(物理网卡、虚拟网卡)

另外我这边环境是Win10和Win11,在Win7下未测试,请自测

方法1

在EasyN2N里分别选择要共享的物理网卡和N2N所使用的虚拟网卡,点击共享

注:根据机器情况,这里可能会出现很多网卡,通过本机局域网IP地址找到物理网卡;虚拟网卡若未连接,没有IP显示,则会显示网卡名,TAP-Windows Adapter V9

再次下拉菜单,可以看到已设置为共享状态(公有共享为物理网卡,私有共享为虚拟网卡)

方法2

找到B端本机的物理网网卡(非TAP虚拟网卡)

jie

右键 — 属性 — 共享,勾选共享,确认

注:部分系统下,此界面可能会出现选择网卡的选项,选择本机虚拟网卡即可

此时物理网卡状态改变

为了防止重启后共享状态失效,可以修改ICS(Internet Connection Sharing)服务为自启动

重启一下NAN

3.A端写路由表

举个例子,A要经过B到C去,但是怎么走?A端系统默认是不知道的,需要指路。

所以需要在A端通过添加路由表的方式来告知数据应该怎么分发。

概括一下:在A端任何目的地为 192.168.3.x(B端物理网下设备) 的数据包,都会经过 192.168.123.101(B的虚拟IP) 网关来转发

目标IP:192.168.3.0  掩码:255.255.255.0  网关:192.168.123.101

方法1

在 EasyN2N 里添加

方法2

管理员权限执行CMD

#参数 -p 可以将添加的路由设置为永久有效,重启电脑不会丢失路由
route add 192.168.3.0 mask 255.255.255.0 192.168.123.101 -p

4.A\B两端分别添加参数

-r

5.测试

A端 ping C的物理IP

说明

上述操作仅实现了点对网(客户端A访问到B的物理网的任意设备),并且B端物理网的设备无法通过B反向访问到A。

若要实现客户端B访问到A物理网的任意设备,则需要再按本文分别在A\B操作一遍,但也仅仅只是实现了反向的点对网。

若要实现网对网(比如A物理网到B的物理网互通),还需要对A\B的主路由进行操作,通过指定静态路由等方式实现。

这里就略了,以后再写吧。



22 条评论

  • xietravel 评论于 回复

    如果设置好后只能访问到B的物理网IP,B局域网内的访问不到,可以在n2n把网卡共享关闭,到控制面板手动开启共享网卡,就能访问B局域网内了

  • 评论(本站已开启评论回复邮件通知功能,请如实填写邮箱以便及时收到回复)