1、基本概念
内网穿透:内网穿透就是客户端通过访问中转服务器间接性的去访问内网服务器中的东西

nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析等等……),此外还支持内网http代理、内网socks5代理、p2p等,并带有功能强大的web管理端。
**Github地址:**https://github.com/cnlh/nps
- 系统为Linux/Windows/Mac均可,本文服务端和客户端都是在Windows 下进行的
- nps服务端:需要安装在一个有公网IP的服务器上,
- npc客户端:安装在需要被访问的内网服务器或者个人电脑上。
- 注意nps和npc版本要保持一致
2、NPS安装
# 下载
wget https://github.com/cnlh/nps/releases/download/v0.23.2/linux_amd64_server.tar.gz
# 解压
tar xzvf linux_amd64_server.tar.gz
# 解压后,首先改一下conf文件夹下的npx.conf文件(conf/nps.conf)
2.1 基本信息
将 nps 运行到一个有公网 IP 的服务器上,关注配置文件中的 bridge_port 与 web_port。bridge_port 用来与 NPC 相连接,web_port 用来从浏览器访问,从而配置 NPS。
sudo ./nps 阻断模式运行,可以看到错误信息,如果有端口占用的问题,可以使用 lsof -i:port 的方式查询占用该端口的进程名,从而将该进程 kill 掉或者关掉。
2.2 配置
appname = nps
#Boot mode(dev|pro)
runmode = dev
##bridge,用来与 NPC 相连接
# 底层通信协议,默认tcp,可选用kcp
bridge_type=tcp
# 底层通信端口,默认8024,如已被占用请指定其他端口,若未开放,先开放端口
bridge_port=8024
bridge_ip=0.0.0.0
#web,用来从浏览器访问
web_host=116.62.49.243
web_username=admin
web_password=666666
web_port = 8080
web_ip=0.0.0.0
2.3 安装、启动
2.3.1 服务端
# 安装
修改完配置文件之后,
./nps install
当前的配置文件和web静态文件拷贝到/etc/nps下,以后修改配置文件直接修改/etc/nps/conf/nps.conf
# 启动
./nps start
# web 访问
web_host:web_port

2.3.1 客户端
npc.exe -server=116.62.49.243:8024 -vkey=0z9ogzrb6h8hmgqa
这里的ip是你服务器ip
端口是你nps.conf中#bridge设置的桥接端口
-vkey是你控制面板客户端生成的唯一认证密钥


2.4 内网穿透设置
1、服务端端口
服务器连接内网需要的端口,随便写一个,然后去开放安全组
2、目标:
内网要穿透的端口号
点击“隧道之后”点击新增按钮,创建一个隧道,其中“服务端端口”为你穿透成功之后要访问的端口,“目标 (IP:端口)”为你要穿透的项目的启动端口,我这里项目的启动端口为9091,所以,“目标 (IP:端口)”写9091,服务端端口我写的是9099,如图

此时,我们可以在公网通过访问服务端的ip+端口来访问我们本地的项目了

这样就可以访问到我们本地项目的test接口了