一款带Web面板的轻量级|高性能内网穿透工具|nps使用教程

tengxunyun cera

安装

Github地址:https://github.com/cnlh/nps

通常内网穿透工具都有服务端和客户端,安装要求如下:

服务端:需要安装在一个有公网IP的服务器上,系统为Linux/Windows/Mac均可。
客户端:一般安装在一个内网的VPS服务器或Windows/Mac电脑上使用。

1、编译安装

提示:编译安装主要讲的Linux系统,其它系统(Win/Mac,也包括Linux)建议直接使用作者编译好的文件即可。

安装Go语言:

#Debian/Ubuntu系统
apt-get -y install golang
#创建目录并定义GOPATH环境变量指向该目录
mkdir ~/workspace
echo 'export GOPATH="$HOME/workspace"' >> ~/.bashrc
source ~/.bashrc

#CentOS/RHEL系统
yum -y install golang
#创建目录并定义GOPATH环境变量指向该目录。
mkdir ~/workspace
echo 'export GOPATH="$HOME/workspace"' >> ~/.bashrc
source ~/.bashrc

安装git

#Debian/Ubuntu系统
apt-get -y install git

#CentOS/RHEL系统
yum -y install git

安装源码:

go get github.com/cnlh/nps

编译服务端和客户端:

#进入指定目录
cd ~/workspace/src/github.com/cnlh/nps
#编译服务端
go build cmd/nps/nps.go
#编译客户端
go build cmd/npc/npc.go

编译好了后,就会在当前目录生成npcnps二进制文件了,就可以直接拿来用了。

编译的时候可能出现的问题解决方法:

#只拿一种常见的错误做例子,有时候可能会出现很多种这样的提示
lib/kcp/crypt.go:14:2: cannot find package "golang.org/x/crypto/pbkdf2" in any of:
    /usr/lib/go-1.7/src/golang.org/x/crypto/pbkdf2 (from $GOROOT)
    /root/workspace/src/golang.org/x/crypto/pbkdf2 (from $GOPATH)

#意思是缺少这种包,然后记住提示的地址,比如上面的golang.org/x/crypto/pbkdf2,有时候也会提示的github地址。

然后再使用命令go get golang.org/x/crypto/pbkdf2命令安装一下就行了。

2、直接安装
除了自己编译外,作者也直接提供了编译好的文件给你使用,文件下载地址:点击进去,然后再根据自己的系统架构下载对应的最新版服务端和客户端。

如果对于Linux服务器还是不知道怎么选择的,这里拿Vultr、搬瓦工大多数VPS为例。先使用命令getconf LONG_BIT获取系统版本,32位就选38664就选amd64,具体还是以实际情况为准。

服务端使用

这里博主使用的是Vultr Linux x64服务器,直接使用命令:

#记得复制前先将下面链接替换成当前最新版地址
cd ~
#下载并解压服务端
wget https://github.com/cnlh/nps/releases/download/v0.0.14/linux_amd64_server.tar.gz && tar zxvf  linux_amd64_server.tar.gz
#编辑配置文件
cd nps
nano conf/app.conf

配置文件参数如下:

#web管理端口
httpport
#web界面管理密码
password
#服务端客户端通信端口
bridePort
#ssl certFile绝对路径
pemPath
#ssl keyFile绝对路径
keyPath
#域名代理https代理监听端口
httpsProxyPort
#域名代理http代理监听端口
httpProxyPort
#web api免验证IP地址
authip
#客户端与服务端连接方式kcp或tcp
bridgeType

然后启动服务端:

./nps start

#重启/停止服务端
./nps stop|restart

然后打开地址http://ip:8080访问管理界面,具体端口以自己修改的为准,再使用密码登录进去,默认为123

#如果打不开Web界面,就需要开启防火墙,一般CentOS系统出现情况最多
#Centos 6系统
iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
service iptables save
service iptables restart

#CentOS 7系统
firewall-cmd --zone=public --add-port=8080/tcp --permanent 
firewall-cmd --reload

对于有些服务器,比如阿里云,谷歌云等,还需要在服务器管理面板上开放Web端口才行。

客户端使用

1、Linux系统

#比如下载的客户端文件在根目录,先进入根目录
cd ~
#启动客户端,比如服务端公网IP为1.1.1.1,服务端配置文件中tcpport为8284
./npc -server=1.1.1.1:8284 -vkey=客户端的密钥

2、Windows系统
首先按住Win+R,输入cmd进入命令窗口,然后使用命令:

#比如下载的客户端文件在D盘,先进入到D盘
cd /d d:
#启动客户端,比如服务端公网IP为1.1.1.1,服务端配置文件中tcpport为8284
npc.exe -server=1.1.1.1:8284 -vkey=客户端的密钥

至于Mac系统启动参考上面就行。

使用场景

关于使用场景,Github文档写的很清楚了,这里大概的说下。

1、tcp隧道模式

适用:想在外网通过ssh连接内网的机器,做云服务器到内网服务器端口的映射,或者做微信公众号开发、小程序开发等。

 

2、udp隧道模式

适用:在非内网环境下使用内网dns,或者需要通过udp访问内网机器等。

 

3、http代理模式

适用:在外网使用HTTP代理访问内网站点。

 

4、socks5代理模式

适用:搭建一个内网穿透55,在外网如同使用内网v皮n一样访问内网资源或者设备。

 

相关功能

1、数据压缩支持
由于是内网穿透,内网客户端与服务端之间的隧道存在大量的数据交换,为节省流量,加快传输速度,由此本程序支持SNNAPY形式的压缩。

  • 所有模式均支持数据压缩,可以与加密同时使用
  • 开启此功能会增加cpu和内存消耗
  • server端加上参数-compress=snappy(或在web管理中设置)

2、加密传输
如果公司内网防火墙对外网访问进行了流量识别与屏蔽,例如禁止了ssh协议等,通过设置配置文件,将服务端与客户端之间的通信内容加密传输,将会有效防止流量被拦截。

  • 开启此功能会增加cpu和内存消耗
  • server端加上参数-crypt=true(或在web管理中设置)

3、站点保护
域名代理模式所有客户端共用一个http服务端口,在知道域名后任何人都可访问,一些开发或者测试环境需要保密,所以可以设置用户名和密码,nps将通过Http Basic Auth来保护,访问时需要输入正确的用户名和密码。

  • web管理中可配置

4、host修改
由于内网站点需要的host可能与公网域名不一致,域名代理支持host修改功能,即修改requestheader中的host字段。

  • web管理中设置

5、自定义header
支持对header进行新增或者修改,以配合服务的需要。

6、404页面配置
支持域名解析模式的自定义404页面,修改/web/static/page/error.html中内容即可,暂不支持静态文件等内容。

7、流量限制
支持客户端级流量限制,当该客户端入口流量与出口流量达到设定的总量后会拒绝服务,域名代理会返回404页面,其他会拒绝连接。

8、带宽限制
支持客户端级带宽限制,带宽计算方式为入口和出口总和,权重均衡。

9、负载均衡
本代理支持域名解析模式的负载均衡,在web域名添加或者编辑中内网目标分行填写多个目标即可实现轮训级别的负载均衡。

10、守护进程
本代理支持守护进程,使用示例如下,服务端客户端所有模式通用,支持linuxdarwinwindows

./(nps|npc) start|stop|restart|status 若有其他参数可加其他参数
(nps|npc).exe start|stop|restart|status 若有其他参数可加其他参数

11、KCP协议支持
KCP是一个快速可靠协议,能以比TCP浪费10%-20%的带宽的代价,换取平均延迟降低30%-40%,在弱网环境下对性能能有一定的提升。可在app.conf中修改bridgeTypekcp

  • 当服务端为kcp时,客户端连接时也需要加上参数-type=kcp

该工具很强大,更多的使用可以自行研究,如果有人知道Frp管理面板的话,可以给博主提供下。

cera aliyun tengxunyun cloudiplc

相关推荐

OLVPS测评|德国|Nvme|高性能|768M内存|月付13元|优惠码

#OLVPS#怎么样,OLVPS好不好,OLVPS也是一家比较老的商家了,成立了有三年多了,商家主要销售一些冷门地区的VPS,像之前的俄罗斯#伯力#,近期商家新上了德国机房的VPS,套餐采用AMD的CPU+Nvme硬盘,性能方面非常不错,关于线路方面,商家提供测速网址,目前站长测试了一下,电信下载还是比较快的,其他网络没法测试,大家可以自己测试一下,价格还是比较便宜的,月付13元起,有需要的朋友可以入手。 VPS套餐 德国机房,KVM虚拟架构,硬盘为Nvme,CPU为AMD 5950X CPU:#1核# 内存:768M 硬盘:10G 流量:512G 带宽:#100Mbps# IPv4:1个 价格:13元/月 直达链接 今天测评的是 昨晚上架美国#饭桶#机房的VPS后,商家也是第一时间给台测试机给我,于昨晚跑完测试脚本,机子架构是#OpenVZ#,价格比较便宜。 从IO上看,200M还可以,cpu渣了一点是低压版 UnixBench跑分测试 BYTE UNIX Benchmarks (Version 5.1.3) System: server: GNU/Linux OS: GNU/Linux — 2.6.32-042stab112.15 — #1 SMP Tue Oct 20 17:22:56 MSK 2015 Machine: x86_64 (x86_64) Language: en_US.utf8 (charmap=”UTF-8″, collate=”UTF-8″) CPU 0: Intel(R) Xeon(R) CPU E5-2630L 0 @ 2.00GHz (4000.0 bogomips) …

DMIT|黑五|香港|洛杉矶GIA|KVM VPS|黑五优惠|稳定|高性能

PVM.HKG.Pro补货了,上车。 活动页面:https://www.dmit.io/pages/black-friday-2020 PVM.HKG.Pro为香港直连,PVM.LAX.Pro为洛杉矶GIA 一、香港直连KVM VPS vCPU 内存 空间 流量 端口 价格 链接 1 0.75GB 10GB SSD 200GB 40Mbps $39.9/月 购买链接 1 1.5GB 20GB SSD 500GB #100Mbps# $69.9/月 购买链接   回程路由 上海电信 1 ??? 0.43 ms AS54574 中国 香港 dmit.io 2 ??? 0.48 ms AS54574 中国 香港 dmit.io 3 61.93.184.34 3.07 ms AS10103 中国 香港 hkbn.com.hk …

