深入解析cnlh/nps项目的高级功能配置指南
nps 项目地址: https://gitcode.com/gh_mirrors/nps/nps
前言
cnlh/nps是一款功能强大的内网穿透工具,提供了丰富的配置选项和扩展功能。本文将详细介绍nps的高级功能配置方法,帮助用户更好地利用这款工具满足各种复杂场景的需求。
HTTPS配置详解
方案一:nps直接处理HTTPS
-
配置步骤:
- 修改
nps.conf
文件,设置https_proxy_port=443
(或其他端口) - 将
https_just_proxy
设置为false - 重启nps服务
- 在web管理界面中为每个域名配置对应的SSL证书和私钥
- 修改
-
默认证书机制:
- 可在配置文件中设置默认证书,用于以下情况:
- 未在web中配置证书的域名
- 客户端请求未携带SNI扩展信息
- 可在配置文件中设置默认证书,用于以下情况:
方案二:内网服务器处理HTTPS
- 配置方法:
- 将
https_just_proxy
设置为true - 开启
https_proxy_port
端口 - nps将直接转发HTTPS流量到内网服务器
- 将
技术建议:对于性能敏感场景,推荐使用方案二,将SSL卸载工作交给专业设备处理。
与Nginx协同工作配置
HTTP服务配置
- 基础配置:
- 在
nps.conf
中设置非80端口的httpProxyPort
(如8010) - Nginx配置示例:
server { listen 80; server_name *.proxy.com; location / { proxy_set_header Host $http_host; proxy_pass http://127.0.0.1:8010; } }
- 在
HTTPS服务配置
- 完整方案:
- 关闭nps的HTTPS代理(设置
httpsProxyPort
为空) - Nginx监听443端口并处理SSL
- 示例配置:
server { listen 443; server_name *.proxy.com; ssl on; # SSL证书配置... location / { proxy_set_header Host $http_host; proxy_pass http://127.0.0.1:8020; } }
- 关闭nps的HTTPS代理(设置
Web管理安全增强
启用HTTPS访问
- 配置方法:
- 设置
web_open_ssl=true
- 配置
web_cert_file
和web_key_file
路径
- 设置
Caddy服务集成
- 子路径访问方案:
- Caddyfile配置示例:
domain.com/nps { proxy / http://nps_server:web_port/nps { transparent } }
- 同时设置
web_base_url=/nps
高级功能配置
流量数据持久化
- 启用方法:
- 设置
flow_store_interval
(分钟单位) - 注意:公钥连接的客户端数据不会被持久化
- 设置
系统监控展示
- 开启方法:
- 设置
system_info_display=true
- 将在web界面显示服务器资源使用情况图表
- 设置
安全相关配置
客户端认证强化
-
自定义连接密钥:
- 在web界面为每个客户端设置唯一密钥
-
禁用公钥访问:
- 将
public_vkey
设置为空
- 将
Web管理控制
- 完全禁用Web:
- 将
web_port
设置为空
- 将
多用户管理
多用户登录
-
启用方法:
- 设置
allow_user_login=true
- 默认用户名为"user",密码为客户端验证密钥
- 设置
-
用户注册功能:
- 设置
allow_user_register=true
- 将在登录页面显示注册入口
- 设置
高级网络配置
多IP监听
- 配置方法:
- 设置
allow_multi_ip=true
- 可在web或npc配置文件中指定监听IP
- 设置
本地服务转发
-
使用场景:
- 当nps占用80/443端口时,需要转发到本地其他服务
-
配置步骤:
- 设置
allow_local_proxy=true
- 在web界面配置隧道时选择"转发到本地"选项
- 设置
结语
通过合理配置这些高级功能,nps可以满足企业级内网穿透的各种复杂需求。建议根据实际使用场景选择适当的配置方案,在安全性和性能之间取得平衡。对于生产环境,务必做好相应的安全配置,如启用HTTPS、设置复杂密码等。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考