全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 3182|回复: 19

【nps-p2p模式正确的姿势教程-简化docker版】

[复制链接]
发表于 2021-3-25 16:39:31 | 显示全部楼层 |阅读模式
本帖最后由 ajeef 于 2021-3-25 16:40 编辑

0:为什么要用P2P模式,因为点对点,不消耗你VPS或独服的流量,假如你买的是国内VPS或独服本身因为价格和国情的原因,流量就吃紧,假如要传送一个几十G的数据,用传统TCP穿透模式,你传送多少流量,你的VPS就消耗多少流量,而且p2p模式一旦握手成功,就直接交给2端独立通讯,自身是断开的,并且速度快于TCP

1:首先准备一台有公网IP的VPS或独服(作为NPS服务端,在P2P模式下确切的说是验证握手中间端,除非你作为TCP模式下的穿透,那么就真的是一个服务端了。)

2:在VPS或安装好docker(怎么安装docker就不说了,太简单了。)

安装NPS的Docker镜像我这里选择的是ffdfgdfg/nps,只需2条命令:

①docker pull ffdfgdfg/nps

②docker run -d --restart=always --name nps --net=host -v /root/docker/nps/conf:/conf ffdfgdfg/nps
    [上面的命令,其中/root/docker/nps/conf可自己指定,我这里是为了方便]



3:SSH连接上你的VPS,ffdfgdfg/nps默认nps的配置文件在上面命令指定的目录里,也就是/root/docker/nps/conf

vi /root/docker/nps/conf/nps.conf

nano /root/docker/nps/conf/nps.conf

打开后编辑以下几个地方即可:

①【必须】p2p_ip=121.281.131.127 (<----你VPS或者独服的公网IP地址,记住不要填写域名)
                p2p_port=6000 (<-----任意端口,官方默认6000,但是防火墙一定要放行6000-6002,IP段,而不是只放行6000,以此类推,假如你改成7000端口,那么放行7000-7002,很多人穿透失败就是这一步没做)

②【必须】web_username=admin (任意用户名)
                web_password=hostloc (任意密码)
                web_port = 8880  (<--任意,防火墙记得打开)

③【可选】http_proxy_port=800  (如果你所在的VPS,80端口已经在用了,这里改一下)
                https_proxy_port=4433 (如果你所在的VPS,443端口已经在用了,这里改一下)

④保存退出vi或者nano,并重启一遍镜像。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
虚线以上的安装和设置过程,大家应该还是搞的清楚的,下面就要说一下,应用场景了。

①我们刚刚在一台VPS或者独服上,安装了Docker-并部署了nps-但是它现在的身份不是服务端,而是一个中间件,只做验证服务,并不参与2端的传输

②假设:我办公室的电脑想用任意(远程桌面软件客户端)-------去连接家里的电脑的任意(远程桌面软件服务端),要怎么做呢?

③很简单:把家里电脑(远程桌面的服务端端口)-----用p2p方式穿透到-----办公室电脑(系统下的任意指定端口)中---再用办公室电脑的(远程桌面软件客户端)去连接系统指定的本地的端口。(如果看的有点蒙,就多看几遍。)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
实际举例场景:

①中国电信,办公室电脑Win10,安装了AnyDesk(作为客户端)

②中国移动,家里电脑Win10,安装了AnyDesk(作为服务端,这软件默认端口是7070)

③中国移动,家里电脑Win10,上安装NPC客户端(看清楚,是NPC,不是NPS),有条件的最好装在软路由上,因为电脑经常要重启和关机,我这里就装在家里的软路由上了openwrt_x86_x64,先打开我们刚刚在VPS上安装的NPS看看用NPC去连接的配置信息





④中国移动,打开家里软路由openwrt的NPC插件,根据上面图片中的信息分别填写,公网IP+端口+密码,保存并应用即可。


⑤设置NPS,启用其中一个连接方的P2P模式。



⑥在中国电信,办公室电脑里下载官方x64-NPC客户端,并安装成开机自启动服务






⑦在中国电信,办公室电脑Win10系统中打开AnyDesk,连接上面配置好的本地端口。


---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
教程结束,P2P模式,因为只需要验证的流量(极少),所以里传输多大的流量,都不影响VPS或者独服本身的流量,所以会大大减少里购买国内服务器的价格,流量甚至每个月几百M就够用了。


至于你们担心的ISP会QOS限制的问题,只要你是国内运营商连接国内运营商,可以是中国电信,中国移动,中国联通,都不会限制,除非你P2P模式连接的是国外ISP下的一台电脑,那么有可能会限制。
 楼主| 发表于 2021-3-25 16:46:30 | 显示全部楼层
补充要卸载NPC客户端,只需要2条命令
npc stop
npc uninstall
发表于 2021-3-25 16:48:48 | 显示全部楼层
好硬核的教程,感谢大佬
发表于 2021-3-25 16:51:54 来自手机 | 显示全部楼层
很好,我只用frp,面对那种抄袭模仿丝毫不提基于那那的东西,不用。

点评

frp同样也有p2p模式,但是openwrt插件下的FRP只有stcp模式可以用,虽然自己写个脚本挂后台也可以,但是就不方便了。  发表于 2021-3-25 16:55
发表于 2021-3-25 17:03:14 | 显示全部楼层
现在家里有公网,用不上,不过收藏备用
 楼主| 发表于 2021-3-25 17:37:22 来自手机 | 显示全部楼层
不过现在都有ipv6了,只不过,需要重新配置主路由和旁路由,p2p还是作为备用方案吧我,在ipv6不通的情况下,用p2p连接。
发表于 2021-3-25 17:48:45 | 显示全部楼层
没看懂,第4步,假设没有OP路由器,如果P2P连接。
客户端电脑是输入P2P连接的那个访问端命令 (TCP):
访问端命令 (TCP): ./npc -server=140.268.22.29:8384 -vkey=sr56jjb6yopf -type=tcp -password=3saf3sa -target=3389


还是直接是在添加客户端的那个命令
./npc -server=140.268.22.29:8384 -vkey=sr56jj23b6yopf -type=tcp
 楼主| 发表于 2021-3-25 18:19:29 来自手机 | 显示全部楼层
jpfree 发表于 2021-3-25 17:48
没看懂,第4步,假设没有OP路由器,如果P2P连接。
客户端电脑是输入P2P连接的那个访问端命令 (TCP):
访问端 ...

可以把两条合并成一条,你对比会发现很多是重复的,所以直接加上即可,分别运行是为了更好的把p2p这一部分应用独立出来,因为你不可能用p2p以后只用一个远程软件吧,你要添加其它应用的时候怎么办?
发表于 2021-3-25 18:56:18 | 显示全部楼层
Windows也要装nps的服务端?
路由器有nps不可以直接穿透下级设备吗?
每个设备都要装一个nps那可就麻烦死了,还是不折腾老老实实用frp、zerotier了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-4-25 00:28 , Processed in 0.063684 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表