4.5 KiB
4.5 KiB
#/bin/bash
echo "获取公网ip中..."
ip=$(curl -s ipinfo.io/ip)
echo "获取成功,公网地址为 $ip"
echo "是否使用域名,是请在10秒内输入该服务器绑定域名,否则将使用公网ip"
read -t 10 domain
if [ -z "$domain" ]; then
echo "未输入域名,将使用公网IP $ip"
else
echo "使用域名 $domain"
ip="$domain"
fi
echo "倒计时10秒,请在此期间输入端口号(不输入将使用默认端口50000)..."
read -t 10 port
if [ -z "$port" ]; then
port=50000
fi
echo "使用的端口号是: $port"
#更新软件源,安装docker、二维码输出工具
apt update && apt install docker.io qrencode
#安装docker-compose
curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version
docker-compose down
#创建代理文件夹并生成配置文件
mkdir /root/xray && cd /root/xray
cat > docker-compose.yml <<EOF
version: '3.9'
services:
v2ray:
container_name: xray
image: teddysun/xray
ports:
- $port:$port
volumes:
- ./config:/etc/xray/
restart: always
EOF
#生成所需变量
output=$(docker run --rm teddysun/xray /bin/sh -c "xray uuid && xray x25519")
uuid=$(echo "$output" | awk 'NR==1 {print $1}')
privateKey=$(echo "$output" | awk 'NR==2 {print $3}')
publicKey=$(echo "$output" | awk 'NR==3 {print $3}')
shortIDs=$(openssl rand -hex 8)
#生成配置文件
cat > /root/xray/config/config.json <<EOF
{
"log": {
"loglevel": "warning"
},
"routing": {
"domainStrategy": "IPIfNonMatch",
"rules": [
{
"type": "field",
"ip": [
"geoip:cn"
],
"outboundTag": "block"
}
]
},
"inbounds": [
{
"listen": "0.0.0.0",
"port": $port,
"protocol": "vless",
"settings": {
"clients": [
{
"id": "$uuid",
"flow": "xtls-rprx-vision"
}
],
"decryption": "none"
},
"streamSettings": {
"network": "tcp",
"security": "reality",
"realitySettings": {
"show": true, // 若为 true,输出调试信息
"dest": "www.lovelive-anime.jp:443", // 目标网站最低标准:国外网站,支持 TLSv1.3、X25519 与 H2,域名非跳转用(主域名可能被用于跳转到 www)
"xver": 0,
"serverNames": [
"www.lovelive-anime.jp"
],
"privateKey": "$privateKey",
"shortIds": [
"$shortIDs"
]
}
},
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls"
]
}
}
],
"outbounds": [
{
"protocol": "freedom",
"tag": "direct"
},
{
"protocol": "blackhole",
"tag": "block"
}
],
"policy": {
"levels": {
"0": {
"handshake": 2,
"connIdle": 120
}
}
}
}
EOF
#启动容器
docker-compose up -d
#输出导入链接
echo "vless://$uuid@$ip:$port?headerType=none&type=tcp&encryption=none&fp=chrome&pbk=$publicKey&sid=$shortIDs&spx=%2F&flow=xtls-rprx-vision&security=reality&sni=www.lovelive-anime.jp#los-2"
#输出二维码
qrcode="vless://$uuid@$ip:$port?headerType=none&type=tcp&encryption=none&fp=chrome&pbk=$publicKey&sid=$shortIDs&spx=%2F&flow=xtls-rprx-vision&security=reality&sni=www.lovelive-anime.jp#los-2"
qrencode -t ANSIUTF8 "$qrcode"
#输出维护指令
echo "维护时请进入docker-compose.yml所在目录执行以下命令"
echo "重启命令: docker-compose restart"
echo "停止命令: docker-compose down"
echo "启动命令: docker-compose up -d"
echo "查看日志命令: docker-compose logs -f"
echo "查看容器命令: docker-compose ps"
服务器url
vless://4d9c1538-2f99-4781-b1fa-8b1cfb67f441@150.109.145.182:50000?headerType=none&type=tcp&encryption=none&fp=chrome&pbk=68Qo5gmZARkxbVw1ArKnCSMw_t8PBGt76e8nnLUPikI&sid=53f9d10d625ba230&spx=%2F&flow=xtls-rprx-vision&security=reality&sni=www.lovelive-anime.jp#los-2