介绍

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

  1. 协议支持全面,兼容几乎所有常用协议,例如tcp、udp、http(s)、socks5、p2p、http代理...
  2. 全平台兼容(linux、windows、macos、群辉等),支持一键安装为系统服务
  3. 控制全面,同时支持服务端和客户端控制
  4. https集成,支持将后端代理和web服务转成https,同时支持多证书
  5. 操作简单,只需简单的配置即可在web ui上完成其余操作
  6. 展示信息全面,流量、系统信息、即时带宽、客户端版本等
  7. 扩展功能强大,该有的都有了(缓存、压缩、加密、流量限制、带宽限制、端口复用等等)
  8. 域名解析具备自定义header、404页面配置、host修改、站点保护、URL路由、泛解析等功能
  9. 服务端支持多用户和用户注册功能

项目地址:https://github.com/ehang-io/nps

安装

NPS

去项目下载区,挑选server端(根据你的服务器来选):https://github.com/ehang-io/nps/releases
2024-01-24T07:38:50.png
我拿比较普遍的amd64架构来演示

mkdir nps
cd nps
wget https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_server.tar.gz
tar -zxf linux_amd64_server.tar.gz
vim conf/nps.conf

    appname = nps
    #Boot mode(dev|pro)
    runmode = dev
    
    #HTTP(S) proxy port, no startup if empty
    http_proxy_ip=0.0.0.0
    http_proxy_port=180  #最好和我一样改成180,这样不会占用80端口影响你的http服务
    https_proxy_port=1443 #最好和我一样改成1443,这样不会占用443端口影响你的https服务
    https_just_proxy=true
    #default https certificate setting
    https_default_cert_file=conf/server.pem
    https_default_key_file=conf/server.key
    
    ##bridge  这一块是设置server和客户端通信的,不需要修改
    bridge_type=tcp
    bridge_port=8024
    bridge_ip=0.0.0.0
    
    #公共密码,客户端可以使用该密码连接到服务器
    #连接后,服务器将能够打开相关端口,并根据自己的配置文件解析相关域名。
    #可以不改,没什么影响
    public_vkey=123
    
    #Traffic data persistence interval(minute)
    #Ignorance means no persistence
    #flow_store_interval=1
    
    # log level LevelEmergency->0  LevelAlert->1 LevelCritical->2 LevelError->3 LevelWarning->4 LevelNotice->5 LevelInformational->6 LevelDebug->7
    log_level=7
    #log_path=nps.log
    
    #是否限制IP访问,true或false或忽略(可以不用管,为了安全也可以开)
    #ip_limit=true
    
    #p2p
    #p2p_ip=127.0.0.1
    #p2p_port=6000
    
    #web
    web_host=a.o.com (有域名可以写,不改等后面cf反代也可以)
    web_username=你的用户名
    web_password=你的密码
    web_port = web访问的端口
    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
    # if web under proxy use sub path. like http://host/nps need this.
    #web_base_url=/nps
    
    #Web API未认证的IP地址(auth_crypt_key的长度必须为16)
    如果需要,删除注释
    # auth_key =测试
    auth_crypt_key =加密密钥,随便写一串密文,不要默认!这个必须改!不然不安全!
    
    #allow_ports=9001-9009,10001,11000-12000
    
    #Web management multi-user login
    allow_user_login=false
    allow_user_register=false
    allow_user_change_username=false
    
    
    #extension
    allow_flow_limit=false
    allow_rate_limit=false
    allow_tunnel_num_limit=false
    allow_local_proxy=false
    allow_connection_num_limit=false
    allow_multi_ip=false
    system_info_display=false
    
    #cache
    http_cache=false
    http_cache_length=100
    
    #get origin ip
    http_add_origin_header=false
    
    #pprof debug options
    #pprof_ip=0.0.0.0
    #pprof_port=9999
    
    #client disconnect timeout
    disconnect_timeout=60
    ~          

修改完配置后,输入./nps install安装NPS
安装完成后输入sudo ./nps start启动NPS,至此服务端就安装完成了,可以访问ip:你设置的端口进行访问和管理了。

NPC
部署过程和服务端其实差不多,
首先下载客户端安装包并解压,进入到解压目录
点击web管理中客户端前的+号,复制启动命令
2024-01-24T08:05:23.png
执行启动命令,linux直接执行即可

cd npc(到你安装客户端的目录)
./npc install 后面跟着你web管理端复制的命令,从-server开始
./npc start 后面跟着你web管理端复制的命令,从-server开始

windows将./npc换成npc.exe用powershell执行

文章目录