Skip to content

Latest commit

 

History

History
40 lines (26 loc) · 1.62 KB

README.md

File metadata and controls

40 lines (26 loc) · 1.62 KB

WireGuardBroadcast

众所周知,WireGuard速度快,轻量化,易搭建,但不支持广播。但是多数局域网游戏都是通过广播数据包来实现房间发现,因此可以通过修改所发数据包目的ip的方式实现房间搜索。

使用方法

配置WireGuard虚拟局域网

(略)

配置Python

配置Python环境,安装scapy以及json5库。

配置配置文件以及运行

配置文件(config.json5)中,

  • debug:为true程序将产生输出,false将禁用输出
  • iface:仅数据包发送端(指进行广播数据包的主机)需要配置,填入从WireShark中,对应虚拟网卡所发送数据包中,Interface ID的值。
  • server_ip:服务端IP地址
  • server_port:服务端接收端口
  • broadcast_list:期望被广播的主机,若为局域网游戏则为全部玩家的虚拟局域网IP地址

保证所有用户config.json5配置相同,将Subscriber.py配置在服务端,Publisher.py配置在数据包发送端。

运行两个文件,需要注意的是,若在Linux中需要以管理员权限运行。

可能出现的问题

Ping不通

关闭防火墙

搜索不到房间

  • 检查广播数据包是否从虚拟网卡中发出,在路由表中通过添加路由表项实现数据包从你的虚拟网卡中发出。例如假设你的虚拟网卡IP是192.168.6.1,参考命令如下

route add 255.255.255.255 MASK 255.255.255.255 192.168.6.1 METRIC 1

  • 避免从Epic、Steam直接运行游戏,找到游戏文件夹中的游戏运行文件直接启动。

  • 可能游戏广播的数据包不是UDP数据包,自行抓包设置嗅探规则。