前置条件
本机配置还不错 但是无外网IP
云服务器 配置不行 但是有外网IP
思路
内网穿透
最开始的时候老想着自己做隧道和端口映射 结果绕了很多弯路 后面才开始挑选工具 Frp是我另外一个朋友使用的 据说比这个快很多 有兴趣可以试试
NPS界面友好 配置简单 赶时间 于是选择这一款穿透软件
https://github.com/ehang-io/nps/
具体操作
windows 客户端 centos 服务端
下载完成之后 按照习惯先部署服务端
打包到云服务器 解压结构如下
当然 压缩包可以删掉 而 nps.log 是我自己输出的 目的是改到后台运行
关于配置文件 端口什么的 都可以在 conf/nps.conf里去更改 具体就不提了
在服务端开启nps服务之后 有几个端口需要打开 因为接下来要去nps自带的web端去配置客户端和隧道
查看服务器防火墙状态 重启防火墙
添加端口 允许访问
8080/tcp端口 web页面的端口 访问地址为 服务器外网IP:8080 端口号
登录的时候注意一下 默认是账号admin 密码123 最好是一开始就改掉
8024/tcp端口 这个是nps服务器的主进程端口 客户端连接的时候需要使用
还有一个是隧道出口 也就是暴露给外网的接口 因为帕鲁的连接是纯udp的 所以只需要开启一个9999/udp的接口即可 这里的9999只是举例
添加完成之后去第二道防火墙设置 我这里的是阿里云
加上之后再来配置客户端 先登录nps自带的web页面
比较直观 留空的确实都可以不填 加密准备等后面有空了再弄
然后点加号 就可以显示这些信息 客户端命令复制一下 后面客户端连接的时候需要
udp隧道其实可以最后加 不过避免跳来跳去 就这里一起配了
新增udp隧道 服务端端口就是你要暴露给外网的端口 也就是刚刚提到的9999/udp端口
而目标IP端口 则是你帕鲁服务器的启动端口 IP直接 ifconfig 找到局域网地址就可以
客户端Windows
CMD 到当前目录 将刚刚复制的客户端命令复制 运行 注意文件路径不要搞错了
出现这个代表连接成功 这里其实可以写个脚本测试下是否连通 这里不再赘述
至此 内网穿透完成
接下来是本地帕鲁服务器的部署
先贴上官网教程 https://tech.palworldgame.com/dedicated-server-guide
当时没搞清楚这俩的区别 于是乎选择了下面的SteamCMD模式来开服 其实应该直接用这个的
下面介绍我用SteamCMD下载帕鲁服务器文件开服的方法
下载完成steamcmd之后初识只有一个exe二进制文件 打开会自动更新 完成之后 开始下载服务端文件
这里注意一下不要直接将整个内容复制进去 我直接复制之后 出现了如下界面
开始还没反应过来 心想这游戏文件怎么是这么传过来的 但是也没多想 就等
三个小时后发现不对劲了 怎么可能会这么慢 于是查询别人的情况 发现完全不是这样 于是重开
login anonymous 匿名登录
app_update 2394010 validate 下载帕鲁服务端
下载完成 关闭
编写启动脚本
这个和linux的语法一致 就不细说了 保存文件 改后缀为.cmd文件
双击运行 出现如下画面 代表启动成功
输入外网IP:端口号测试 成功进入游戏 则代表启动成功
Mission Complete!
后记
到目前为止 服务器开启时间已有三天 中间重启大概两到三次 并不是因为内存问题 就是中途朋友想改配置 于是重启了几遍 延迟的话 因为是内网穿透 数据跳了两三次 所以不会很低 问了下他们 大概就是70ms-90ms的波动 好点可以到60ms 传送的时候会掉包 但是可以接受 翻帖子的时候看到说P2P通道比UDP隧道快 准备有时间下线调一下试试
延迟的很大一部分原因其实跟云服务器的带宽有关系 人多了之后 我这个3M的带宽就完全不够用了 所以如果是主机进入就不用输入外网 直接回环127.0.0.1:端口 就行 目前来看还行 后续升级服务器吧