加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

带Web面板高性能轻量级内网穿透工具NPS

发布时间:2020-12-15 05:09:41 所属栏目:安全 来源:网络整理
导读:由站长 通过网络收集整理的代码片段。编程之家小编现在分享给大家,也给大家做个参考。 对于没有公网 IP 的内网用户来说,远程管理或在外网访问内网机器是一个问题。通常解决方案就是用内网穿透工具将内网的服务穿透到公网中,便于远程管理

以下代码由PHP站长网 52php.cn收集自互联网现在PHP站长网小编把它分享给大家,仅供参考

对于没有公网 IP 的内网用户来说,远程管理或在外网访问内网机器是一个问题。通常解决方案就是用内网穿透工具将内网的服务穿透到公网中,便于远程管理和在外部访问。内网穿透工具之前已经介绍了不少了,比如 Frp、lanproxy、Holer 等,现在再介绍个带 Web 面板的穿透工具 nps,之前叫 easyProxy,只是改名了而已,该工具是一款使用 go 语言编写的轻量级、功能强大的内网穿透服务器。支持 tcp、udp 流量转发,支持内网 http、socks5 代理,同时支持 snappy 压缩(节省带宽和流量)、站点保护、加密传输、多路复用、header 修改等,同时还支持 web 图形化管理。


安装

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

编译好了后,就会在当前目录生成 npc 或 nps 二进制文件了,就可以直接拿来用了。编译的时候可能出现的问题解决方法:

#只拿一种常见的错误做例子,有时候可能会出现很多种这样的提示

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 位就选 386,64 就选 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/nps.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 系统启动参考上面就行。

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读