内网穿透NPS的安装使用

nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析等等……),此外还支持内网http代理、内网socks5代理、p2p等,并带有功能强大的web管理端。

我们来设计一个案例:
1、我们有一台具备公网IP的服务器,服务器名称为public-server,操作系统为linux
2、我们有一台内网服务器inner-server1(windows)
3、我们将公网服务器的8081端口,映射至inner-server1:80;
4、两个代理协议均为TCP协议

操作步骤
外网服务器public-server(linux)服务端nps安装
首先,需要登录其github项目发布版本页面 (https://github.com/ehang-io/nps/releases ) 下载对应版本服务端nps软件。根据public-server的情况这里我们下载,linux_amd64_server.tar.gz版本。

通过ssh登录public-server,并将文件上传至对应安装目录,需要首先进行解压缩。(假定文件上传至目录/usr/nps)

tar -xzvf linux_amd64_server.tar.gz

解压缩完成后进入解压目录,需要执行对应安装命令,以保障我们可以将nps相关命令与加载至bin资源下

sudo ./nps install

之后我们进入/etc/nps/conf,修改nps.conf 配置文件,重点修改web管理平台的管理密码
web_username=admin
web_password=123

之后我们需要启动相关服务端软件,并在控制台查看是否启动成功。

sudo nps start

如果启动失败,可以进入/var/log/nps.log查看具体原因,我当时是因为443端口被nginx占有,屏蔽以下配置重启即可
#http_proxy_ip=0.0.0.0
#http_proxy_port=80
#https_proxy_port=443
#https_just_proxy=true

配置网络代理并开启publiic-server WEB服务端端口
在启动成功后,我们需要打开防火墙8080端口,使得可以通过浏览器登录其管理台。同时需要打开8024端口,使得客户端可以连接到服务端通讯端口。如果是云服务器,记得安全组开启端口。

sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --permanent --add-port=8024/tcp
sudo firewall-cmd --reload 

这时就可以通过8080端口访问web控制台

通过web管理台配置客户端接入信息
使用浏览器登录相关端口,提示用户名称与密码。使用如下修改后用户名密码进行登录。

点击 客户端 -> 新增 ,依次填写 备注(inner-server1)、允许客户端通过配置文件连接(是)、压缩(是)、加密(是),不填写Basic 认证用户名、Basic 认证密码、唯一验证密钥

新建完成后查看客户端清单,保存好两台服务器自动生成的唯一验证密钥、客户端ID备用,在这里我们假定其分别为“client-key”、“client-id”

内网服务器inner-server1安装npc(windows)客户端并连接
需要登录其github项目发布版本页面 ( https://github.com/ehang-io/nps/releases ) 下载对应版本客户端nps软件。根据public-server的情况这里我们下载,windows_amd64_client.tar.gz 版本。

通过ssh登录inner-server1,并将文件上传至对应安装目录,需要首先进行解压缩。(假定文件上传至目录D:\npc)

tar -xzvf windows_amd64_client.tar.gz 

解压缩完成后进入解压目录,需要执行对应安装命令,同时设置服务器ip地址端口以及连接秘钥(上一步新建客户端时自动生成并备用的信息)。
也可以进入web管理端-客户端,点击客户端列表前面的加号,就会出现当前客户端的连接命令
在这里插入图片描述

npc.exe install -server=public-server:8024 -vkey=inner-server1唯一验证密钥

外网服务器public-server(linux)服务端端口映射配置

  • 使用浏览器登录相关端口,提示用户名称与密码。使用如下修改后用户名密码进行登录。 在此需要使用到上文谈到创建客户端后自动生成的客户端ID。

  • 选择TCP 隧道->新增 ,依次填写
    模式(TCP)、客户端ID(client-id)、备注(inner-server1-80)、**服务端端口(8081)、目标(127.0.0.1:80)

  • 打开public-server相关防火墙

sudo firewall-cmd --permanent --add-port=8081/tcp
sudo firewall-cmd --permanent --add-port=8082/tcp
sudo firewall-cmd --reload 
  • 测试访问public-server:8081端口并观察服务端、客户端日志进行验证转发是否成功。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值