149 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			149 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								该脚本仅用于Ubantu或者Debian
							 | 
						|||
| 
								 | 
							
								```bash
							 | 
						|||
| 
								 | 
							
								#/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
							 | 
						|||
| 
								 | 
							
								```bash
							 | 
						|||
| 
								 | 
							
								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
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								vless://bm9uZToyMzRhZmNhYy0xNjIwLTRjOWQtYWU1ZC01Mjg4NzkzZDQ3NTlAMTUwLjEwOS4xNDUuMTgyOjUwMDAw?remarks=los-2&obfs=none&tls=1&peer=www.lovelive-anime.jp&xtls=2&pbk=cjf52COyZtTPsCCicvnGWv6BRt9Izd19j7hSL93bwhs&sid=b43a312c479aaae2
							 |