# 启动参数及内核特殊功能

通过指令查看启动参数说明

```
./go_build_Coolpy7_go -h
```

启动参数如下

```
Usage of ./go_build_Coolpy7_go:
  -as int
        用户身份验证默认开关，0为不验证，1为通过jwt验证,必须设置-jsk启动参数，2为使用扩展服务
  -cl string
        Coap发布消息服务绑定地址(UDP) (default ":1883")
  -crk string
        集群服务发现验证token (default "Coolpy7!@#$dRdT(")
  -crp int
        集群发现端口(UDP) (default 7946)
  -csk string
        集群服务同步验证token (default "Coolpy7")
  -csp int
        集群同步端口(UDP) (default 7947)
  -ctp string
        集群中指定需要桥过的topics多个时以豆号隔开，默认#号为转发所有topics (default #) (default "#")
  -dt int
        心跳或推送消息限制生效后,多少时间内不允许登陆/秒 (default 0)
  -ha string
        内核扩展功能服务地址,as参数为2时此参数生效 (default "localhost:5683")
  -hl string
        Admin&Api发布消息服务绑定地址 (default ":8081")
  -ht string
        内核扩展功能服务token,必须与服务端配置一致 (default "coolpy7")
  -it int
        消息ID标记缓存超时时间/秒, 默认0即不执行超时删除 (default 0)
  -jsk string
        jwt密钥，解密连接中的密码参数的jwt token之密钥
  -l string
        绑定Host地址 (default ":1883")
  -max int
        GOMAXPROCS (default 2)
  -mbs string
        连接集群节点（192.168.0.100,192.168.0.101)
  -mc int
        允许接入客户端最大连接数,0为不限制 (default 0)
  -mpl int
        允许单个消息体最大体积/单位Byte,0为不限制 (default 0)
  -nid string
        集群节点名称，必须集群中唯一 (default "node1")
  -nt int
        空连接攻击最大值,多少时间内连接未正常登陆后关闭连接/秒 (default 2)
  -ol int
        集群节点离线重连最少间隔时间/秒 (default 30) (default 10)
  -ot int
        消息IO缓存超时时间/秒,默认0即不执行超时删除 (default 0)
  -pf int
        推送消息延时缓存速率/毫秒 (default 25) (default 25)
  -pl int
        心跳包最少间隔时间/秒,少于此值ping包自动关闭连接 (default 0)
  -ps string
        消息IO缓存存储引擎，空值为LevelDB，支持Mongodb及Redis
  -psl int
        推送消息最少间隔时间/豪秒(千分之一秒),少于此值publish消息自动关闭连接 (default 0)
  -rt int
        Retained消息缓存超时时间/秒, 默认0即不执行超时删除 (default 0)
  -st int
        订阅缓存超时时间/秒, 默认0即不执行超时删除 (default 0)
  -syst string
        调用http取sys接口时身份证token (default "coolpy7")
  -t int
        连接读写超时时限/秒 (default 60)
  -wsl string
        绑定Websocket Host地址 (default ":8083")
  -wst int
        Webscoket读写超时时限/秒 (default 30)
  -wt int
        Will消息缓存超时时间/秒, 默认0即不执行超时删除 (default 0)


```

## 参数逻辑说明

### -ps参数 消息IO缓存存储引擎 v7.3.3.6提供

此参数为消息存储引擎设置功能，目前支持MongoDB和Redis作为可选存储引擎，当不设置时默认使用自带的LevelDB作为存储引擎。cp7内核要根据连接字符串作为引擎判断，如果为redis\://开头即使用redis引擎，如果为mongodb://开头即使用mongodb引擎。本参数默认情况下会结合-ot参数值生效超时自动清除记录功能。当-ot参数为置为0时，所有存储引擎执行永久保存消息规则。

{% hint style="info" %}
Redis例：./go\_build\_Coolpy7\_go\_linux -ps=redis\://localhost:6379/0

