搭建zerotier私有planet服务器实现公网游戏级别远程

服务器 0

简介

zerotier是一个虚拟局域网工具,官方提供了自己的根服务器(planet)作为数据转发,但由于服务器大多在境外,国内访问延迟较高且不稳定。此时,搭建自己的planet服务器就是不二之选

方法

一、购买云服务器

如果你没有自己的有固定公网IP的服务器,则需要购买一台云服务器。
购买建议:如果钱多,可以选择阿里云,腾讯云。如果钱少,可以选择狗云,三丰云,观星云等众多小服务器厂商。
配置:最好2核2G,带宽按需选:如果只是远程办公,3Mbps公网带宽就够了。如果是游戏级别,带宽最好在10Mbps以上。可选共享带宽。
系统镜像:Ubuntu 20.04
地域:游戏级别远程最好选国内的,且跟你所在地越近越好。办公远程的话可以拓宽至香港以及周边国家的服务器,如新加坡,韩国

我自己购买的是一台阿里云99一年的服务器(用于办公远程)2Mbps,和一台观星云(用于游戏远程)30Mbps。本文测试基于观星云这台

阿里云
阿里云配置
观星云
观星云

二、安装(基于Ubuntu)

参考:https://blog.csdn.net/smzq123/article/details/128760942?spm=1001.2014.3001.5506

1. 升级云桌面的软件

依次执行

apt-get upgrade
apt-get dist-upgrade

等待升级完成

2. 安装nlohmann-json-dev

根据引用文章里的原文说

“若使用的是Ubuntu16.04,在编译Zerotier的时候会出现找不到nlohmann/json.h的问题,需要安装nlohmann-json-dev:”

所以以防万一,都安装一下
执行

wget http://kr.archive.ubuntu.com/ubuntu/pool/universe/n/nlohmann-json/nlohmann-json-dev_2.1.1-1.1_all.deb && dpkg -i nlohmann-json-dev_2.1.1-1.1_all.deb

如果执行报错,或者链接失效,可去我百度网盘下载nlohmann-json-dev_2.1.1-1.1_all.deb,然后上传到服务器之后在对应文件夹下执行dpkg -i nlohmann-json-dev_2.1.1-1.1_all.deb

链接:https://pan.baidu.com/s/1myeO-3Jyy_RlMeOccPpSQQ
提取码:jxji

3. 安装Zerotier 和 ZtnCui

说明:ZtnCui是一个用来给zerotier呈现配置web界面的东西,开源免费
执行

wget https://gitee.com/opopop880/zerotier_planet/raw/master/zerotier_planet_debain.sh && chmod +x zerotier_planet_debain.sh && ./zerotier_planet_debain.sh

为了防止链接失效,此处贴出链接中“zerotier_planet_debain.sh”的源代码

#!/bin/bash # debain ubuntu自动安装zerotier 并设置的为planet服务器# addr服务器公网ip+port ip=`wget http://ipecho.net/plain -O - -q ; echo` addr=$ip/9993 apt autoremove apt update -y apt install curl -y echo "********************************************************************************************************************" echo "**********deabin unbuntu自动安装zerotier 并设置的为planet服务器 火木木制作 放在root目录执行**********************************" curl -s https://install.zerotier.com/ | sudo bash  identity=`cat /var/lib/zerotier-one/identity.public` echo "identity :$identity==============================================" apt-get -y install build-essential apt-get install git -y git clone https://gitee.com/opopop880/ZeroTierOne.git cd ./ZeroTierOne/attic/world/sed -i '/roots.push_back/d' ./mkworld.cppsed -i '/roots.back()/d' ./mkworld.cpp sed -i '85i roots.push_back(World::Root());' ./mkworld.cpp sed -i '86i roots.back().identity = Identity(/"'"$identity"'/");' ./mkworld.cpp sed -i '87i roots.back().stableEndpoints.push_back(InetAddress(/"'"$addr"'/"));' ./mkworld.cpp source ./build.sh./mkworldmv ./world.bin ./planet/cp -r ./planet /var/lib/zerotier-one//cp -r ./planet /rootsystemctl restart zerotier-one.servicewget https://gitee.com/opopop880/ztncui/attach_files/932632/download/ztncui_0.8.6_amd64.debsudo dpkg -i ztncui_0.8.6_amd64.debcd /opt/key-networks/ztncui/echo "HTTPS_PORT = 3443" >>./.envsecret=`cat /var/lib/zerotier-one/authtoken.secret`echo "ZT_TOKEN = $secret" >>./.envecho "ZT_ADDR=127.0.0.1:9993" >>./.envecho "NODE_ENV = production" >>./.envecho "HTTP_ALL_INTERFACES=yes" >>./.envsystemctl restart ztncuirm -rf /root/ZeroTierOneecho "**********安装成功*********************************************************************************"

此源代码里需要clone一个ZeroTierOne仓库和下载ztncui_0.8.6_amd64.deb文件。如果仓库失效,可以去我百度网盘下载(仓库文件名ZeroTierOne-master),然后自行修改此脚本文件

链接:https://pan.baidu.com/s/18TVyul4DGX-NxUMkZK24WQ
提取码:mky3

4. 下载私有planet文件

进入服务器的/root目录下,可以看到文件planet
下载到客户端电脑上

5. 访问后台

记得先开放tcp 9993跟3000端口,UDP 9993端口
访问http://你的公网IP或者域名:3000/
点击登录,初始用户名admin,初始密码password
在这里插入图片描述
登录后点击添加网络选项卡,添加私有网络
在这里插入图片描述
点击简易安装,分配地址
在这里插入图片描述
在这里插入图片描述

6. 客户端设置(Windows电脑)

在客户端电脑上按Win+R打开运行,输入services.msc打开服务,找到“Zerotier One”服务,单击右键停止他
在这里插入图片描述
在这里插入图片描述
进入“C:/ProgramData/ZeroTier/One”,替换原本的planet文件为自己的planet文件

在这里插入图片描述
再去服务里启动ZeroTier One服务

在任务栏的zerotier图标上单击右键,选择join new network
在这里插入图片描述
输入16位码,点击join
在这里插入图片描述

7. 客户端设置(Android手机)

下载Zerotier Fix.apk

链接:https://pan.baidu.com/s/12j-P6Bari9PG258Wp4ufiQ
提取码:92km
在这里插入图片描述
在Zerotier Fix的设置里打开“启动自定义planet”,然后将自己的planet文件发到手机上,然后点击“设置planet文件”
在这里插入图片描述
然后在主界面的右下角点击加好,添加网络,并输入16位码
在这里插入图片描述

8. 去后台分配IP地址

将刚刚添加的客户端设备勾选“经授权的”和“主动桥接”,并分配IP地址
在这里插入图片描述

9. 使用远程桌面连接或者Parsec连接远程设备

输入刚分配的虚拟局域网IP,就可以连接远程设备(刚添加可能会连不了,可以等一段时间,或者ping通了在连接)
在这里插入图片描述
实测利用Parsec公网远程2K 60帧原神,总延迟大概150ms,带宽能跑在10Mbps-20Mbps(观星云)
在这里插入图片描述

也许您对下面的内容还感兴趣: