一、前言(废话时间)
事情是这样的,之前和朋友玩我的世界的世界用自己的电脑搭了一个服务器,但是由于我没有公网IP,导致我还需要去整一个内网映射,之前的解决办法是使用的是第三方的内网映射软件。但是现在我白嫖了一个云服务器,本来打算直接拿云服务器开服的,但是云服务器的配置好像扛不住开整合包服,那么我就在想,能不能用自己的电脑开一个服务器,然后用云服务器做一下内网映射呢,然后我就去网上查了下,哎嘿,你猜这么着,真可以!
那么就开始准备搭建吧!
二、安装云服务器的服务端
我们需要下载两个文件
下载地址:https://github.com/ehang-io/nps/releases
这两个文件分别为Linux的服务端和Windows的客户端。

需要下载的文件
进入Workbench
创建文件夹命名为npss
并且将文件上传至文件夹(请无视那个npsc,那个是Linux上的客户端,目前不需要使用)

上传文件
输入
cd /npss
进入文件夹
输入
tar xzvf ./linux_amd64_server.tar.gz
解压配置文件

解压结果如下
输入
./nps
执行文件
由于我之前有用过80端口,而nps默认也需要占用80端口,此时就产生了冲突,这里我们需要去改一下配置文件(如果你没有遇到端口占用问题,就按CTRL+\退出nps程序)
(如果要查找是什么程序占用了端口可以用 lsof -i:端口号
来查询,如果要杀死那个占用端口的程序可以用kill -9 查到的程序的PID
来杀)
输入
cd /etc/nps/conf
进入默认配置目录
输入
vi nps.conf
进入配置文件

配置文件
这个配置文件很长,但是我们只需要关注冲突的网页端口(随便改一个就行)用于内网映射的桥接端口,以及一个默认的公钥(建议改掉)以及管理web的端口和账号密码(记得改账号密码)
按i进行编辑
我这里将网页端口改到20080和20443,其他端口保持不变
按ESC 输入:wq退出配置文件
重新运行nps文件
cd /npss
./nps
现在给nps写一个开机自启的脚本
按CTRL+\关闭nps程序
输入
vi /lib/systemd/system/nps.service
按i开始输入
[Unit]
Description=nps server
After=network.target
[Service]
User=root
Group=root
ExecStart=/npss/nps
Restart=always
RestartSec=30s
[Install]
WantedBy=multi-user.target
(ExecStart=/npss/nps
这一行的地址改成你自己的nps程序的地址)
ESC 再输入:wq退出编辑
systemctl enable nps
启用开机自启
systemctl start nps
开启nps
systemctl status nps
查看nps运行状态
此时nps的服务端就已经安装成功了,我们需要去打开服务器的8080端口和8024端口,8080为面板端口,8024为与客户端的通信端口

在安全组内开启端口
接下去我们就可以在浏览器通过你的服务器地址+:8080连接到面板
这个的账密就是刚才在配置文件里改的那个账号密码

登录界面
进入面板后我们开始新增客户端

新增客户端
备注随便改
中间三条不需要动
最后三条全部改为是

新建客户端
新建完成后点击左侧的加号(现在变成减号了)复制下面的客户端命令(主要是后面-server后面的那一段)

得到客户端命令
三、安装客户端
接下去回到我们的需要被映射的电脑上(Windows)
解压客户端

解压获得的文件
调出命令行(这里需要以管理员身份运行)
通过cd指令切换路径
cd E:\windows_amd64_client
输入
npc.exe install -server=121.40.226.38:8024 -vkey=jhday7ng8l00x3ug -type=tcp
前面部分保持不变,-server 后面部分为之前复制的客户端命令的后面部分

安装客户端
最后一步就是在服务里设置一下服务的重启功能

启动服务
回到面板就可以看到连接从离线变成在线了

面板
最后一步
添加隧道

添加隧道
客户端ID为之前客户端列表里红框里的ID,服务端端口为公网服务器映射出去的端口,目标 (IP:端口)是你客户端的所要映射出去的端口

添加隧道
最后别忘去安全组把25565端口放行即可

放行端口
我这里开了安全组但是还是连不上,就去手动开启了一下防火墙
firewall-cmd --permanent --add-port=25565/tcp
firewall-cmd --reload

开启防火墙
最后进游戏看一下延迟(这是我和朋友之前玩的一个整合包服)


完美
大功告成
P.S.
我在使用NPS期间发现NPS很容易被杀软给杀掉,有些时候加白名单也没用,我的解决办法就是不把NPS加到服务里,直接当成程序使,需要内网映射的时候开,不需要的时候就关。
找到nps文件夹下面的配置文件,更改其中的服务器地址(我这里把桥接端口改到28024了,这个就按你的地址和端口填写即可),唯一验证密钥(在nps面板的客户端管理界面里就有)以及你需要映射的通道,之后双击运行nps程序就行了。(这个配置文件内容很多,我只用了我需要用到的,其他如UDP隧道的都被我删了,如果有需要自行添加即可)
Comments | NOTHING