MongoDB例：

./go\_build\_Coolpy7\_go\_linux -ps=mongodb://localhost:27017
{% endhint %}

### -as参数 全称Authentication standard

此参数用于设置Coolpy7内核在没有加载插件时默认是否允许所有接入客户端，默认值true即不做任何身份验证通过所有接入的客户端，而当用户身份验证插件被正常加载后此值不再生效，以插件Loop函数的bool返回类型处理用户身份验证允许值。

{% hint style="success" %}
自7.3.2.9版本开始，as 参数改为数值型，0为不验证身份，1为使用JWT，2为使用扩展服务。

当使用JWT功能时必须同时配置-jsk参数为JWT密钥用于验证JWT Token是否合法。
{% endhint %}

{% hint style="info" %}
~~自7.2.1.1版本开始，as参数同时作为是否启动扩展服务功能的开关参数。祥情请参阅本手册的\[内核功能扩展（新版）]章节。~~
{% endhint %}

### -ha参数 内核扩展功能服务地址

当as参数设置为false后此参数生效。此参数设置内核扩展服务地址，支持域名、IP等型式配置。

### -hl参数 Admin\&Api发布消息服务绑定地址

此参数默认值为":8081"即启动时不设置此参数情况下内核会直接启动WEB管理后台到8081端口。当不需要内核启动管理后台的情况下可设置此参数为"nil"即可。

### -ht参数 内核扩展服务密钥

此参数必须与内核扩展服务器端所设置的-ht参数之值一致。否则导致无法正常调用扩展服务。以此密钥作为内核与扩展服务间的身份认证口令。

### -pl参数 self-ping ddos攻击防护盾

此参数设置self-ping ddos攻击防护盾参数，当某个客户端少于此值进行ping心跳包时内核会自动断开该连接，达到防止此类击攻。需要配合使用的还要-dt参数，dt参数是当本参数生效生多少秒内不允许此客户端再次登陆。

{% hint style="info" %}
有研究数据证明所有长连接服务器端普遍的一种击攻手段就是以合法的网络协议发送ping包进行服务器端洪水ddos攻击。另一方面当服务器端大量资源处理心跳包时会大大降低服务器端硬件及网络资源的有效应用。
{% endhint %}

### -it参数 message id reset time out

此参数设置mqtt协议要求单客户端所独立自主的message id标识计数器，而此参数设置的是计数器指多少秒后重置数值，当客户端clear session为true时永不重置，为false时重连接时重置。默认值0为永不重置（clear session优先于本参数）

{% hint style="info" %}
mqtt需要以连接客户端为单位通过message id对消息进行唯一性标识从而达到消息质量控制（Qos）功能
{% endhint %}

### -l 参数 内核mqtt服务绑定地址

绑定本机所有ip的指定端口号可以以 ":PORT"形式绑定为所有本地IP，例如":1883"，如需进行指定IP需要改为"IP:Port"形式，例如"220.256.123.23:1883"，如域名绑定只需把域名指向本机外网IP即可

### -max 参数 GOMAXPROCS golang 虚拟机cpu性能参数

建议此值不要随意修改，保持默认值即可

### -mc 参数 允许接入客户端最大连接数

限制Coolpy7内核封顶上限允许连接的客户端个数，当到达限制生效时不会再允许任何客户端连接进入，当有客户端断开时计数器会减少限制值，所以只要当前客户端连接数少于此值新连接都被允许接入

### -nt 参数 空连接攻击防护盾

空连接攻击行业也是黑客常用的一种针对长连接服务器端的攻击行为，由于mqtt borker对协议连立在tcp/ip协议之上，所以如果黑客通过tcp/ip协议连立连接而不进行mqtt后续操作，服务器端资源将被此行为占用完所有网络资源。所以Coolpy7内核提供了防止此类攻击的防护盾，当tcp连接后多少秒内不进行mqtt后续操作时，防护盾会主动断开此连接，而此参数即为设置多少秒内连接未能正常登陆即主动断开连接

