nps搭建内网穿透
2022-03-23 15:12:33

nps搭建内网穿透

nps在github的地址为 https://github.com/ehang-io/nps

nps的功能非常的强大,能实现下面这些功能

  1. 做微信公众号开发、小程序开发等—-> 域名代理模式
  2. 想在外网通过ssh连接内网的机器,做云服务器到内网服务器端口的映射,—-> tcp代理模式
  3. 在非内网环境下使用内网dns,或者需要通过udp访问内网机器等—-> udp代理模式
  4. 在外网使用HTTP代理访问内网站点—-> http代理模式
  5. 搭建一个内网穿透ss,在外网如同使用内网vpn一样访问内网资源或者设备—-> socks5代理模式

想着学习一下于是尝试用nps搭建一个内网穿透的工具,因为开放中常用到内网穿透用于项目的演示或则第三方的一些接口调用,比如做微信小程序或则公众号开发的时候。整个搭建的过程比较简单如下

一、基本条件

需要一台公网的服务器,用来做代理“转发请求”

二、在服务器上安装好nps的server端

1.我这里使用的windows server 64位的服务器,下载server端到服务器,解压后,

2.开放服务器端口,在服务器的安全组里开放80/443/8080/8042端口

nps默认配置文件使用了80,443,8080,8024端口

80与443端口为域名解析模式默认端口

8080为web管理访问端口

8024为网桥端口,用于客户端与服务器通信

自己也可以根据需要更改为其他端口

3.修改配置修改管理网页端的用户名和密码,在conf/nps.conf文件中修改web_username、web_password为自己的用户名和密码,webhost设置为自己的IP地址

1
2
3
4
5
6
7
8
9
10
11
12
#web
web_host=ipaddress
web_username=admin
web_password=123+1s
web_port = 8080
web_ip=0.0.0.0
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

4.进入到nps的解压后的文件夹windows_amd64_server下打开cmd

输入 nps.exe install。系统会将nps文件copy至C:\Program Files\nps

5.启动nps服务器端

cmd下启动、停止和重启分别为: nps.exe startnps stopnps restart

在客户端目录下进入cmd输入nps.exe start启动

输入web_host+web_port访问页面操作的后台,输入自己配置用户名密码登陆

6 .添加客户端

在客户端菜单下添加客户端保存,在客户端列表里面就可以看到客户端以及客户端的验证密钥了。(本步主要是在服务器端生成一个客户端的验证密钥,客户端配置好这个密钥以后,客户端和服务器端进行通信)

image-20220323143623419

由于客户端还没有建立连接可以看到客户端的状态是离线的

注意: linux的安装也是比较简单的可参照官方文档

三、安装客户端

1.在自己电脑上安装服务端,下载客户端的安装包windows_amd64_client

2.解压后修改客户端conf文件夹下配置文件npc.conf,主要修改server_addr和vkey

1
2
server_addr=服务器端IP:8024
vkey=客户端密钥

让客户端和服务端能建立连接

3.运行客户端

在客户端目录中双击npc.exe , 成功后可以在服务端后台页面刷新可以看到客户端已经在线

四、内网穿透

这里想要实现内网穿透,在外网访问一台电脑上本地运行locahost。服务端网页管理菜单 TCP隧道下新建一条记录配置好客户端ID(在客户端列表里可以看到),用来访问的服务器端口以及本地的网页的ip和端口

image-20220323145756086

添加了TCP代理以后就可以使用公网ip:8080替换本地电脑上的localhost了

如果你本地运行网页是localhost/hello.html

公网的访问地址为ip:8080/hello.html

Prev
2022-03-23 15:12:33
Next