Sign inSign up

lihaixin/nps

By lihaixin

•Updated 11 months ago

nps是一款轻量级、高性能、功能强大的内网穿透代理服务器

Image
1

10K+

lihaixin/nps repository overview

⁠NPS⁠

⁠介绍

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

⁠功能用途

  • 做微信公众号开发、小程序开发等----> 域名代理模式
  • 想在外网通过ssh连接内网的机器,做云服务器到内网服务器端口的映射,----> tcp代理模式
  • 在非内网环境下使用内网dns,或者需要通过udp访问内网机器等----> udp代理模式
  • 在外网使用HTTP代理访问内网站点----> http代理模式
  • 搭建一个内网穿透ss,在外网如同使用内网vpn一样访问内网资源或者设备----> socks5代理模式

⁠此镜像优点

  • 可视化的终端功能提示(见下图)

  • 基于alpine 构建的 amd64 arm64 镜像 (<30M)

  • 支持在爱快x86_64路由器上部署

  • 支持ORACE arm64 CPU架构部署

  • 默认自签证书或者调用已有证书 (/etc/cert/$DOMAIN/fullchain.crt /etc/cert/$DOMAIN/private.key)

  • 强制使用https访问,确保访问安全

  • 可通过NPC=1变量开启反向通过{HTTPS_PROXY_PORT}端口代理客户端下载(用于国内不能访问github)

⁠终端面板

                   __          __         _                                                           
                   \ \        / /        | |                                                          
                    \ \  /\  / /    ___  | |   ___    ___    _ __ ___     ___     _ __    _ __    ___ 
                     \ \/  \/ /    / _ \ | |  / __|  / _ \  | '_ ` _ \   / _ \   | '_ \  | '_ \  / __|
                      \  /\  /    |  __/ | | | (__  | (_) | | | | | | | |  __/   | | | | | |_) | \__ \
                       \/  \/      \___| |_|  \___|  \___/  |_| |_| |_|  \___|   |_| |_| | .__/  |___/
                                                                                         | |          
                                                                                         |_|          
 # -------------------------------------------------------------------------------------------------------------- #
 # NPS 面板域名管理地址: https://***.***.net:$WEB_PORT 帐号:admin 密码: $WEB_PASSWORD 
 # NPS 面板外网管理地址: https://**.**.**.**:$WEB_PORT 帐号:admin 密码: $WEB_PASSWORD 
 # NPS 面板内网管理地址: https://**.**.**.**:$WEB_PORT 帐号:admin 密码: $WEB_PASSWORD 
 # 测试下载带宽:  使用< speed | speedcn > 
 # 查看日志:  使用< npslogs > 
 # 重启程序:  使用< reboot >
 # -------------------------------------------------------------------------------------------------------------- #

image

⁠安装和配置

⁠前提条件:
1、假设你使用域名youdomain.com,首先做hostname.youdomain.com -->A记录到指向你的VPS IP
2、做泛解析*.youdomain.com -->cname 到hostname.youdomain.com
3、VPS上一键运行docker环境 curl -sSL https://get.docker.com/ | sh 
⁠命令行cli:
docker run -d --net=host \
    --name nps \
    --hostname nps \
    - npsconf:/conf \
    - /etc/cert:/etc/cert \
    -e MODE=tcp \
    -e NPC=0 \
    -e HTTP_PROXY_PORT=80 \
    -e HTTPS_PROXY_PORT=443 \
    -e BRIDGE_PORT=8024 \
    -e WEB_PORT=8080
    -e DOMAIN=youdomain.com \
    -e HOSTNAME=hostname \
    -e PUBLIC_VKEY=12345678 \
    -e WEB_PASSWORD=password \
    lihaixin/nps:s
    
 
通过变量直接修改域名,公共密钥KEY,网页管理密码,http、https域名解析端口和客户端链接服务器的端口
⁠docker-compose
version: "3.7"
services:
  nps:
    image: lihaixin/nps:s
    container_name: nps
    hostname: nps
    restart: unless-stopped
    network_mode: "host"
    privileged: true
    volumes:
      - npsconf:/conf                             # 永久存放在web界面添加的用户和连接
      - /etc/cert:/etc/cert                       # 调用和自签证书存放位置
    environment: 
      - QQ=***                                    # 终端界面显示的联系方式
      - MODE=tcp                                  # 支持 tcp | kcp
      - NPC=0                                     # 是否开启 FILE_PORT 端口,提供客户端下载功能
      - HTTP_PROXY_PORT=80                        # http代理端口
      - HTTPS_PROXY_PORT=443                      # https代理端口
      - WEB_PORT=8080                             # 网页管理端口
      - BRIDGE_PORT=8024                          # 客户端连接端口
      - ALLOW_POSTS=53,21001-22000,11001-12000    # 程序可容许访问的端口
      - DOMAIN=youdomain.com                      # 你主机域名
      - HOSTNAME=hostname                         # 你主机对应的主机名(标记用)
      - PUBLIC_VKEY=12345678                      # 公共KEY
      - WEB_PASSWORD=password                     # 网页管理密码
volumes:
  npsconf:
⁠服务器
管理地址(直接连接):https://hostname.youdomain.com:{WEB_PORT}
客户端下载地址(NPC=1 反向代理文件):http://hostname.youdomain.com:{FILE_PORT}

⁠客户端连接
  • 点击web管理中客户端前的+号,复制启动命令
  • 执行启动命令,linux直接执行即可,windows将./npc换成npc.exe用cmd执行

如果需要注册到系统服务可查看注册到系统服务⁠

⁠配置
  • 客户端连接后,在web中配置对应穿透服务即可
  • 更多高级用法见完整文档⁠

Tag summary

Content type

Image

Digest

sha256:c35a9240c…

Size

29.5 MB

Last updated

almost 4 years ago

docker pull lihaixin/nps