快速开始

一个本地搭建的 Docker 调试环境,模拟 nhp-server、nhp-ac、traefik、app 等。此环境可用于:

  • 快速理解 opennhp 的运作方式
  • 插件调试
  • 基本逻辑验证
  • 局部性能压力测试

English


工作流程

Workflow

编译 opennhp-base 镜像

cd ./docker
docker build --no-cache -t opennhp-base:latest -f Dockerfile.base ../..

配置本机的 ssl 证书

  • 生成本机 ssl 证书 进入到 ./docker/certs 目录,执行以下的命令:
    openssl req -x509 -newkey rsa:4096 -sha256 -days 365 -nodes \
    -keyout server.key -out server.crt -subj "/CN=opennhp.cn" \
    -addext "subjectAltName=DNS:opennhp.cn,IP:127.0.0.1"
    
  • 添加 /etc/hosts 配置
127.0.0.1       local.opennhp.cn
127.0.0.1       app.opennhp.cn

开始

**注意: 先进入到 docker 目录(cd ./docker) **

docker compose up -d

测试

https://local.opennhp.cn/plugins/example?resid=demo&action=login

  • 预期页面正常显示
  • 点击登录后,能正常跳转,并能访问正常

验证 ipset 规则是否生效

docker exec -it nhp-ac ipset list

如果出现以下结果,则表示规则写入成功,这意味着敲门成功:

Name: defaultset Rules

Name: defaultset
Type: hash:ip,port,ip
Revision: 5
Header: family inet hashsize 1024 maxelem 1000000 timeout 120 counters
Size in memory: 656
References: 7
Number of entries: 2
Members:
177.9.0.13,udp:80,177.9.0.10 timeout 14 packets 0 bytes 0
177.9.0.13,tcp:80,177.9.0.10 timeout 14 packets 138 bytes 28068
192.168.65.1,tcp:80,177.9.0.10 timeout 14 packets 0 bytes 0
192.168.65.1,udp:80,177.9.0.10 timeout 14 packets 0 bytes 0

Name: defaultset_down
Type: hash:ip,port,ip
Revision: 5
Header: family inet hashsize 1024 maxelem 1000000 timeout 121 counters
Size in memory: 208
References: 2
Number of entries: 0
Members:

Name: tempset
Type: hash:net,port
Revision: 7
Header: family inet hashsize 1024 maxelem 1000000 timeout 5 counters
Size in memory: 456
References: 2
Number of entries: 0
Members:

压力测试

ab -k -n 10000 -c 100 'https://local.opennhp.cn/plugins/example?resid=demo&action=valid&passcode=123456'