配置 Configuration
服务端 Server
服务端共有两个配置文件:
backend/server/pkg/config/server.yaml
: 用于trpc
配置backend/server/trpc_go.yaml
: 用于自定义的配置。
自定义配置 server
针对于Agent的默认配置还在测试,陆续会提供更多自定义配置。
字段 | 类型 | 默认值 | 描述 |
---|---|---|---|
sleep | int | 5 | 休眠时长 |
jitter | float32 | 0.3 | 抖动系数 |
process86 | string | C:\windows\system32\notepad.exe | 32位系统中的牺牲进程 |
process64 | string | C:\Windows\SysWOW64\notepad.exe | 64位系统中的牺牲进程 |
anchor | string | C:\Windows\system32\drivers\etc\hosts | 修改时间戳的锚定文件 |
… | … | … | … |
服务端的配置项如下:
字段 | 类型 | 默认值 | 描述 |
---|---|---|---|
host | string | localhost | 监听地址 |
file | struct | 详见 文件服务器-file | 文件服务器配置 |
db | struct | 详见 数据库-db | 数据库配置 |
timeout | int64 | 1800 | 最大超时时长 |
listeners | []struct | 详见 监听器-listener | 监听器配置 |
… | … | … | … |
文件服务器 file
字段 | 类型 | 默认值 | 描述 |
---|---|---|---|
port | int64 | 9000 | 监听端口 |
pattern | string | /files/downloads/ | 访问路径 |
… | … | … | … |
数据库 db
字段 | 类型 | 默认值 | 描述 |
---|---|---|---|
name | string | team.db | 数据库名称 |
root | string | Lockly | 初始化用户 |
password | string | 3ty1r86bn | 用户密码 |
… | … | … | … |
监听器 listener
初始化时将优先读取此处的配置来开启监听器。
字段 | 类型 | 默认值 | 描述 |
---|---|---|---|
name | string | default | 监听器名称 |
protocol | string | QUIC | 监听器类型(必须大写,可选DOH,QUIC,KCP,TRPC) |
port | int64 | 6666 | 监听端口 |
addr | string | localhost | 监听地址 |
description | string | Default listener | 描述 |
persistence | bool | true | 是否保存到数据库 |
workingRange | string | 07:00-23:00 | 运行时间区间(不在则休眠) |
killDateStamp | string | 2025-12-12 | 终止时间(逾期Agent自动退出) |
… | … | … | … |
在创建监听器时用可持久化的选项,但也可以在此配置多个监听器。例如:
listeners:
- name: quic-demo
protocol: QUIC
port: 6666
addr: 127.0.0.1
persistence: true
description: Default
workingRange: 7:00-23:00
killDateStamp: 2025-07-25
- name: doh-demo
protocol: DOH
port: 53
addr: 127.0.0.1
persistence: false
description: Default
workingRange: 7:00-23:00
killDateStamp: 2025-07-25
trpc配置 trpc_go
💤
不日江湖再见…
客户端 Client
💤
不日江湖再见…
共用配置 Common
Protobuf
采用protobuf来序列化数据,如需进行修改和扩展, 则在修改后使用更新.pb.go
文件:
protoc -I . api.proto --go_out=plugins=grpc:.
或者使用trpc命令行工具:
trpc create -f --protofile=api.proto --protocol=trpc --rpconly --nogomod --mock=false
如遇报错,请确保执行前已将其加入环境变量中,如下验证:
Lockly@BK ❯ protoc --version
libprotoc 3.21.12
Lockly@BK ❯ trpc version
trpc-group/trpc-cmdline version: v1.0.9
如果没有,使用以下命令配置:
go install trpc.group/trpc-go/trpc-cmdline/trpc@latest
go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.27.1
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.2.0
Certificate
自行更新证书, 例如使用自签:
openssl genrsa -des3 -out ca.key 2046
#输入两次密码
openssl req -new -key ca.key -out ca.csr
# CN HUNAN SHAOYANG MICROLOSS MICROLOSS karlin.com
openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt
openssl version -d
# 找到openssl.cnf文件 例如: /home/lockly/miniforge3/ssl/openssl.cnf
openssl genpkey -algorithm RSA -out server.key
openssl req -new -nodes -key server.key -out server.csr -days 3650 -config /home/lockly/miniforge3/ssl/openssl.cnf -extensions v3_req
openssl x509 -req -days 365 -in server.csr -out server.pem -CA ca.crt -CAkey ca.key -CAcreateserial -extfile /home/lockly/miniforge3/ssl/openssl.cnf -extensions v3_req
openssl genpkey -algorithm RSA -out client.key
openssl req -new -nodes -key client.key -out client.csr -days 3650 -config /home/lockly/miniforge3/ssl/openssl.cnf -extensions v3_req
openssl x509 -req -days 365 -in client.csr -out client.pem -CA ca.crt -CAkey ca.key -CAcreateserial -extfile /home/lockly/miniforge3/ssl/openssl.cnf -extensions v3_req