带Web面板高性能轻量级内网穿透工具NPS
以下代码由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】收集整理供大家参考研究如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 获取Scala中List [Option]的值的所有条目
- 在Angular2 Dart中设置Router和RouterLink的正确方法是什么
- 为什么$((true == false))在bash中计算为1?
- angularjs – 从角度材料datepicker中删除或更改日历图标
- twitter-bootstrap – Knockout验证和Twitter Bootstrap错误
- 使用AXIS开发webservice(转载)
- Axis2开发WebService客户端 的3种方式
- 使用axis2创建webservice步骤以及客户端调用service服务代码
- WebService 学习(2)
- WebService支持多平台上传文件的实现