vps测试脚本|工具|网站分享

当买到的vps开机后,相信不少人对于#vps#的cpu/硬盘/#网络#等表现如何肯定是相当的好奇,我这里也搜集一些vps#测试脚本#/程序方便自己之后的使用,也方便大家的查询。 这里列出的工具并不算多,不过这篇文章也会不断地更新来慢慢丰富。 一键测试脚本 superbench 我个人比较喜欢使用#superbench#来进行测试,因为该脚本能比较直观的看出vps的硬件情况(CPU/磁盘io/磁盘空间/内存),测速节点也换成了国内的#speedtest#节点,可以说更“贴近”我们的日常生活,使用命令 wget -qO- git.io/superbench.sh | bash lemonbench lemonbench提供比superbench更详细的测试,除了磁盘io和网速测试外,它还提供vps的cpu跑分,内存读写速度,回程路由追踪,流媒体解锁情况等测试,测试完之后还能生成分享链接 例子,可以直接在浏览器上查看或是分享给他人。该脚本有两种模式。 使用 curl -fsL https://ilemonra.in/LemonBenchIntl | bash -s fast 进行快速测试,该模式下测试速度较快,但是结果没那么详细,部分测试的次数较少(如磁盘io测试),测速节点较少,路由追踪也不会测那么多个节点。使用 curl -fsL https://ilemonra.in/LemonBenchIntl | bash -s full 进行测试时,会进行更加详细全面的测试,测试次数会更多,使用的节点也更多,当然耗时会更长。 bench.sh bench.sh硬件部分的测试项目和superbench一样的,但是测速节点使用的是国外的节点,只测下载速度。当购买服务器是用来进行科学上网等活动的时候,不要只关注到国内的上传速度,也要注意国际方向的带宽,毕竟你的服务器还得向全球各个地方的服务器请求资源呢。 测试工具 iperf3 很多时候speedtest的测试结果并不准确,比如如果很多人都在使用同一个测速节点进行测试,测试节点的带宽就不够了,那么测出来的结果肯定不准,并且你的服务器到测试节点的线路并不一定和到你所在的网络的线路一样(对于科学上网这点尤其重要),所以使用iperf3进行点对点的测试是更为准确的选择。iperf3的服务器端和客户端都由自己来提供,你可以在你的vps上运行iperf服务端,然后在你自己的电脑上运行客户端来进行测试,反过来也是一样的。以在vps上运行服务端为例。 apt install iperf3 iperf3 -s 运行这两行命令之后,服务器就会安装iperf3并在5201端口开启iperf3服务。 在自己网络的电脑上(linux/windows皆可)运行iperf3客户端进行测试。 # iperf3默认的测试方向是客户端上传数据到服务端的测试,即下面这条命令会测试本地上传到vps(ip改成你vps的ip)的速度,测试时长30s每次间隔1s iperf3 -c ip -t 30 -i 1 # 我们也可以加上一个 -R进行反向测试,即 iperf3 -c …

VPS主机性能跑分工具|UnixBench|一键测试Linux VPS主机性能得分

这篇文章主要是来分享一个VPS主机性能跑分工具:UnixBench。很多时候我们购买了VPS主机,看起来是内存、流量、CPU等差不多,价格是一样的,但是实际上不同的VPS主机的性能还是有很大的区别的,UnixBench就可以帮助我们区分VPS主机的“品质”。 Unixbench的主要测试项目有:系统调用、读写、进程、图形化测试、2D、3D、管道、运算、C库等系统基准性能提供测试数据。最新版本UnixBench5.1.3,包含system和graphic测试,如果你需要测试graphic,则需要修改Makefile。 不要注释掉 GRAPHIC_TESTS = defined ,同时需要系统提供 x11perf 命令gl_glibs库。本文脚本注释了关于graphic的测试项(大多数VPS都是没有显卡或者是集显,所以图像性能无需测试),运行10-30分钟后(根据CPU内核数量,运算时间不等)得出分数,越高越好。 一、UnixBench性能测试方法 执行以下命令就可以开始使用UnixBench进行性能测试了。 yum -y install wget screen #for CentOS/Redhat # apt-get -y install wget screen #for Debian/Ubuntu screen -S wzfou #如果网路出现中断,可以执行命令`screen -R wzfou`重新连接测试窗口 wget –no-check-certificate https://github.com/teddysun/across/raw/master/unixbench.sh #备用 wget –no-check-certificate https://github.com/freehao123/across/raw/master/unixbench.sh chmod +x unixbench.sh ./unixbench.sh 对于大多数人来说不需要了解测试项目的详细数据,以下仅供专业人士参考: # Dhrystone 2 using register variables 此项用于测试 string handling,因为没有浮点操作,所以深受软件和硬件设计(hardware and software …

微信扫一扫,分享到朋友圈

一款带Web面板的轻量级|高性能内网穿透工具|nps使用教程