2.3、初始化配置
1、公共配置文件,客户端服务端都有的
服务端运行流程
common.json
{
//运行在哪个模式下,多个模式可同时存在
"Modes": [ "client","server"],
//是否已初始化安装
"Install": true,
//日志级别 0 debug 1 info 2 warn 3 error 4 fatal
"LoggerType": 0,
//这个不管
"LoggerSize": 100,
//加密证书,包括信标服务器,中继,打洞,都用这个证书
"SSL": {
"File": "./snltty.pfx",
"Password": "oeq9tw1o"
},
//程序更新地址
"UpdateUrl": "https://static.qbcode.cn/downloads/linker",
//检查更新间隔,单位秒
"UpdateIntervalSeconds": 60,
//是否检查更新
"CheckUpdate": true
}
2、服务端手动修改配置文件
服务端运行流程
- 运行程序,在configs目录下会生成 common.json server.json
- 关闭程序
- 修改common.json,Modes 只保留 server
- 修改server.json,可以去在线生成一些GUID作为各个功能的密钥
- 再次运行程序
server.json
{
//中继
"Relay": {
//中继密钥,客户端密钥不准确时无法使用本中继
"SecretKey": "",
"Cdkey": {
//cdkey 加密密钥
"SecretKey": "snltty"
},
},
//信标服务器端口
"ServicePort": 1802,
//内网穿透配置
"SForward": {
//内网穿透密钥
"SecretKey": "",
"BufferSize": 3,
//web端口,用于按域名穿透
"WebPort": 0,
//隧道端口范围,用于按端口穿透
"TunnelPortRange": [
10000,
60000
]
},
//登入信标密钥,默认为空,即为所有客户端均可登入本信标服务器
"SignIn": {
"SecretKey": "",
"CleanDays": 7 //当一组内的所有设备都超过7天未上线则清理
},
//更新密钥,客户端密钥不正确时,只能更新自己本身
"Updater": {
"SecretKey": ""
}
}
action.json
{
"SignInActionUrl": "", //登入信标的验证接口
"RelayActionUrl": "", //中继验证接口
"SForwardActionUrl": ""//服务器穿透的验证接口
}
3、客户端使用web初始化
说明
- 运行程序后,浏览器打开http://127.0.0.1:1804
- 如果你自己部署了服务端,你可以勾选我有服务器,填写你部署的服务端的各种信息
对应配置文件 client.json
{
"Name": "A", //客户端名
"Access": 4503599627370495, //权限值,可以看`src/linker.messenger.api/Config.cs`里的`AccessValue`枚举
"CApi": {
"ApiPort": 1803, //api接口
"ApiPassword": "snltty", //api密码
"WebPort": 1804, //web端口
"WebRoot": "./web/" //web根目录
},
"Servers": [
{
"Name": "Linker", //信标服务器名称
"Host": "127.0.0.1:1802", //信标服务器地址
"SecretKey": null, //信标密钥
"UserId": "8225e9d4-0ac7-4d76-9946-c4fe04ad4696" //用户标识,多个客户端可相同
}
],
"Groups": [
{
"Name": "snltty", //分组名
"Id": "snltty", //分组id
"Password": "snltty" //分组密码
}
],
"Relay": {
"Servers": [
{
"SecretKey": "snltty", //中继密钥
"Disabled": false, //是否禁用
"SSL": true //启用ssl
}
]
},
"SForward": {
"SecretKey": "snltty" //服务器穿透密钥
},
"Updater": {
"SecretKey": "snltty" //更新密钥
},
"Action": {
"Args": {} //自定义验证的参数
}
}
4、使用参数初始化
v1.7.0+
- 如果你使用第三方程序启动linker,
仅配置文件不存在时初始化,后续不会覆盖
,可以传入参数进行初始化,client.json
、server.json
、action.json
、common.json
, - 像这样,不填写的字段将以默认值生成,将json转为base64
linker.exe --config-client base641 --config-server base642 --config-action base643 --config-common base644