51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

使用Docker搭建NPS内网穿透

前言

  • 内网穿透的方式有很多种,什么Frp、Ngrok、NPS、蒲公英等等,网上也有很多免费的服务的,当然用起来很慢,基本也就200K的样子,付费的穿透服务也不便宜,一般都是按端口卖的,一年买下来,还是自建划算!
  • 初次构想的时候是准备买台小鸡安装的,大概看了一下,小鸡一个月大概25-30块,50M带宽,500G流量。当然本教程不是用小鸡安装的,是以一台linux小主机-给玩客云刷上armbian来实现的,为此我还专门买了两个,一个跑网心云跑收益,一个刷armbian当小鸡,先说说网心云最近很拉,家用宽带一天才跑5毛钱,妥妥回血就出了。刷armbian当小鸡倒是挺合适,虽然只有1G内存,但是装上docker当小鸡还是挺不错的,做一些轻量服务。

NPS简介

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

  • 项目地址:Github

  • 技术文档:指导页面

  • Docker镜像页:服务端:NPS 客户端:NPC

  • 多客户端下载页面:下载页面(根据自己对应的操作系统下载)

  • 选NPS的主要原因就是他官网的最后一段介绍,支持web管理,这很重要!抛弃了繁琐的代码。友好友好还是友好!

  • 安装设备条件

    • 有固定IP
    • 有固定IP的云服务器
    • 两者满足其中一条即可,有固定的IP的网络,你最起码要有这个网络的管理权,因为国内大多数地方个人很难拿到,一般都是公司,后面大概率你是需要做地址转换的。与云服务的开启某些防火墙端口是一样的。
    • 我下面的教程是以armbian+Docker+固定IP 的方式实现的。云服务器操作类似。

服务端安装

  • 安装Docker

  • 我的刷的armbian,安装完系统我就直接安装了Docker,上面提供了安装命令

    apt install docker.io
    
  • 如果你是云服务器建议使用以下命令一键安装

    sudo curl -sSL https://get.docker.com | sh
    systemctl start docker
    systemctl enable docker
    
  • 推荐我之前的文章参考

  • 树莓派安装Docker以及Portainer中文版

  • Docker中文管理面板:Fast Os Docker

  • 创建配置文件夹(自定义)

    mkdir /home/nps

  • 将配置文件上传到文件夹

  • 下载地址:官方Git

  • 访问不了:点这个 我下载好的。

  • 解压到文件夹

    unzip conf.zip -d /home/nps
    
  • 修改nps配置

    nano /home/nps/conf/nps.conf 
    
  • 将下方web_password=xxxxxxxxxxx中的xxx改成自己需要设置的密码

    #web
    web_host=a.o.com
    web_username=admin
    web_password=xxxxxxxxxxx
    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
    
  • 拉取镜像

    docker pull ffdfgdfg/nps
    
  • 启动镜像

    docker run -d --name=nps --restart=always --net=host -v /home/nps/conf:/conf ffdfgdfg/nps
    
  • 通过web页面访问nps

  • 提示:大部分云服务器需要开启防火墙,企业内网需要将默认内网IP+8080端口映射出去

  • 这时候我们就可以通过公网IP:8080访问了。

  • 关于下图的为什么是38080,主要原因是我企业外网8080端口被占用了,本身也需要设置端口转换,你可以理解成:内网192.168.1.100:8080转换成公网223.5.5.5:38080,正常云服务器通过公网IP:8080就能访问了,有域名的还可以通过反向代理,绑定域名。

nps服务端.png

服务端配置

  • 下载对应的客户端官方下载,我这里以树莓派演示。

  • 创建文件夹

    mkdir /home/npc

  • 上传下载好的客户端到/home文件夹
    上传客户端.png

  • 解压文件夹/home/npc

    tar -zxvf linux_arm64_client.tar.gz -C /home/npc
    
  • 登录NPS,创建客户端

  • 点击客户端-新增,配置根据自行调整,获取服务端命令
    新增客户端.png
    获取服务端命令.png

  • 登录树莓派。进入npc目录

    cd /home/npc

  • 执行刚才获取的到的服务端命令

  • 类似如下:

  • 客户端命令样式: ./npc -server=x.x.x.x:8024 -vkey=qqqqqqqqqqqqq -type=tcp

  • 如需后台运行,在./npc后面增加install:./npc install -server=x.x.x.x:8024 -vkey=qqqqqqqqqqqqq -type=tcp

  • 然后执行 npc start 即可

  • 停止只需在目录下执行 npc stop ,卸载 ./npc uninstall +上方参数

  • 如无报错,此时NPS服务端,该客户端就正常在线了。
    客户端在线.png

  • 添加一个TCP链接

    • 2.模式自选,其他我还没尝试
    • 3.客户端ID是上方客户端列表第一个有显示
    • 4.服务端口,可以自定义,企业网需要地址转换,云服务需在防火墙放行该端口
    • 5.内网设备的IP地址+端口,你需要穿透出来的服务。

    增加TCP隧道.png

  • 创建的隧道提示成功了,也在线了。

TCP隧道创建成功.png

  • 这时我们就可以在外网访问内网的业务了。

结语

  • 其实写这篇文章的时候,我已经购买了一台云服务器和域名,在狗云买的,但是不幸的是我配置买的太低了,1核,0.5G,50M,300G流量的机子,导致很多服务不敢搭,怕服务器受不了。暂时也不支持升级配置,幸亏只买了3个月。就这样暂时先用着吧!
  • 我把前面的那个怀旧文章好玩的Docker应用-家庭在线dos游戏库,通过穿透出去了,有兴趣的可以去玩玩!后面我会发下连接,我本地网络性能有限,可能加载会慢一些!流量跑完了,服务估计就会停!
  • 搭建步骤很简单,无论是直接下载软件包还是使用docker安装,上面的过程都有演示。有疑问可以多交流交流!
  • 怀旧游戏平台:xinqiu.ink
赞(0)
未经允许不得转载:工具盒子 » 使用Docker搭建NPS内网穿透