
nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议,支持内网http代理、内网socks5代理、p2p等,并带有功能强大的web管理端。
使用内网穿透技术可以使你在公共网络环境也能轻松连接你的内网设备,除了之前介绍过的frp之后,此款NPS也是比较推荐的,通过Web管理的方式快速地创建和管理穿透设备。
目录
1.环境准备
为了统一管理我的项目,依然使用docker来部署项目,感兴趣的小伙伴也可以采用二进制部署的方式,网上的类似的文章很多,故不再重复介绍。
在自己的Linux(Ubuntu/CentOS 7+)服务器上执行以下命令安装docker, 安装完成后执行第二条命令,启动并设置开机启动docker。
curl -fsSL| bash -s docker --mirror Aliyun systemctl enable --now docker2.安装NPS
首先拉取最新的镜像:
docker pull ffdfgdfg/npsimage
创建一个目录用于存放配置文件:
mkdir -p /opt/docker/nps将准备好的配置文件放进去,待后续引用:
cd /opt/docker/nps && wget # 如果提示找不到wget命令: -bash: wget: command not found,请使用下面命令安装,再重复上面的命令。 # CentOS系: yum -y install wget # Ubuntu系: sudo apt-get -y install wget解压配置文件:
yum -y install unzip # 如果是Ubuntu请使用以下命令 # sudo apt-get -y install unzip unzip conf.zip运行项目:
docker run -d --name nps \ --restart=always \ --net=host \ -v /opt/docker/nps/conf:/conf \ ffdfgdfg/nps通过查看日志可以发现,该系统目前一共占用了3个端口:
docker logs nps分别为80、443和8080,其中8080中管理端口。
3.访问管理后台
在浏览器中输入的你的ip:8080,其ip为电脑的ip地址,如果是云服务器请使用公网ip代替。默认登录用户名和密码为:admin/123
登录后的界面如下,这里可以看到我们客户端需要连接此服务器的8024端口:
4.服务端简单配置
新增加一个客户端。
完了后点击隧道,新增一个tcp代理隧道。
按照下面的提示简单配置一下,我这里把192.168.31.92的3001端口代理到服务器的53001端口上,点击新增。
5.配置客户端
无配置文件:docker run -d --name npc --net=host ffdfgdfg/npc -server=ip:port -vkey=<web界面中显示的密钥> <以及一些其他参数>
这里的web界面中显示的密钥这是根据自己的配置来的,按照提示修改。
我这里仅在同一台机器上测试验证,实际情况适配修改。
docker run -d \ --name npc \ --net=host \ --restart=always \ ffdfgdfg/npc \ -server=192.168.31.92:8024 \ -vkey=test6.测试访问
刷新后台,可以看到在线客户端已经变为1,说明客户端已经与服务器连接成功。
访问穿透后的地址试试,访问服务器ip:53001,发现页面可以正常打开了。
最后
我这里仅演示了最基础的tcp代理,还有很多好玩的功能大家可以慢慢研究、尝试。 docker项目地址:
服务端:https://hub.docker.com/r/ffdfgdfg/nps 客户端:https://hub.docker.com/r/ffdfgdfg/npc