### -ot 参数 Qos缓存消息最大保存时间

Coolpy7内核自带有10亿级高性能leveldb数据为作为消息质量控制Qos的离线存储能力，即内核就算意外关闭，所有因为Qos质量关系未成功送达的消息不会受到内核程序重启而丢失。此为存在此功能所以有可以一些消息会被永久保存在数据库中，可通过此参数设置最大保存消息的时间，一但超过此时间即消息会在数据库中永久清除

### -psl 参数 publish消息防护盾

一般情况下mqtt的publish消息不会有任何限制，但当黑客恶意攻击你时，服务器端将受到资源被严重占用导至内核服务不能正常提供。所以Coolpy7提供了上防护盾，当某个客户端推送消息时间间隔于少此参数设置值时，内核会主动断开此客户端连接。需要配合使用的还要-dt参数，dt参数是当本参数生效生多少秒内不允许此客户端再次登陆。

### -rt 参数 Retained消息缓存超时时间

Coolpy7内核自带有10亿级高性能leveldb数据为作为mqtt协议的Retained消息，此参数设置Retained消息最大保存时间，超时消息会被永久清除

### -wt 参数 will消息缓存超时时间/秒

Coolpy7内核自带有10亿级高性能leveldb数据为作为mqtt协议的will消息，此参数设置will消息最大保存时间，超时消息会被永久清除

### -st 参数 订阅缓存超时时间/秒

Coolpy7内核自带有10亿级高性能leveldb数据为作为mqtt协议的订阅主题sub的topic,qos等信息，此参数设置信息最大保存时间，超时消息会被永久清除

### -mbs 参数 连接集群节点

例如：192.168.0.100:7946,192.168.0.101:7946。以半角豆号分隔多个节点连接信息。7946是默认集群端口，如启动参数更改了端口根据情况指定变更端口号。

### -crk 参数 集群服务发现验证token

默认值 Coolpy7!@#$dRdT( 此参数要求密钥长度必须为 16字符），此参数必须所有节点一致集群才能正常，防止非同一集群节点进入私有群集中。

{% hint style="success" %}
此参数同时还作为cp7的http管理接口的token分发密钥，所以默认情况下此参数不能为空
{% endhint %}

### -crp 参数 集群服务发现端口

集群发现端口，使用UDP协议，防火墙需开启放行。此端口为集群服务发现信号通信端口，默认端口号为7946。

### -csp 参数 集群消息转发端口

此端口为群集节点间消息转发通信端口，使用UDP协议，防火墙需开启放行。默认端口号为7947。

### -csk 参数 集群服务消息中转验证token

默认值 Coolpy7( 此参数没有长度限制，应尽量控制在32位以内），此参数必须所有节点一致集群消息中转才能正常，防止非同一集群节点消息转发到其他群集中，或被恶意监听集群消息。

### -sysl 参数 http取brokers\&sys接口访问速率限制/秒

默认值为5秒，当访问者少于此限制值访问群集信息接口/brokers和系统信息接口/sys时访问会被禁止，返回429错误码。

### -syst 参数 调用http取sys接口时身份证token

默认值 coolpy7，此参数为必填参数，防止http接口被非法访问，或被恶意收集集群消息。设置后通过http的URL参数进行访问设置：

例如：<http://localhost:8081/sys?token=coolpy7>

### -ctp 消息桥接

消息桥接是为CP7集群各节点间的消息同步提供可配置性的相关功能。

通过启动参数进行配置相关桥接主题指定主题消息过滤桥接。默认参数值以 # 号表示全量消息桥接。需指定特定主题是以半角豆号隔开多个主题，如：aaa/#,bbb/#&#x20;


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://coolpy7.gitbook.io/coolpy7book/kai-shi-shi-yong/qi-dong-can-shu.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
