feat:添加nps到列表

This commit is contained in:
okxlin 2024-04-01 16:31:56 +08:00
parent f5677440cc
commit 631a7e4d5d
33 changed files with 966 additions and 0 deletions

View File

@ -0,0 +1,14 @@
CONTAINER_NAME="nps"
PANEL_APP_PORT_HTTP="40209"
NPS_AUTH_CRYPT_KEY="gl8r0tujikih7br5"
NPS_BRIDGE_PORT="8024"
NPS_BRIDGE_TLS_PORT="8025"
NPS_HTTPS_PROXY_PORT="50443"
NPS_HTTP_PROXY_IP="0.0.0.0"
NPS_HTTP_PROXY_PORT="50080"
NPS_PUBLIC_VKEY="xly7traGe3r0t6UWltristuh1"
NPS_WEB_HOST="http://localhost:40209"
NPS_WEB_OPEN_SSL="false"
NPS_WEB_PASSWORD="123_T8acCj"
NPS_WEB_USERNAME="admin_afmTRb"
TLS_ENABLE_SWITCH="true"

View File

View File

View File

@ -0,0 +1,2 @@
# key -> user | value -> pwd
npc=npc.pwd

View File

@ -0,0 +1,100 @@
appname = nps
#Boot mode(dev|pro)
runmode = pro
#HTTP(S) proxy port, no startup if empty
http_proxy_ip=${NPS_HTTP_PROXY_IP}
http_proxy_port=${NPS_HTTP_PROXY_PORT}
https_proxy_port=${NPS_HTTPS_PROXY_PORT}
https_just_proxy=true
#default https certificate setting
https_default_cert_file=server.pem
https_default_key_file=server.key
##bridge
bridge_type=tcp
bridge_port=${NPS_BRIDGE_PORT}
bridge_ip=0.0.0.0
# Public password, which clients can use to connect to the server
# After the connection, the server will be able to open relevant ports and parse related domain names according to its own configuration file.
public_vkey=${NPS_PUBLIC_VKEY}
#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
#Whether to restrict IP access, true or false or ignore
#ip_limit=true
#p2p
#p2p_ip=127.0.0.1
#p2p_port=6000
#web
web_host=${NPS_WEB_HOST}
web_username=${NPS_WEB_USERNAME}
web_password=${NPS_WEB_PASSWORD}
web_port = ${NPS_WEB_PORT}
web_ip=0.0.0.0
web_base_url=
web_open_ssl=${NPS_WEB_OPEN_SSL}
web_cert_file=${NPS_DEFAULT_CERT_FILE}
web_key_file=${NPS_DEFAULT_KEY_FILE}
# if web under proxy use sub path. like http://host/nps need this.
#web_base_url=/nps
#Web API unauthenticated IP address(the len of auth_crypt_key must be 16)
#Remove comments if needed
#auth_key=test
#获取服务端authKey时的aes加密密钥16位
auth_crypt_key =${NPS_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
#获取用户真实ip
http_add_origin_header=true
#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
#管理面板开启验证码校验
open_captcha=false
# 是否开启tls
tls_enable=${TLS_ENABLE_SWITCH}
tls_bridge_port=${NPS_BRIDGE_TLS_PORT}

View File

@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA2MVLOHvgU8FCp6LgQrPfaWcGygrsRk7TL9hbT8MxbCRUSLV7
Lbt3q5Knz8eTN4NWmwE6L5glOcH2x3Hnn+hPjbvgq35XBBIccAm0cYYKqoKkikeK
FZM0Gp/WhSrhJ4laTyQqyleIFKpwD9kHDiC/sxjGDhSFmHKhhAnsQIRm2tppFXX0
aAMqJEm88jzk1BN2QtKjEAn1u8v1+QW1KP3WuzdXH4L7hhMll66/KIm6Hfs2FRHQ
pRUWqZeJY4q79NW5p5f+siGwOsGpxb/p11pM+0xnCH3UIFbm3zCTzP4sLvkfFGAe
yAHsAwmaP8dJxh40ej3NN8uNiNvt8nw2Vb/1LwIDAQABAoIBAD40x/RKoEKIyE8B
D6g0pB1EQo+CePFoN3SYewO1uR4WgtVmtxWVoa7r5BpdZGLe3uCWhpMX7z7W6bGs
f1LFQOckjkHIfMIfTGfecRjO5Yqu+Pbxtq+gUah+S/plJr3IzdC+SUVNvzBnBMeX
eU3Vmg2UQ2nQ+9GWu8D/c/vDwxx0X8oQ2G8QaxX0tUurlSMNA3M7xySwEvhx54fO
UrDF3Q4yF48eA4butxVLFWf3cnlY+nR8uYd2vKfmp689/8C6kkfoM9igB78e93sm
uDM2eRLm4kU5WLl301T42n6AF7w8J0MhLLVOIeLs4l5gZPa3uKvYFmuHQao7e/5R
U/jHKrECgYEA8alPXuxFSVOvdhIsSN//Frj9CdExVdYmaLkt/2LO4FMnOaWh1xh7
5iCY1bJT8D9dhfbqRg3qW2oguZD8gu04R8fTRegQ89qmAIwsEYqVf9salR41lZU4
Rc+5yc7O11WIe9Lzu+ONFBFkAh3UFMR4zVZ/JhKIG/P5Srm7SUdKW2cCgYEA5aHo
x2LR+yKhjkrBzHG3Qrfy1PtlYHjOpYYAKHQcBFuiG08W3CK/vkYl+mhv0uyhT7mn
q6NDqrpZPRnDlOoEqgRS1X/QWKN6Pgd4HNLIawvp0vK9jYXDPcAXFzVthXCIwFcn
3a3m4cHiuLdRNOHkydiHQyTOF6eEneN07TDvwvkCgYEApzOd1u9igPmFzQuF2GYi
+HXFnaU/nUQuDwcQ7EJRIKRn31raPxiRoQesty5LJU6yRp4wOYgnPliPi9Tk4TGA
XynC4/tMv2vorzhMxVY9Wdke602bhYNZC/RNd3O/aP2lEQdD3Bv04I2nxE8fDb9i
VbAjCRSJV83WDf2zt1+78sECgYEAzezjRiKdcZu9y0/I+WEk2cUCE/MaF2he0FsZ
uy1cjp/qAJltQ5452xUnK6cKWNlxU4CHF0mC/hC8xCldliZCZoEYE3PaUBLSJdwm
35o6tpxpZI3gZJCG5NJlIp/8BkVDrVC7ZHV17hAkFEf4n/bPaB8wNYtE8jt8luaK
TcarzGkCgYBn2alN0RLN2PHDurraFZB6GuCvh/arEjSCY3SDFQPF10CVjTDV7sx3
eqJkwJ81syTmfJwZIceWbOFGgsuSx37UrQAVlHZSvzeqEg9dA5HqSoOACyidJI7j
RG2+HB+KpsIZjGgLrEM4i7VOpYUDRdaouIXngFq/t9HNT+MDck5/Lw==
-----END RSA PRIVATE KEY-----

View File

@ -0,0 +1,22 @@
-----BEGIN CERTIFICATE-----
MIIDtTCCAp2gAwIBAgIJAPXRSiP0Fs7sMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV
BAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX
aWRnaXRzIFB0eSBMdGQwHhcNMTcxMTA3MDg1MzQ2WhcNMjcxMTA1MDg1MzQ2WjBF
MQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50
ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
CgKCAQEA2MVLOHvgU8FCp6LgQrPfaWcGygrsRk7TL9hbT8MxbCRUSLV7Lbt3q5Kn
z8eTN4NWmwE6L5glOcH2x3Hnn+hPjbvgq35XBBIccAm0cYYKqoKkikeKFZM0Gp/W
hSrhJ4laTyQqyleIFKpwD9kHDiC/sxjGDhSFmHKhhAnsQIRm2tppFXX0aAMqJEm8
8jzk1BN2QtKjEAn1u8v1+QW1KP3WuzdXH4L7hhMll66/KIm6Hfs2FRHQpRUWqZeJ
Y4q79NW5p5f+siGwOsGpxb/p11pM+0xnCH3UIFbm3zCTzP4sLvkfFGAeyAHsAwma
P8dJxh40ej3NN8uNiNvt8nw2Vb/1LwIDAQABo4GnMIGkMB0GA1UdDgQWBBQdPc0R
a8alY6Ab7voidkTGaH4PxzB1BgNVHSMEbjBsgBQdPc0Ra8alY6Ab7voidkTGaH4P
x6FJpEcwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNV
BAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZIIJAPXRSiP0Fs7sMAwGA1UdEwQF
MAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAH1IZNkjuvt2nZPzXsuiVNyCE1vm346z
naE0Uzt3aseAN9m/iiB8mLz+ryvWc2aFMX5lTdsHdm2rqmqBCBXeRwTLf4OeHIju
ZQW6makWt6PxANEo6gbdPbQXbS420ssUhnR2irIH1SdI31iikVFPdiS0baRRE/gS
+440M1jOOOnKm0Qin92ejsshmji/0qaD2+6D5TNw4HmIZaFTBw+kfjxCL6trfeBn
4fT0RJ121V3G3+AtG5sWQ93B3pCg+jtD+fGKkNSLhphq84bD1Zv7l73QGOoylkEn
Sc0ajTLOXFBb83yRdlgV3Da95jH9rDZ4jSod48m+KemoZTDQw0vSwAU=
-----END CERTIFICATE-----

View File

111
apps/nps/0.26.18/data.yml Normal file
View File

@ -0,0 +1,111 @@
additionalProperties:
formFields:
- default: 40209
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Web Management Port
labelZh: web 管理端口
required: true
rule: paramPort
type: number
- default: 8024
edit: true
envKey: NPS_BRIDGE_PORT
labelEn: Server-Client Communication Port
labelZh: 服务端客户端通信端口
required: true
rule: paramPort
type: number
- default: 8025
edit: true
envKey: NPS_BRIDGE_TLS_PORT
labelEn: Server-Client Communication TLS Port
labelZh: 服务端客户端 TLS 通信端口
required: true
rule: paramPort
type: number
- default: "true"
envKey: TLS_ENABLE_SWITCH
labelEn: Whether TLS is enabled for server-client communication
labelZh: 服务端与客户端的通信是否启用 TLS
required: true
type: select
values:
- label: "True"
value: "true"
- label: "False"
value: "false"
- default: http://localhost:40209
edit: true
envKey: NPS_WEB_HOST
labelEn: External URL(If the default address, please replace localhost with the current service IP)
labelZh: 外部访问地址(若默认地址请替换 localhost 为当前服务 IP)
required: true
rule: paramExtUrl
type: text
- default: admin
edit: true
envKey: NPS_WEB_USERNAME
labelEn: Web Interface Management Account
labelZh: web 界面管理账号
random: true
required: true
rule: paramCommon
type: text
- default: "123"
edit: true
envKey: NPS_WEB_PASSWORD
labelEn: Web Interface Management Password
labelZh: web 界面管理密码
random: true
required: true
rule: paramComplexity
type: password
- default: "false"
edit: true
envKey: NPS_WEB_OPEN_SSL
labelEn: Enable webui https access
labelZh: web 界面开启 https 访问
required: true
rule: paramCommon
type: text
- default: "xly7traGe3r0t6UWltristuh1"
edit: true
envKey: NPS_PUBLIC_VKEY
labelEn: Key When the Client Starts in Configuration File Mode
labelZh: 客户端以配置文件模式启动时的密钥
required: true
rule: paramCommon
type: text
- default: "gl8r0tujikih7br5"
edit: true
envKey: NPS_AUTH_CRYPT_KEY
labelEn: 16-bit AES Encryption Key
labelZh: 16 位 AES 加密密钥
required: true
rule: paramCommon
type: text
- default: 0.0.0.0
edit: true
envKey: NPS_HTTP_PROXY_IP
labelEn: Http Proxy IP
labelZh: 域名代理 http 代理监听地址
required: true
rule: paramCommon
type: text
- default: 50080
edit: true
envKey: NPS_HTTP_PROXY_PORT
labelEn: Http Proxy Port
labelZh: 域名代理 http 代理监听端口
required: true
rule: paramPort
type: number
- default: 50443
edit: true
envKey: NPS_HTTPS_PROXY_PORT
labelEn: Https Proxy Port
labelZh: 域名代理 https 代理监听端口
required: true
rule: paramPort
type: number

View File

@ -0,0 +1,26 @@
version: "3"
services:
nps:
image: yisier1/nps:v0.26.18
container_name: ${CONTAINER_NAME}
restart: always
volumes:
- ./conf:/conf
- /etc/localtime:/etc/localtime:ro
environment:
NPS_WEB_HOST: ${NPS_WEB_HOST}
NPS_WEB_PORT: ${PANEL_APP_PORT_HTTP}
NPS_WEB_USERNAME: ${NPS_WEB_USERNAME}
NPS_WEB_PASSWORD: ${NPS_WEB_PASSWORD}
NPS_WEB_OPEN_SSL: ${NPS_WEB_OPEN_SSL}
NPS_PUBLIC_VKEY: ${NPS_PUBLIC_VKEY}
NPS_BRIDGE_PORT: ${NPS_BRIDGE_PORT}
NPS_BRIDGE_TLS_PORT: ${NPS_BRIDGE_TLS_PORT}
NPS_AUTH_CRYPT_KEY: ${NPS_AUTH_CRYPT_KEY}
NPS_HTTP_PROXY_IP: ${NPS_HTTP_PROXY_IP}
NPS_HTTP_PROXY_PORT: ${NPS_HTTP_PROXY_PORT}
NPS_HTTPS_PROXY_PORT: ${NPS_HTTPS_PROXY_PORT}
TLS_ENABLE_SWITCH: ${TLS_ENABLE_SWITCH}
network_mode: "host"
labels:
createdBy: "Apps"

10
apps/nps/README.md Normal file
View File

@ -0,0 +1,10 @@
# NPS
[README](https://github.com/ehang-io/nps/blob/master/README.md)|[中文文档](https://github.com/ehang-io/nps/blob/master/README_zh.md)
# 说明
由于nps已经有二年多的时间没有更新了存留了不少bug和未完善的功能。
此版本基于 nps 0.26.10的基础上二次开发而来。
***DockerHub*** [NPS](https://hub.docker.com/r/yisier1/nps) [NPC](https://hub.docker.com/r/yisier1/npc)

View File

@ -0,0 +1,16 @@
CONTAINER_NAME="nps"
PANEL_APP_PORT_HTTP="40209"
NPS_AUTH_CRYPT_KEY="gl8r0tujikih7br5"
NPS_BRIDGE_PORT="8024"
NPS_BRIDGE_TLS_PORT="8025"
NPS_HTTPS_PROXY_PORT="50443"
NPS_HTTP_PROXY_IP="0.0.0.0"
NPS_HTTP_PROXY_PORT="50080"
NPS_PUBLIC_VKEY="xly7traGe3r0t6UWltristuh1"
NPS_RANDOM_PORT_END="20200"
NPS_RANDOM_PORT_START="20100"
NPS_WEB_HOST="http://localhost:40209"
NPS_WEB_OPEN_SSL="false"
NPS_WEB_PASSWORD="123_T8acCj"
NPS_WEB_USERNAME="admin_afmTRb"
TLS_ENABLE_SWITCH="true"

View File

View File

View File

@ -0,0 +1,2 @@
# key -> user | value -> pwd
npc=npc.pwd

View File

@ -0,0 +1,100 @@
appname = nps
#Boot mode(dev|pro)
runmode = pro
#HTTP(S) proxy port, no startup if empty
http_proxy_ip=${NPS_HTTP_PROXY_IP}
http_proxy_port=${NPS_HTTP_PROXY_PORT}
https_proxy_port=${NPS_HTTPS_PROXY_PORT}
https_just_proxy=true
#default https certificate setting
https_default_cert_file=server.pem
https_default_key_file=server.key
##bridge
bridge_type=tcp
bridge_port=${NPS_BRIDGE_PORT}
bridge_ip=0.0.0.0
# Public password, which clients can use to connect to the server
# After the connection, the server will be able to open relevant ports and parse related domain names according to its own configuration file.
public_vkey=${NPS_PUBLIC_VKEY}
#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
#Whether to restrict IP access, true or false or ignore
#ip_limit=true
#p2p
#p2p_ip=127.0.0.1
#p2p_port=6000
#web
web_host=${NPS_WEB_HOST}
web_username=${NPS_WEB_USERNAME}
web_password=${NPS_WEB_PASSWORD}
web_port = ${NPS_WEB_PORT}
web_ip=0.0.0.0
web_base_url=
web_open_ssl=${NPS_WEB_OPEN_SSL}
web_cert_file=${NPS_DEFAULT_CERT_FILE}
web_key_file=${NPS_DEFAULT_KEY_FILE}
# if web under proxy use sub path. like http://host/nps need this.
#web_base_url=/nps
#Web API unauthenticated IP address(the len of auth_crypt_key must be 16)
#Remove comments if needed
#auth_key=test
#获取服务端authKey时的aes加密密钥16位
auth_crypt_key =${NPS_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
#获取用户真实ip
http_add_origin_header=true
#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
#管理面板开启验证码校验
open_captcha=false
# 是否开启tls
tls_enable=${TLS_ENABLE_SWITCH}
tls_bridge_port=${NPS_BRIDGE_TLS_PORT}

View File

@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA2MVLOHvgU8FCp6LgQrPfaWcGygrsRk7TL9hbT8MxbCRUSLV7
Lbt3q5Knz8eTN4NWmwE6L5glOcH2x3Hnn+hPjbvgq35XBBIccAm0cYYKqoKkikeK
FZM0Gp/WhSrhJ4laTyQqyleIFKpwD9kHDiC/sxjGDhSFmHKhhAnsQIRm2tppFXX0
aAMqJEm88jzk1BN2QtKjEAn1u8v1+QW1KP3WuzdXH4L7hhMll66/KIm6Hfs2FRHQ
pRUWqZeJY4q79NW5p5f+siGwOsGpxb/p11pM+0xnCH3UIFbm3zCTzP4sLvkfFGAe
yAHsAwmaP8dJxh40ej3NN8uNiNvt8nw2Vb/1LwIDAQABAoIBAD40x/RKoEKIyE8B
D6g0pB1EQo+CePFoN3SYewO1uR4WgtVmtxWVoa7r5BpdZGLe3uCWhpMX7z7W6bGs
f1LFQOckjkHIfMIfTGfecRjO5Yqu+Pbxtq+gUah+S/plJr3IzdC+SUVNvzBnBMeX
eU3Vmg2UQ2nQ+9GWu8D/c/vDwxx0X8oQ2G8QaxX0tUurlSMNA3M7xySwEvhx54fO
UrDF3Q4yF48eA4butxVLFWf3cnlY+nR8uYd2vKfmp689/8C6kkfoM9igB78e93sm
uDM2eRLm4kU5WLl301T42n6AF7w8J0MhLLVOIeLs4l5gZPa3uKvYFmuHQao7e/5R
U/jHKrECgYEA8alPXuxFSVOvdhIsSN//Frj9CdExVdYmaLkt/2LO4FMnOaWh1xh7
5iCY1bJT8D9dhfbqRg3qW2oguZD8gu04R8fTRegQ89qmAIwsEYqVf9salR41lZU4
Rc+5yc7O11WIe9Lzu+ONFBFkAh3UFMR4zVZ/JhKIG/P5Srm7SUdKW2cCgYEA5aHo
x2LR+yKhjkrBzHG3Qrfy1PtlYHjOpYYAKHQcBFuiG08W3CK/vkYl+mhv0uyhT7mn
q6NDqrpZPRnDlOoEqgRS1X/QWKN6Pgd4HNLIawvp0vK9jYXDPcAXFzVthXCIwFcn
3a3m4cHiuLdRNOHkydiHQyTOF6eEneN07TDvwvkCgYEApzOd1u9igPmFzQuF2GYi
+HXFnaU/nUQuDwcQ7EJRIKRn31raPxiRoQesty5LJU6yRp4wOYgnPliPi9Tk4TGA
XynC4/tMv2vorzhMxVY9Wdke602bhYNZC/RNd3O/aP2lEQdD3Bv04I2nxE8fDb9i
VbAjCRSJV83WDf2zt1+78sECgYEAzezjRiKdcZu9y0/I+WEk2cUCE/MaF2he0FsZ
uy1cjp/qAJltQ5452xUnK6cKWNlxU4CHF0mC/hC8xCldliZCZoEYE3PaUBLSJdwm
35o6tpxpZI3gZJCG5NJlIp/8BkVDrVC7ZHV17hAkFEf4n/bPaB8wNYtE8jt8luaK
TcarzGkCgYBn2alN0RLN2PHDurraFZB6GuCvh/arEjSCY3SDFQPF10CVjTDV7sx3
eqJkwJ81syTmfJwZIceWbOFGgsuSx37UrQAVlHZSvzeqEg9dA5HqSoOACyidJI7j
RG2+HB+KpsIZjGgLrEM4i7VOpYUDRdaouIXngFq/t9HNT+MDck5/Lw==
-----END RSA PRIVATE KEY-----

View File

@ -0,0 +1,22 @@
-----BEGIN CERTIFICATE-----
MIIDtTCCAp2gAwIBAgIJAPXRSiP0Fs7sMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV
BAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX
aWRnaXRzIFB0eSBMdGQwHhcNMTcxMTA3MDg1MzQ2WhcNMjcxMTA1MDg1MzQ2WjBF
MQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50
ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
CgKCAQEA2MVLOHvgU8FCp6LgQrPfaWcGygrsRk7TL9hbT8MxbCRUSLV7Lbt3q5Kn
z8eTN4NWmwE6L5glOcH2x3Hnn+hPjbvgq35XBBIccAm0cYYKqoKkikeKFZM0Gp/W
hSrhJ4laTyQqyleIFKpwD9kHDiC/sxjGDhSFmHKhhAnsQIRm2tppFXX0aAMqJEm8
8jzk1BN2QtKjEAn1u8v1+QW1KP3WuzdXH4L7hhMll66/KIm6Hfs2FRHQpRUWqZeJ
Y4q79NW5p5f+siGwOsGpxb/p11pM+0xnCH3UIFbm3zCTzP4sLvkfFGAeyAHsAwma
P8dJxh40ej3NN8uNiNvt8nw2Vb/1LwIDAQABo4GnMIGkMB0GA1UdDgQWBBQdPc0R
a8alY6Ab7voidkTGaH4PxzB1BgNVHSMEbjBsgBQdPc0Ra8alY6Ab7voidkTGaH4P
x6FJpEcwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNV
BAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZIIJAPXRSiP0Fs7sMAwGA1UdEwQF
MAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAH1IZNkjuvt2nZPzXsuiVNyCE1vm346z
naE0Uzt3aseAN9m/iiB8mLz+ryvWc2aFMX5lTdsHdm2rqmqBCBXeRwTLf4OeHIju
ZQW6makWt6PxANEo6gbdPbQXbS420ssUhnR2irIH1SdI31iikVFPdiS0baRRE/gS
+440M1jOOOnKm0Qin92ejsshmji/0qaD2+6D5TNw4HmIZaFTBw+kfjxCL6trfeBn
4fT0RJ121V3G3+AtG5sWQ93B3pCg+jtD+fGKkNSLhphq84bD1Zv7l73QGOoylkEn
Sc0ajTLOXFBb83yRdlgV3Da95jH9rDZ4jSod48m+KemoZTDQw0vSwAU=
-----END CERTIFICATE-----

View File

View File

@ -0,0 +1,127 @@
additionalProperties:
formFields:
- default: 40209
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Web Management Port
labelZh: web 管理端口
required: true
rule: paramPort
type: number
- default: 8024
edit: true
envKey: NPS_BRIDGE_PORT
labelEn: Server-Client Communication Port
labelZh: 服务端客户端通信端口
required: true
rule: paramPort
type: number
- default: 8025
edit: true
envKey: NPS_BRIDGE_TLS_PORT
labelEn: Server-Client Communication TLS Port
labelZh: 服务端客户端 tls 通信端口
required: true
rule: paramPort
type: number
- default: "true"
envKey: TLS_ENABLE_SWITCH
labelEn: Whether TLS is enabled for server-client communication
labelZh: 服务端与客户端的通信是否启用 TLS
required: true
type: select
values:
- label: "True"
value: "true"
- label: "False"
value: "false"
- default: http://localhost:40209
edit: true
envKey: NPS_WEB_HOST
labelEn: External URL(If the default address, please replace localhost with the current service IP)
labelZh: 外部访问地址(若默认地址请替换 localhost 为当前服务 IP)
required: true
rule: paramExtUrl
type: text
- default: admin
edit: true
envKey: NPS_WEB_USERNAME
labelEn: Web Interface Management Account
labelZh: web 界面管理账号
random: true
required: true
rule: paramCommon
type: text
- default: "123"
edit: true
envKey: NPS_WEB_PASSWORD
labelEn: Web Interface Management Password
labelZh: web 界面管理密码
random: true
required: true
rule: paramComplexity
type: password
- default: "false"
edit: true
envKey: NPS_WEB_OPEN_SSL
labelEn: Enable webui https access
labelZh: web 界面开启 https 访问
required: true
rule: paramCommon
type: text
- default: 20100
edit: true
envKey: NPS_RANDOM_PORT_START
labelEn: Dynamic Port Range Start
labelZh: 动态端口范围开始
required: true
rule: paramPort
type: number
- default: 20200
edit: true
envKey: NPS_RANDOM_PORT_END
labelEn: Dynamic Port Range End
labelZh: 动态端口范围结束
required: true
rule: paramPort
type: number
- default: "xly7traGe3r0t6UWltristuh1"
edit: true
envKey: NPS_PUBLIC_VKEY
labelEn: Key When the Client Starts in Configuration File Mode
labelZh: 客户端以配置文件模式启动时的密钥
required: true
rule: paramCommon
type: text
- default: "gl8r0tujikih7br5"
edit: true
envKey: NPS_AUTH_CRYPT_KEY
labelEn: 16-bit AES Encryption Key
labelZh: 16 位 AES 加密密钥
required: true
rule: paramCommon
type: text
- default: 0.0.0.0
edit: true
envKey: NPS_HTTP_PROXY_IP
labelEn: Http Proxy IP
labelZh: 域名代理 http 代理监听地址
required: true
rule: paramCommon
type: text
- default: 50080
edit: true
envKey: NPS_HTTP_PROXY_PORT
labelEn: Http Proxy Port
labelZh: 域名代理 http 代理监听端口
required: true
rule: paramPort
type: number
- default: 50443
edit: true
envKey: NPS_HTTPS_PROXY_PORT
labelEn: Https Proxy Port
labelZh: 域名代理 https 代理监听端口
required: true
rule: paramPort
type: number

View File

@ -0,0 +1,38 @@
version: "3"
services:
nps:
image: yisier1/nps:latest
container_name: ${CONTAINER_NAME}
ports:
- ${PANEL_APP_PORT_HTTP}:${PANEL_APP_PORT_HTTP}
- ${NPS_BRIDGE_PORT}:${NPS_BRIDGE_PORT}
- ${NPS_BRIDGE_TLS_PORT}:${NPS_BRIDGE_TLS_PORT}
- ${NPS_HTTP_PROXY_PORT}:${NPS_HTTP_PROXY_PORT}
- ${NPS_HTTPS_PROXY_PORT}:${NPS_HTTPS_PROXY_PORT}
- ${NPS_RANDOM_PORT_START}-${NPS_RANDOM_PORT_END}:${NPS_RANDOM_PORT_START}-${NPS_RANDOM_PORT_END}
restart: always
volumes:
- ./conf:/conf
- /etc/localtime:/etc/localtime:ro
environment:
NPS_WEB_HOST: ${NPS_WEB_HOST}
NPS_WEB_PORT: ${PANEL_APP_PORT_HTTP}
NPS_WEB_USERNAME: ${NPS_WEB_USERNAME}
NPS_WEB_PASSWORD: ${NPS_WEB_PASSWORD}
NPS_WEB_OPEN_SSL: ${NPS_WEB_OPEN_SSL}
NPS_PUBLIC_VKEY: ${NPS_PUBLIC_VKEY}
NPS_BRIDGE_PORT: ${NPS_BRIDGE_PORT}
NPS_BRIDGE_TLS_PORT: ${NPS_BRIDGE_TLS_PORT}
NPS_AUTH_CRYPT_KEY: ${NPS_AUTH_CRYPT_KEY}
NPS_HTTP_PROXY_IP: ${NPS_HTTP_PROXY_IP}
NPS_HTTP_PROXY_PORT: ${NPS_HTTP_PROXY_PORT}
NPS_HTTPS_PROXY_PORT: ${NPS_HTTPS_PROXY_PORT}
TLS_ENABLE_SWITCH: ${TLS_ENABLE_SWITCH}
networks:
- 1panel-network
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true

20
apps/nps/data.yml Normal file
View File

@ -0,0 +1,20 @@
name: NPS
tags:
- 工具
title: 轻量级、高性能、功能强大的内网穿透代理服务器
type: 工具
description: 轻量级、高性能、功能强大的内网穿透代理服务器
additionalProperties:
key: nps
name: NPS
tags:
- Tool
shortDescZh: 轻量级、高性能、功能强大的内网穿透代理服务器
shortDescEn: Lightweight, high-performance, powerful intranet penetration proxy server
type: tool
crossVersionUpdate: true
limit: 1
recommend: 0
website: https://ehang-io.github.io/nps
github: https://github.com/yisier/nps
document: https://ehang-io.github.io/nps

View File

@ -0,0 +1,14 @@
CONTAINER_NAME="nps"
PANEL_APP_PORT_HTTP="40209"
NPS_AUTH_CRYPT_KEY="gl8r0tujikih7br5"
NPS_BRIDGE_PORT="8024"
NPS_BRIDGE_TLS_PORT="8025"
NPS_HTTPS_PROXY_PORT="50443"
NPS_HTTP_PROXY_IP="0.0.0.0"
NPS_HTTP_PROXY_PORT="50080"
NPS_PUBLIC_VKEY="xly7traGe3r0t6UWltristuh1"
NPS_WEB_HOST="http://localhost:40209"
NPS_WEB_OPEN_SSL="false"
NPS_WEB_PASSWORD="123_T8acCj"
NPS_WEB_USERNAME="admin_afmTRb"
TLS_ENABLE_SWITCH="true"

View File

View File

View File

@ -0,0 +1,2 @@
# key -> user | value -> pwd
npc=npc.pwd

View File

@ -0,0 +1,100 @@
appname = nps
#Boot mode(dev|pro)
runmode = pro
#HTTP(S) proxy port, no startup if empty
http_proxy_ip=${NPS_HTTP_PROXY_IP}
http_proxy_port=${NPS_HTTP_PROXY_PORT}
https_proxy_port=${NPS_HTTPS_PROXY_PORT}
https_just_proxy=true
#default https certificate setting
https_default_cert_file=server.pem
https_default_key_file=server.key
##bridge
bridge_type=tcp
bridge_port=${NPS_BRIDGE_PORT}
bridge_ip=0.0.0.0
# Public password, which clients can use to connect to the server
# After the connection, the server will be able to open relevant ports and parse related domain names according to its own configuration file.
public_vkey=${NPS_PUBLIC_VKEY}
#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
#Whether to restrict IP access, true or false or ignore
#ip_limit=true
#p2p
#p2p_ip=127.0.0.1
#p2p_port=6000
#web
web_host=${NPS_WEB_HOST}
web_username=${NPS_WEB_USERNAME}
web_password=${NPS_WEB_PASSWORD}
web_port = ${NPS_WEB_PORT}
web_ip=0.0.0.0
web_base_url=
web_open_ssl=${NPS_WEB_OPEN_SSL}
web_cert_file=${NPS_DEFAULT_CERT_FILE}
web_key_file=${NPS_DEFAULT_KEY_FILE}
# if web under proxy use sub path. like http://host/nps need this.
#web_base_url=/nps
#Web API unauthenticated IP address(the len of auth_crypt_key must be 16)
#Remove comments if needed
#auth_key=test
#获取服务端authKey时的aes加密密钥16位
auth_crypt_key =${NPS_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
#获取用户真实ip
http_add_origin_header=true
#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
#管理面板开启验证码校验
open_captcha=false
# 是否开启tls
tls_enable=${TLS_ENABLE_SWITCH}
tls_bridge_port=${NPS_BRIDGE_TLS_PORT}

View File

@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA2MVLOHvgU8FCp6LgQrPfaWcGygrsRk7TL9hbT8MxbCRUSLV7
Lbt3q5Knz8eTN4NWmwE6L5glOcH2x3Hnn+hPjbvgq35XBBIccAm0cYYKqoKkikeK
FZM0Gp/WhSrhJ4laTyQqyleIFKpwD9kHDiC/sxjGDhSFmHKhhAnsQIRm2tppFXX0
aAMqJEm88jzk1BN2QtKjEAn1u8v1+QW1KP3WuzdXH4L7hhMll66/KIm6Hfs2FRHQ
pRUWqZeJY4q79NW5p5f+siGwOsGpxb/p11pM+0xnCH3UIFbm3zCTzP4sLvkfFGAe
yAHsAwmaP8dJxh40ej3NN8uNiNvt8nw2Vb/1LwIDAQABAoIBAD40x/RKoEKIyE8B
D6g0pB1EQo+CePFoN3SYewO1uR4WgtVmtxWVoa7r5BpdZGLe3uCWhpMX7z7W6bGs
f1LFQOckjkHIfMIfTGfecRjO5Yqu+Pbxtq+gUah+S/plJr3IzdC+SUVNvzBnBMeX
eU3Vmg2UQ2nQ+9GWu8D/c/vDwxx0X8oQ2G8QaxX0tUurlSMNA3M7xySwEvhx54fO
UrDF3Q4yF48eA4butxVLFWf3cnlY+nR8uYd2vKfmp689/8C6kkfoM9igB78e93sm
uDM2eRLm4kU5WLl301T42n6AF7w8J0MhLLVOIeLs4l5gZPa3uKvYFmuHQao7e/5R
U/jHKrECgYEA8alPXuxFSVOvdhIsSN//Frj9CdExVdYmaLkt/2LO4FMnOaWh1xh7
5iCY1bJT8D9dhfbqRg3qW2oguZD8gu04R8fTRegQ89qmAIwsEYqVf9salR41lZU4
Rc+5yc7O11WIe9Lzu+ONFBFkAh3UFMR4zVZ/JhKIG/P5Srm7SUdKW2cCgYEA5aHo
x2LR+yKhjkrBzHG3Qrfy1PtlYHjOpYYAKHQcBFuiG08W3CK/vkYl+mhv0uyhT7mn
q6NDqrpZPRnDlOoEqgRS1X/QWKN6Pgd4HNLIawvp0vK9jYXDPcAXFzVthXCIwFcn
3a3m4cHiuLdRNOHkydiHQyTOF6eEneN07TDvwvkCgYEApzOd1u9igPmFzQuF2GYi
+HXFnaU/nUQuDwcQ7EJRIKRn31raPxiRoQesty5LJU6yRp4wOYgnPliPi9Tk4TGA
XynC4/tMv2vorzhMxVY9Wdke602bhYNZC/RNd3O/aP2lEQdD3Bv04I2nxE8fDb9i
VbAjCRSJV83WDf2zt1+78sECgYEAzezjRiKdcZu9y0/I+WEk2cUCE/MaF2he0FsZ
uy1cjp/qAJltQ5452xUnK6cKWNlxU4CHF0mC/hC8xCldliZCZoEYE3PaUBLSJdwm
35o6tpxpZI3gZJCG5NJlIp/8BkVDrVC7ZHV17hAkFEf4n/bPaB8wNYtE8jt8luaK
TcarzGkCgYBn2alN0RLN2PHDurraFZB6GuCvh/arEjSCY3SDFQPF10CVjTDV7sx3
eqJkwJ81syTmfJwZIceWbOFGgsuSx37UrQAVlHZSvzeqEg9dA5HqSoOACyidJI7j
RG2+HB+KpsIZjGgLrEM4i7VOpYUDRdaouIXngFq/t9HNT+MDck5/Lw==
-----END RSA PRIVATE KEY-----

View File

@ -0,0 +1,22 @@
-----BEGIN CERTIFICATE-----
MIIDtTCCAp2gAwIBAgIJAPXRSiP0Fs7sMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV
BAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX
aWRnaXRzIFB0eSBMdGQwHhcNMTcxMTA3MDg1MzQ2WhcNMjcxMTA1MDg1MzQ2WjBF
MQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50
ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
CgKCAQEA2MVLOHvgU8FCp6LgQrPfaWcGygrsRk7TL9hbT8MxbCRUSLV7Lbt3q5Kn
z8eTN4NWmwE6L5glOcH2x3Hnn+hPjbvgq35XBBIccAm0cYYKqoKkikeKFZM0Gp/W
hSrhJ4laTyQqyleIFKpwD9kHDiC/sxjGDhSFmHKhhAnsQIRm2tppFXX0aAMqJEm8
8jzk1BN2QtKjEAn1u8v1+QW1KP3WuzdXH4L7hhMll66/KIm6Hfs2FRHQpRUWqZeJ
Y4q79NW5p5f+siGwOsGpxb/p11pM+0xnCH3UIFbm3zCTzP4sLvkfFGAeyAHsAwma
P8dJxh40ej3NN8uNiNvt8nw2Vb/1LwIDAQABo4GnMIGkMB0GA1UdDgQWBBQdPc0R
a8alY6Ab7voidkTGaH4PxzB1BgNVHSMEbjBsgBQdPc0Ra8alY6Ab7voidkTGaH4P
x6FJpEcwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNV
BAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZIIJAPXRSiP0Fs7sMAwGA1UdEwQF
MAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAH1IZNkjuvt2nZPzXsuiVNyCE1vm346z
naE0Uzt3aseAN9m/iiB8mLz+ryvWc2aFMX5lTdsHdm2rqmqBCBXeRwTLf4OeHIju
ZQW6makWt6PxANEo6gbdPbQXbS420ssUhnR2irIH1SdI31iikVFPdiS0baRRE/gS
+440M1jOOOnKm0Qin92ejsshmji/0qaD2+6D5TNw4HmIZaFTBw+kfjxCL6trfeBn
4fT0RJ121V3G3+AtG5sWQ93B3pCg+jtD+fGKkNSLhphq84bD1Zv7l73QGOoylkEn
Sc0ajTLOXFBb83yRdlgV3Da95jH9rDZ4jSod48m+KemoZTDQw0vSwAU=
-----END CERTIFICATE-----

View File

111
apps/nps/latest/data.yml Normal file
View File

@ -0,0 +1,111 @@
additionalProperties:
formFields:
- default: 40209
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Web Management Port
labelZh: web 管理端口
required: true
rule: paramPort
type: number
- default: 8024
edit: true
envKey: NPS_BRIDGE_PORT
labelEn: Server-Client Communication Port
labelZh: 服务端客户端通信端口
required: true
rule: paramPort
type: number
- default: 8025
edit: true
envKey: NPS_BRIDGE_TLS_PORT
labelEn: Server-Client Communication TLS Port
labelZh: 服务端客户端 TLS 通信端口
required: true
rule: paramPort
type: number
- default: "true"
envKey: TLS_ENABLE_SWITCH
labelEn: Whether TLS is enabled for server-client communication
labelZh: 服务端与客户端的通信是否启用 TLS
required: true
type: select
values:
- label: "True"
value: "true"
- label: "False"
value: "false"
- default: http://localhost:40209
edit: true
envKey: NPS_WEB_HOST
labelEn: External URL(If the default address, please replace localhost with the current service IP)
labelZh: 外部访问地址(若默认地址请替换 localhost 为当前服务 IP)
required: true
rule: paramExtUrl
type: text
- default: admin
edit: true
envKey: NPS_WEB_USERNAME
labelEn: Web Interface Management Account
labelZh: web 界面管理账号
random: true
required: true
rule: paramCommon
type: text
- default: "123"
edit: true
envKey: NPS_WEB_PASSWORD
labelEn: Web Interface Management Password
labelZh: web 界面管理密码
random: true
required: true
rule: paramComplexity
type: password
- default: "false"
edit: true
envKey: NPS_WEB_OPEN_SSL
labelEn: Enable webui https access
labelZh: web 界面开启 https 访问
required: true
rule: paramCommon
type: text
- default: "xly7traGe3r0t6UWltristuh1"
edit: true
envKey: NPS_PUBLIC_VKEY
labelEn: Key When the Client Starts in Configuration File Mode
labelZh: 客户端以配置文件模式启动时的密钥
required: true
rule: paramCommon
type: text
- default: "gl8r0tujikih7br5"
edit: true
envKey: NPS_AUTH_CRYPT_KEY
labelEn: 16-bit AES Encryption Key
labelZh: 16 位 AES 加密密钥
required: true
rule: paramCommon
type: text
- default: 0.0.0.0
edit: true
envKey: NPS_HTTP_PROXY_IP
labelEn: Http Proxy IP
labelZh: 域名代理 http 代理监听地址
required: true
rule: paramCommon
type: text
- default: 50080
edit: true
envKey: NPS_HTTP_PROXY_PORT
labelEn: Http Proxy Port
labelZh: 域名代理 http 代理监听端口
required: true
rule: paramPort
type: number
- default: 50443
edit: true
envKey: NPS_HTTPS_PROXY_PORT
labelEn: Https Proxy Port
labelZh: 域名代理 https 代理监听端口
required: true
rule: paramPort
type: number

View File

@ -0,0 +1,26 @@
version: "3"
services:
nps:
image: yisier1/nps:latest
container_name: ${CONTAINER_NAME}
restart: always
volumes:
- ./conf:/conf
- /etc/localtime:/etc/localtime:ro
environment:
NPS_WEB_HOST: ${NPS_WEB_HOST}
NPS_WEB_PORT: ${PANEL_APP_PORT_HTTP}
NPS_WEB_USERNAME: ${NPS_WEB_USERNAME}
NPS_WEB_PASSWORD: ${NPS_WEB_PASSWORD}
NPS_WEB_OPEN_SSL: ${NPS_WEB_OPEN_SSL}
NPS_PUBLIC_VKEY: ${NPS_PUBLIC_VKEY}
NPS_BRIDGE_PORT: ${NPS_BRIDGE_PORT}
NPS_BRIDGE_TLS_PORT: ${NPS_BRIDGE_TLS_PORT}
NPS_AUTH_CRYPT_KEY: ${NPS_AUTH_CRYPT_KEY}
NPS_HTTP_PROXY_IP: ${NPS_HTTP_PROXY_IP}
NPS_HTTP_PROXY_PORT: ${NPS_HTTP_PROXY_PORT}
NPS_HTTPS_PROXY_PORT: ${NPS_HTTPS_PROXY_PORT}
TLS_ENABLE_SWITCH: ${TLS_ENABLE_SWITCH}
network_mode: "host"
labels:
createdBy: "Apps"

BIN
apps/nps/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB