使用nps自建内网穿透
内网穿透是什么,用来干什么想必不用我再多说了,既然你能看到这篇文章说明你现在可能需要它
需要什么
- 一台公网服务器
nps
nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。支持tcp、udp、socks5、http等几乎所有流量转发,可用来访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析、内网socks5代理等
github地址:https://github.com/ehang-io/nps/
服务端程序安装
在这里找到对应自己服务器类型的包含 _server
名称的安装包下载上传到自己的服务器上 https://github.com/ehang-io/nps/releases
不知道服务器内核的,执行 uname -a
命令查看,如果显示是 x86_64
的下载linux_amd64_server.tar.gz
即可
进入文件目录解压
mkdir nps
tar -xvf linux_amd64_server.tar.gz -C ./nps
进入解压后的 nps
目录,执行安装命令
sudo ./nps install
配置文件修改
安装后的nps配置文件是在
/etc/nps/conf/
主要配置是
nps.conf
,自定义端口配置
http_proxy_port=80
:http域名解析模式端口,如果你使用了nginx或者其他web服务器就给它改成别的端口https_proxy_port=443
:https域名解析模式端口,如果你使用了nginx或者其他web服务器就给它改成别的端口bridge_port=8024
:网桥端口,用于客户端与服务器通信web_username=admin
:web后台登录用户名web_password=123
:web后台登录密码web_port = 8080
:web后台访问端口
由于我的服务器上已经使用了nginx做web服务器,所以就把80和443改成其他端口了,不然启动会报错
添加端口映射
配置好nps之后,启动
sudo nps start
注意要在你购买的服务器后台开放上面配置的端口
启动之后访问 服务器ip:8080
nps后台web界面,输入用户名密码登录
1.新增客户端
进入之后选择左侧边栏的客户端,新增一条,没有特殊需求,只要填写个备注即可
创建成功之后会生成一个密钥
2.新增隧道
在创建完成之后的客户端列表右边有个快速添加隧道的按钮,点击它添加一条隧道
新增隧道表单
- 模式选择
TCP隧道
- 服务端端口:你想使用服务器的哪个端口,这个端口会和目标 (IP:端口)建立连接来处理外网请求
- 目标 (IP:端口):就是你自己电脑上的哪个端口对外提供服务,例如你在本地启动一个tomcat,端口是8080。这里就填127.0.0.1:8080,如果是本机127.0.0.1可以省略,直接填写端口号8080即可
我这里服务端使用的是9999端口,注意要在你购买的服务器后台开放这个端口
客户端程序的使用
https://github.com/ehang-io/nps/releases
下载对应系统的client程序,我这里以linux为例,下载之后解压,执行解压后的npc程序
./npc -server=服务器ip:8024 -vkey=客户端密钥
这里的8024就是在服务端配置文件中配置的bridge_port
vkey
是在新增客户端时生成的唯一验证密钥
成功启动之后就可以访问 你的服务器ip:9999
端口测试
域名配置
如果你想使用域名的方式,前提是服务端配置文件中的80端口和443端口你没有改
只需要将上面 新增隧道 步骤改为域名解析即可
我服务器上安装了nginx就直接使用nginx做域名代理了,在nginx中配置域名代理到9999
端口即可