前言
由于疫情,今年只能在外过年了,但是年前一个朋友找我玩MITE(Minecraft is too easy),服务端在我电脑上,我俩又相隔大半个中国,想联机咋搞呢,放在我的云服务器上吧,1核2G1MB的配置(穷啊),属实有点难为它了,走一步退三步。于是便想到了内网穿透,网上倒是一大堆内网穿透软件,花十几块钱也能玩,不过中心思想在这摆着(穷),这时候突然想到家里有一台有公网的黑群晖NAS主机放在那,于是我便开始鼓捣起来……
一、需要用到的
1、公网(这个可能需要向服务商要)
2、NAS(前段时间自己花500大洋组装了一台,用来做个人云盘,已经落灰,如果感兴趣我可以分享一下)
3、Docker
4、ffdfgdfg/nps
二、使用步骤
1.安装Docker
打开NAS的套件中心,下载并打开Docker套件。
2.安装nps
在docker的注册表中搜索nps,找到"ffdfgdfg/nps",双击下载。在此感谢该docker映像作者。
3.创建容器
(1)为容器命名,然后添加映射端口,其中8082作为web访问端口,8024为nps连接端口。25565作为MITE服务器端口。
前两个端口可在配置文件中根据需要修改(下文有提到),最后的25565为MITE服务器指定。
(2)创建桌面快捷方式,按需创建。
(3)点击“高级设置”
(4)点击“添加文件夹”
(5)选择一个NAS本地文件夹。(我这里放在UE-gm/nps/conf下,要记住,待会用到)
(6)装载路径为“/conf”
(7)点击确定,应用。完成容器的创建。
4.配置nps
(1)首先将conf配置文件下载到本地。
在此提供我的conf(点击下载,提取码:1wnd),下载后将内部6个文件放在刚才创建容器时选择的本地文件夹(UE-gm/nps/conf)中,其中配置文件“nps.conf”按需修改,下面是我的配置。
配置文件如下(nps.conf):
appname = nps
#Boot mode(dev|pro)
runmode = dev
#HTTP(S) proxy port, no startup if empty
http_proxy_ip=0.0.0.0
http_proxy_port=80
https_proxy_port=443
https_just_proxy=true
#default https certificate setting
https_default_cert_file=conf/server.pem
https_default_key_file=conf/server.key
##bridge
bridge_type=tcp
bridge_port=8024
bridge_ip=0.0.0.0
# Public password, which clients can use to connect to the server
# After the connection, the server will be able to open relevant ports and parse related domain names according to its own configuration file.
public_vkey=123
#Traffic data persistence interval(minute)
#Ignorance means no persistence
#flow_store_interval=1
# log level LevelEmergency->0 LevelAlert->1 LevelCritical->2 LevelError->3 LevelWarning->4 LevelNotice->5 LevelInformational->6 LevelDebug->7
log_level=7
#log_path=nps.log
#Whether to restrict IP access, true or false or ignore
#ip_limit=true
#p2p
#p2p_ip=127.0.0.1
#p2p_port=6000
#web
web_host=
web_username=admin
web_password=123
web_port = 8082
web_ip=
web_base_url=
web_open_ssl=false
web_cert_file=conf/server.pem
web_key_file=conf/server.key
# if web under proxy use sub path. like http://host/nps need this.
#web_base_url=/nps
#Web API unauthenticated IP address(the len of auth_crypt_key must be 16)
#Remove comments if needed
#auth_key=test
auth_crypt_key =1234567812345678
#allow_ports=9001-9009,10001,11000-12000
#Web management multi-user login
allow_user_login=false
allow_user_register=false
allow_user_change_username=false
#extension
allow_flow_limit=false
allow_rate_limit=false
allow_tunnel_num_limit=false
allow_local_proxy=false
allow_connection_num_limit=false
allow_multi_ip=false
system_info_display=false
#cache
http_cache=false
http_cache_length=100
#get origin ip
http_add_origin_header=false
主要用到bridge 和 web
bridge 是服务端类型、地址、监听端口,把端口改成自己的就行。
public_vkey是客户端连接服务端认证用的,但是此处修改不生效,不知道为啥,不用管就行
web区块,这儿是服务端web访问的配置,看这配就行,官方说端口可以和bridge里一致,但实际测试发现不行,要两个不同的端口,其它都没用,默认就好.
(2)进入后台
启动容器,打开浏览器,进入nps管理后台。http://【你的公网IP】:8082/login/index(此处注意,8082端口可在配置文件nps.conf中修改)
(3)输入用户名:admin 密码:123
(4)新增客户端
选择左侧菜单“客户端”,点击“新增”
按需填写,若不需要修改可直接默认,点击“新增”,完成客户端创建。
记住ID,下一步创建TCP通道要用。
(5)新增TCP通道。
点击“新增”,完成TCP通道的新建。
5.连接nps客户端。
(1)在要完成内网穿透的电脑上,下载nps客户端。(注意是客户端)
仓库地址:https://github.com/ehang-io/nps/releases
网盘链接:https://pan.baidu.com/s/1blP4XqUoErDJUu1jShpQXQ 提取码:jwjs
(2)查看客户端连接信息
在NPS服务器左侧菜单中,点击“客户端”,找到新建的客户端左侧“+”号,点击即可查看连接信息。
复制该命令,作为客户端与服务器的连接命令,待会要用。
(3)打开刚才下载的nps客户端,此处不同操作系统稍有不同。
linux系统在npc目录下,直接终端输入该指令运行。命令开始是“./npc ……”
windows在npc目录下使用命令窗口运行。命令开始没有“./”,直接使用“npc ……”运行。
(4)看到successful提示(总是非常的开心),表明已经连接成功了。
然后就可以快乐的开启游戏服务器,把“【你的IP】:25565”给小伙伴,就可以愉快地联机玩耍了。(省下好几块大洋给NAS交电费,嗯,真香)
三、注意
需要确保Docker映射到NAS的端口同样被映射到了公网上(这就应该是路由器的工作了)