88 lines
2.0 KiB
Bash
88 lines
2.0 KiB
Bash
#!/bin/bash
|
||
|
||
green='\e[32m'
|
||
none='\e[0m'
|
||
config_file="/usr/local/etc/xray/config.json"
|
||
|
||
# 检查并安装 jq
|
||
if ! type jq &>/dev/null; then
|
||
echo -e "${green}正在安装 jq...${none}"
|
||
apt-get update && apt-get install -y jq
|
||
fi
|
||
|
||
# 检查并安装 uuid-runtime
|
||
if ! type uuidgen &>/dev/null; then
|
||
echo -e "${green}正在安装 uuid-runtime...${none}"
|
||
apt-get install -y uuid-runtime
|
||
fi
|
||
|
||
# 检查并安装 xray
|
||
if ! type xray &>/dev/null; then
|
||
echo -e "${green}正在安装 xray...${none}"
|
||
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install
|
||
fi
|
||
|
||
# 生成一个随机端口号(10000以上)
|
||
PORT=$(shuf -i 10000-65535 -n 1)
|
||
|
||
# 生成一个随机 UUID
|
||
UUID=$(uuidgen)
|
||
|
||
# 生成一个 11 位的随机英文字符串作为路径
|
||
RANDOM_PATH=$(cat /dev/urandom | tr -dc 'a-zA-Z' | head -c 11)
|
||
|
||
# 创建配置文件
|
||
create_config() {
|
||
cat > "$config_file" << EOF
|
||
{
|
||
"inbounds": [
|
||
{
|
||
"port": $PORT,
|
||
"protocol": "vmess",
|
||
"settings": {
|
||
"clients": [
|
||
{
|
||
"id": "$UUID"
|
||
}
|
||
]
|
||
},
|
||
"streamSettings": {
|
||
"network": "ws",
|
||
"wsSettings": {
|
||
"path": "/$RANDOM_PATH"
|
||
}
|
||
},
|
||
"listen": "0.0.0.0"
|
||
}
|
||
],
|
||
"outbounds": [
|
||
{
|
||
"protocol": "freedom",
|
||
"settings": {}
|
||
}
|
||
],
|
||
"routing": {
|
||
"rules": [
|
||
{
|
||
"type": "field",
|
||
"inboundTag": ["inbound0"],
|
||
"outboundTag": "direct"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
EOF
|
||
}
|
||
|
||
# 显示配置信息
|
||
show_inbound_config() {
|
||
local ip=$(curl -s http://ipinfo.io/ip)
|
||
echo -e "${green}Vmess 节点配置信息:${none}"
|
||
echo "vmess://$(echo -n "{\"v\":\"2\",\"ps\":\"TK节点定制\",\"add\":\"$ip\",\"port\":$PORT,\"id\":\"$UUID\",\"aid\":\"0\",\"net\":\"ws\",\"path\":\"/$RANDOM_PATH\",\"type\":\"none\",\"host\":\"\",\"tls\":\"\"}" | base64 -w 0)"
|
||
}
|
||
|
||
create_config
|
||
show_inbound_config
|
||
systemctl restart xray
|
||
echo -e "${green}Xray 服务已经重新启动。${none}"
|