局域网游戏联机
原理
局域网游戏通过组播(或者广播)来发现其他游戏玩家,所以通常只需联通组播(或广播)即可完成局域网游戏联机
操作步骤
一、保证VNT网卡能接收组播(或广播)
在Windows上,组播(或广播)只会发送到跃点最低的网卡,所以需要确保vnt的虚拟网卡跃点比其他网卡小 使用powershell执行netsh interface ipv4 show interfaces
查看各网卡跃点(输出的Met即为网卡跃点)
PS D:\> netsh interface ipv4 show interfaces
Idx Met MTU 状态 名称
--- ---------- ---------- ------------ ---------------------------
1 75 4294967295 connected Loopback Pseudo-Interface 1
6 0 1420 connected vnt-tun
11 45 1500 connected WLAN
一般来说只要让vnt在其他的会创建虚拟网卡的工具之后启动即可,保险起见可以不要开其他会创建虚拟网卡的工具
二、游戏联机
先启动VNT,完成组网之后,再启动局域网游戏,此时就能和在局域网下一样正常玩游戏了
流畅度优化:可以考虑开启VNT的数据压缩,从而降低网络压力,增加游戏流畅度
- 在vnt启动参数增加
--compressor lz4
开启压缩(具体查看数据压缩)
相关问题处理
有些局域网游戏可能会不识别组网工具的IP,这里给出处理方法,如还是不能联机请进群反馈
一、游戏识别默认网卡,导致不能组网联机
1.可能的现象
组网后能发现其他游戏用户,但是不能正常进入游戏(组播/广播通了,但是游戏数据没通)
2.排查方法
- 使用命令
netstat -ano |findstr 游戏进程id
查看游戏占用的端口 - 再使用
wireshark
对VNT虚拟网卡和默认网卡进行抓包,看游戏包是不是发到默认网卡去了
3. 解决方法(按顺序操作,命令都使用管理员powershell执行)
- 步骤一: 正常启动VNT
- 步骤二: 找到VNT网卡索引、默认网卡索引、默认网关IP
0.0.0.0路由(有相同就看跃点最低)的就是默认网卡了,此示例中网关IP是192.168.219.40
# 执行route print -4
PS D:\> route print -4
===========================================================================
接口列表
6...........................vnt-tun Tunnel
11...e8 c8 29 d5 26 6b ......Intel(R) Wi-Fi 6E AX11 160MHz
1...........................Software Loopback Interface 1
42...10 15 9d 0d a7 88 ......Hyper-V Virtual Ethernet Adapter
===========================================================================
IPv4 路由表
===========================================================================
活动路由:
网络目标 网络掩码 网关 接口 跃点数
0.0.0.0 0.0.0.0 192.168.219.40 192.168.219.95 45
127.0.0.0 255.0.0.0 在链路上 127.0.0.1 331
网卡的索引可以这么看,此示例VNT的网卡索引是6,默认网卡索引是11,其实用route print -4
在接口列表也能看到
# 执行Get-NetIPConfiguration
PS D:\> Get-NetIPConfiguration
InterfaceAlias : vnt-tun
InterfaceIndex : 6
InterfaceDescription : vnt-tun Tunnel
NetProfile.Name : vnt-tun 109
IPv4Address : 192.168.21.2
IPv6DefaultGateway :
IPv4DefaultGateway :
InterfaceAlias : WLAN
InterfaceIndex : 11
InterfaceDescription : Intel(R) Wi-Fi 6E AX11 160MHz
NetProfile.Name : xxx 2
IPv4Address : 192.168.219.95
IPv6DefaultGateway :
IPv4DefaultGateway : 192.168.219.40
DNSServer : 192.168.219.40
- 步骤三: 添加路由
在vnt执行route
命令,将Interface那一栏的输出都添加到默认路由
命令:route add IP mask 255.255.255.255 192.168.219.40(默认网关IP) metric 1 if 11(默认网卡索引)
特别的:也可以在vnt启动参数随便加个-i参数,例如-i 1.1.1.1/32,10.26.0.3
(此参数的目的是让vnt自行绑定到默认网卡),这样一般就不用添加上面的路由了
- 步骤四: 添加默认路由到VNT网卡
命令:route add 0.0.0.0 mask 0.0.0.0 0.0.0.0 metric 1 if 6(VNT虚拟网卡索引)
此操作是为了让游戏识别到VNT的网卡,添加路由后会断网(这也是有步骤三的原因)
- 步骤五: 启动并进入游戏
此时会发现已经可以正常游戏了
- 步骤六: 删除刚添加的路由
删除刚添加的默认路由:route delete 0.0.0.0 mask 0.0.0.0 0.0.0.0 metric 1 if 6
,删除刚添加的这条默认路由后网络也就恢复了
删除其他添加的路由:将命令中的add
改为delete
再执行一遍即可,注意别删错了,添加了什么路由就删除什么路由,不要多删
一般来说游戏只会在启动或进入游戏对局时识别网卡,所以正常联机后就可以删除添加的路由了
- 如果需要重启游戏,则再执行步骤三、四、五、六即可