前提

我想组一个游戏私服,异地组网

个人理解:把异地不同的终端设备,加入到一个虚拟的局域网中,使其中的设备之间可以互相访问


调研

  • ZeroTier:根节点在很遥远的地方,延迟比较高,偶尔会跳到 300ms,本人在上海
  • 蒲公英:只能三个人
  • Wireguard :目前在探索
  • TailScale:等待探索,听说是基于 Wireguard ,并支持 P2P 链接

效果

我用手机198.18.0.2ping 一下 198.18.0.3,是可以通的

在这里插入图片描述

加入钓鱼游戏

平板 198.18.0.3 :是主机,农场主

手机 198.18.0.2 :是客机,黑奴

在这里插入图片描述

也还行,比 ZeroTierOne 延迟要低一些,吧…可是我都买了服务器了!!为啥延迟还这么高呢,可恶,容我再研究研究
实测上海的校园网在当主机的时候,其他机器连不上,ping的话也很容易丢包,发消息也不行

待解决的问题

  1. 延迟好高… 应该是我配置的问题
  2. 连接服务器不能上网,应该是流量转发的问题 (这个问题解决了,配置 dns 服务器为 8.8.8.8, 之前是 1.1.1.1)

步骤

公网服务器上安装 Wireguard

安装 Wireguard, 其中 -y 是自动安装的时候,遇到选择会选择

sudo apt install wireguard -y

在这里插入图片描述

启动 Wireguard UI 界面 萤火虫 Firefly

下载 点击我下载 Firefly

放到一个目录中,然后运行

./文件名

在这里插入图片描述

再云服务器,以及宝塔管理中开放端口

如果服务器使用的是各种云服务,记得在云服务管理后台上开放萤火虫所需的udp端口50120、K端口5012150122

然后访问你的 服务器 IP + 提示的端口,看上面的图,它启动会告诉你,是在那个端口的

输入登录密码,默认密码是 firefly,之后进入如下界面

在这里插入图片描述

添加两个客户端

在这里插入图片描述

到这里应该就可以链接了,不过中间可能遇到些问题,以及想要修改一下默认的配置之类的操作

说明

firefly 生成的 config 以及 peer 的说明

在你运行 firefly 的时候,会在同级目录下,生成一个 conf 的文件夹
在这里插入图片描述

里面有两个文件,包含服务器信息,以及链接的客户端节点信息

在这里插入图片描述

其中 config 大概是这个样子

在这里插入图片描述
这里其实就是 wireguard 的配置,只不过讨了个壳子

这些配置会默认覆盖掉 etc/wireguard/wg0.conf,如果要修改这里的配置,保存之后要重启进程才会生效

peers.json 大概是这个样子,保存我们配置节点的信息

在这里插入图片描述

修改config

自测了一下,服务器修改 config 之后,下载的节点的 config 文件会有更新,需要手机这边重新扫码,来更新节点的配置信息

重启 firefly

当我们修改 conf.json 里的信息时,需要保存后重启一下才会生效

寻找 firefly-linux-amd64 进程

root@hcss-ecs-d647:/myScript# ps aux | grep firefly-linux-amd64
root        2733  0.0  0.7 1236452 14444 ?       Sl   Nov12   0:01 ./firefly-linux-amd64
root       10713  0.0  0.1   6612  2308 pts/1    S+   06:17   0:00 grep --color=auto firefly-linux-amd64

然后干掉它

kill -9 2733

从输出看,这个 grep --color=auto firefly-linux-amd64 进程实际上是由 ps aux | grep firefly-linux-amd64 命令本身生成的。它并不是 Firefly 程序的主进程,而是 grep 命令的结果,用来在终端显示搜索关键词的行。
原因: 每次你运行 ps aux | grep firefly-linux-amd64,系统会启动一个 grep 进程来执行搜索。所以这个进程短暂存在,然后通常立即终止。
验证方法: 等待几秒钟后再重新运行 ps aux | grep firefly-linux-amd64,这个 grep 进程应该不会再显示,除非你再次运行该命令。
总结: 这个 grep 进程不需要手动终止,它只是在你运行 ps aux | grep 命令时瞬时生成的辅助进程,用于显示搜索结果。

ifconfig 验证

ifconfig 能看到这个端口

在这里插入图片描述

安卓端链接

到你的管理页面。添加好客户端,然后点一下这个二维码

在这里插入图片描述

手机上打开软件,右上角扫码链接,添加服务器

在这里插入图片描述

然后连接一下

在这里插入图片描述

尝试用 198.18.0.2ping 一下 198.18.0.3 测试是否能通,于是就有了开头的样子

手机端用 Termux 软件,用 ping 命令测试

链接原理图例

在这里插入图片描述

参考

  1. 【司波图】基于Wireguard组网技术的内网穿透教程
  2. 萤火虫 WireGuard Server
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