55 lines
2.0 KiB
Bash
55 lines
2.0 KiB
Bash
#!/bin/bash
|
|
|
|
|
|
print_share_link() {
|
|
local SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # 脚本文件夹绝对路径
|
|
local CONFIG_DIR=$(readlink -f "$SCRIPT_DIR/../config")
|
|
|
|
# 检查jq是否安装
|
|
check_jq
|
|
|
|
CONFIG_FILE="$CONFIG_DIR/config.json"
|
|
|
|
# 检查配置是否正确
|
|
local UUID=$(jq -r '.inbounds[0].users[0].uuid' "$CONFIG_FILE")
|
|
if [ "$UUID" = "你的UUID" ] || [ -z "$UUID" ] || [[ "$UUID" == null ]]; then
|
|
red "error: 配置有误, 请重新生成配置"
|
|
exit 1
|
|
fi
|
|
|
|
# 读取配置文件内容
|
|
local CONFIG=$(cat "$CONFIG_FILE")
|
|
|
|
# 提取所需信息
|
|
UUID=$(echo "$CONFIG" | jq -r '.inbounds[0].users[0].uuid')
|
|
local SNI=$(echo "$CONFIG" | jq -r '.inbounds[0].tls.server_name')
|
|
local IPV4=$(curl -4 -sSL --connect-timeout 3 --retry 2 ip.sb || echo "null")
|
|
local PORT=$(echo "$CONFIG" | jq -r '.inbounds[0].listen_port')
|
|
local PASSWORD=$(echo "$CONFIG" | jq -r '.inbounds[0].users[0].password')
|
|
local CONGESTION_CONTROL=$(echo "$CONFIG" | jq -r '.inbounds[0].congestion_control')
|
|
local ALLOW_INSECURE=1 # 是否跳过证书验证,1表示跳过,0表示不跳过
|
|
local INSECURE=1 # 是否允许不安全连接,1表示允许,0表示不允许
|
|
|
|
# 检查是否使用ACME申请证书
|
|
if jq -e '.inbounds[0].tls.acme' "$CONFIG_DIR/config.json" > /dev/null 2>&1; then
|
|
ALLOW_INSECURE=0 # 不跳过证书验证
|
|
INSECURE=0
|
|
fi
|
|
|
|
# 构建分享链接
|
|
local SHARE_LINK="tuic://$UUID:$PASSWORD@$IPV4:$PORT?sni=$SNI&alpn=h3&insecure=$INSECURE&allowInsecure=$ALLOW_INSECURE&congestion_control=$CONGESTION_CONTROL#Tuic节点"
|
|
|
|
# 输出分享链接
|
|
echo -e "\033[32m"
|
|
echo "IPV4: $IPV4"
|
|
echo "port: $PORT"
|
|
echo "uuid: $UUID"
|
|
echo "password: $PASSWORD"
|
|
echo "sni: $SNI"
|
|
echo "congestion_control(拥塞控制算法): $CONGESTION_CONTROL"
|
|
echo ""
|
|
echo "分享链接: $SHARE_LINK"
|
|
echo -e "\033[0m"
|
|
}
|
|
|