一、前言(废话时间)

    事情是这样的,之前和朋友玩我的世界的世界用自己的电脑搭了一个服务器,但是由于我没有公网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隧道的都被我删了,如果有需要自行添加即可)


阳光灼热,数不尽夏日繁华;蝉鸣幽幽,道不完苦辣酸甜。