├── README.md ├── V2rayPro.zip ├── V2rayWebsite.tar.gz ├── backup └── h0526.sh ├── bbr ├── get-rinetd.sh ├── rinetd_bbr ├── rinetd_bbr_powered └── rinetd_pcc ├── h.sh └── timesync1.6.rar /README.md: -------------------------------------------------------------------------------- 1 | 2 | ## 严重声明: 3 | 4 | 此项目仅限于技术交流和探讨,在您测试完毕后必须在1秒钟内彻底删除项目副本。 5 | 6 | 此项目为bash一键脚本,其中涉及到的任何软件版权和责任归原作者所有。 7 | 8 | ## 友情提示: 9 | 10 | 在中国境内使用、传播、售卖、免费分享等任何翻墙服务,都是违法的。 11 | 12 | 如果你在中国境内使用、测试此项目脚本,或者使用此脚本搭建服务器发生以上违法行为,都有违作者意愿! 13 | 14 | 你必须立刻停止此行为!并删除脚本! 15 | 16 | 17 | # V2RAY 基于 CADDY 的 VMESS+H2+TLS+Website(Use Host) 18 | 19 | ### HTTP Header 分流,自带 Website 伪装站点 http 强制跳转 https,支持ssl非443端口,自带Rinetd BBR加速 支持OpenVZ,自动生成客户端config.json配置文件 web在线下载,重装自动清除残余的Http服务,每天自动升级最新的V2ray内核,支持 cdn 嵌套,自动续签ssl证书,自动生成Windows客户端和便捷启动脚本 一键添加开机自启动服务 一键开启系统ie代理。 20 | 21 | 使用:1.解析好域名; 2.运行一键安装脚本; 22 | ``` 23 | wget -N --no-check-certificate git.io/h.sh && chmod +x h.sh && bash h.sh 24 | ``` 25 | [新手请使用 Debian8 纯净系统安装] 26 | 27 | 备用1:一键更换新的 UUID,同时升级 Windows 客户端 (new) 28 | ``` 29 | bash h.sh -n 30 | ``` 31 | 32 | 备用2:一键删除服务器中储存的客户端 config.json 配置文件,防止 Website 被抓取 (rm) 33 | ``` 34 | bash h.sh -r 35 | ``` 36 | 37 | 共享你的 V2ray 账号 (share) 38 | ``` 39 | bash h.sh -s 40 | 41 | 开启共享模式后,每周一自动更换 UUID 并推送至 Website 伪装站点首页。 42 | 为防止被恶意抓取,该模式下不提供客户端 config.json 文件下载。 43 | ``` 44 | 45 | 赞助 V2ray 项目(xmr) 46 | ``` 47 | bash h.sh -x 48 | 49 | 注意:开启赞助功能后,会在 website 首页植入 xmr 挖矿脚本。 50 |      任何电脑只要浏览器访问 website 点击允许,即可开始挖矿赞助 v2ray 项目,关闭网页停止挖矿。 51 | 声明:脚本不会在你的 vps 内植入任何挖矿脚本,不会利用你的 vps 进行挖矿,同时也不建议你自己使用 vps 挖矿(得不偿失)。 52 | ``` 53 | 54 | 注册免费域名 55 | ``` 56 | http://www.freenom.com 57 | 需更换ns服务器,默认ns服务器在国内很不稳定。 58 | ``` 59 | 60 | HTTP2 CDN 嵌套 61 | ``` 62 | 又拍云、七牛、阿里都不错,腾讯的 h2 还在内测,百度不清楚。 63 | 速度提升非常大,也非常稳定,高峰期毫无压力,在重点 IP 段也无所畏惧。 64 | (cloudflare 不支持 http2) 65 | ``` 66 | -------------------------------------------------------------------------------- /V2rayPro.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylanbai8/V2Ray_h2-tls_Website_onekey/ff19643df179d6a7290da07648a997c61ca72b98/V2rayPro.zip -------------------------------------------------------------------------------- /V2rayWebsite.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylanbai8/V2Ray_h2-tls_Website_onekey/ff19643df179d6a7290da07648a997c61ca72b98/V2rayWebsite.tar.gz -------------------------------------------------------------------------------- /backup/h0526.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #==================================================== 4 | # System Request:Debian 7+/Ubuntu 14.04+/Centos 6+ 5 | # Author: wulabing & dylanbai8 6 | # Dscription: V2RAY 基于 CADDY 的 VMESS+H2+TLS+Website(Use Host)+Rinetd BBR 7 | # Blog: https://www.wulabing.com https://oo0.bid 8 | # Official document: www.v2ray.com 9 | #==================================================== 10 | 11 | #定义文字颜色 12 | Green="\033[32m" 13 | Red="\033[31m" 14 | GreenBG="\033[42;37m" 15 | RedBG="\033[41;37m" 16 | Font="\033[0m" 17 | 18 | #定义提示信息 19 | Info="${Green}[信息]${Font}" 20 | OK="${Green}[OK]${Font}" 21 | Error="${Red}[错误]${Font}" 22 | 23 | #定义配置文件路径 24 | v2ray_conf_dir="/etc/v2ray" 25 | caddy_conf_dir="/etc/caddy" 26 | v2ray_conf="${v2ray_conf_dir}/config.json" 27 | v2ray_user="${v2ray_conf_dir}/user.json" 28 | caddy_conf="${caddy_conf_dir}/Caddyfile" 29 | 30 | source /etc/os-release 31 | 32 | #脚本欢迎语 33 | v2ray_hello(){ 34 | echo "" 35 | echo -e "${Info} ${GreenBG} 你正在执行 V2RAY 基于 CADDY 的 VMESS+H2+TLS+Website(Use Host)+Rinetd BBR 一键安装脚本 ${Font}" 36 | echo "" 37 | random_number 38 | } 39 | 40 | #生成 转发端口 UUID 随机路径 伪装域名 41 | random_number(){ 42 | let PORT=$RANDOM+10000 43 | UUID=$(cat /proc/sys/kernel/random/uuid) 44 | v2raypath=`cat /dev/urandom | head -n 10 | md5sum | head -c 8` 45 | camouflage=`cat /dev/urandom | head -n 10 | md5sum | head -c 8` 46 | } 47 | 48 | #检测root权限 49 | is_root(){ 50 | if [ `id -u` == 0 ] 51 | then echo -e "${OK} ${GreenBG} 当前用户是root用户,开始安装流程 ${Font}" 52 | sleep 3 53 | else 54 | echo -e "${Error} ${RedBG} 当前用户不是root用户,请切换到root用户后重新执行脚本 ${Font}" 55 | exit 1 56 | fi 57 | } 58 | 59 | #检测系统版本 60 | check_system(){ 61 | VERSION=`echo ${VERSION} | awk -F "[()]" '{print $2}'` 62 | if [[ "${ID}" == "centos" && ${VERSION_ID} -ge 7 ]];then 63 | echo -e "${OK} ${GreenBG} 当前系统为 Centos ${VERSION_ID} ${VERSION} ${Font}" 64 | INS="yum" 65 | echo -e "${OK} ${GreenBG} SElinux 设置中,请耐心等待,不要进行其他操作${Font}" 66 | setsebool -P httpd_can_network_connect 1 >/dev/null 2>&1 67 | echo -e "${OK} ${GreenBG} SElinux 设置完成 ${Font}" 68 | elif [[ "${ID}" == "debian" && ${VERSION_ID} -ge 8 ]];then 69 | echo -e "${OK} ${GreenBG} 当前系统为 Debian ${VERSION_ID} ${VERSION} ${Font}" 70 | INS="apt" 71 | elif [[ "${ID}" == "ubuntu" && `echo "${VERSION_ID}" | cut -d '.' -f1` -ge 16 ]];then 72 | echo -e "${OK} ${GreenBG} 当前系统为 Ubuntu ${VERSION_ID} ${VERSION_CODENAME} ${Font}" 73 | INS="apt" 74 | else 75 | echo -e "${Error} ${RedBG} 当前系统为 ${ID} ${VERSION_ID} 不在支持的系统列表内,安装中断 ${Font}" 76 | exit 1 77 | fi 78 | } 79 | 80 | #检测安装完成或失败 81 | judge(){ 82 | if [[ $? -eq 0 ]];then 83 | echo -e "${OK} ${GreenBG} $1 完成 ${Font}" 84 | sleep 1 85 | else 86 | echo -e "${Error} ${RedBG} $1 失败${Font}" 87 | exit 1 88 | fi 89 | } 90 | 91 | #用户设定 域名 端口 alterID 92 | port_alterid_set(){ 93 | echo -e "${Info} ${GreenBG} 【配置 1/3 】请输入你的域名信息(如:www.bing.com),请确保域名A记录已正确解析至服务器IP ${Font}" 94 | stty erase '^H' && read -p "请输入:" domain 95 | echo -e "${Info} ${GreenBG} 【配置 2/3 】请输入连接端口(默认:443 无特殊需求请直接按回车键) ${Font}" 96 | stty erase '^H' && read -p "请输入:" port 97 | [[ -z ${port} ]] && port="443" 98 | echo -e "${Info} ${GreenBG} 【配置 3/3 】请输入alterID(默认:64 无特殊需求请直接按回车键) ${Font}" 99 | stty erase '^H' && read -p "请输入:" alterID 100 | [[ -z ${alterID} ]] && alterID="64" 101 | echo -e "----------------------------------------------------------" 102 | echo -e "${Info} ${GreenBG} 你输入的配置信息为 域名:${domain} 端口:${port} alterID:${alterID} ${Font}" 103 | echo -e "----------------------------------------------------------" 104 | } 105 | 106 | #强制清除可能残余的http服务 v2ray服务 关闭防火墙 更新源 107 | apache_uninstall(){ 108 | echo -e "${OK} ${GreenBG} 正在强制清理可能残余的http服务 ${Font}" 109 | if [[ "${ID}" == "centos" ]];then 110 | 111 | systemctl disable httpd >/dev/null 2>&1 112 | systemctl stop httpd >/dev/null 2>&1 113 | yum erase httpd httpd-tools apr apr-util -y >/dev/null 2>&1 114 | 115 | systemctl disable firewalld >/dev/null 2>&1 116 | systemctl stop firewalld >/dev/null 2>&1 117 | 118 | echo -e "${OK} ${GreenBG} 正在更新源 请稍后 …… ${Font}" 119 | 120 | yum -y update 121 | 122 | else 123 | 124 | systemctl disable apache2 >/dev/null 2>&1 125 | systemctl stop apache2 >/dev/null 2>&1 126 | apt purge apache2 -y >/dev/null 2>&1 127 | 128 | echo -e "${OK} ${GreenBG} 正在更新源 请稍后 …… ${Font}" 129 | 130 | apt -y update 131 | 132 | fi 133 | 134 | systemctl disable caddy >/dev/null 2>&1 135 | systemctl stop caddy >/dev/null 2>&1 136 | 137 | systemctl disable v2ray >/dev/null 2>&1 138 | systemctl stop v2ray >/dev/null 2>&1 139 | killall -9 v2ray >/dev/null 2>&1 140 | 141 | systemctl disable rinetd-bbr >/dev/null 2>&1 142 | systemctl stop rinetd-bbr >/dev/null 2>&1 143 | killall -9 rinetd-bbr >/dev/null 2>&1 144 | 145 | rm -rf /www >/dev/null 2>&1 146 | rm -rf /usr/local/bin/caddy /etc/caddy /etc/systemd/system/caddy.service >/dev/null 2>&1 147 | rm -rf /etc/v2ray/config.json /etc/v2ray/user.json /etc/systemd/system/v2ray.service >/dev/null 2>&1 148 | rm -rf /usr/bin/rinetd-bbr /etc/rinetd-bbr.conf /etc/systemd/system/rinetd-bbr.service >/dev/null 2>&1 149 | } 150 | 151 | #安装各种依赖工具 152 | dependency_install(){ 153 | for CMD in iptables grep cut xargs systemctl ip awk 154 | do 155 | if ! type -p ${CMD}; then 156 | echo -e "${Error} ${RedBG} 缺少必要依赖 脚本终止安装 ${Font}" 157 | exit 1 158 | fi 159 | done 160 | ${INS} install curl lsof unzip zip -y 161 | 162 | if [[ "${ID}" == "centos" ]];then 163 | ${INS} -y install crontabs 164 | else 165 | ${INS} -y install cron 166 | fi 167 | judge "安装 crontab" 168 | 169 | ${INS} install bc -y 170 | judge "安装 bc" 171 | } 172 | 173 | #检测域名解析是否正确 174 | domain_check(){ 175 | domain_ip=`ping ${domain} -c 1 | sed '1{s/[^(]*(//;s/).*//;q}'` 176 | echo -e "${OK} ${GreenBG} 正在获取 公网ip 信息,请耐心等待 ${Font}" 177 | local_ip=`curl -4 ip.sb` 178 | echo -e "${OK} ${GreenBG} 域名dns解析IP:${domain_ip} ${Font}" 179 | echo -e "${OK} ${GreenBG} 本机IP: ${local_ip} ${Font}" 180 | sleep 2 181 | if [[ $(echo ${local_ip}|tr '.' '+'|bc) -eq $(echo ${domain_ip}|tr '.' '+'|bc) ]];then 182 | echo -e "${OK} ${GreenBG} 域名dns解析IP 与 本机IP 匹配 域名解析正确 ${Font}" 183 | sleep 2 184 | else 185 | echo -e "${Error} ${RedBG} 域名dns解析IP 与 本机IP 不匹配 是否继续安装?(y/n)${Font}" && read install 186 | case $install in 187 | [yY][eE][sS]|[yY]) 188 | echo -e "${GreenBG} 继续安装 ${Font}" 189 | sleep 2 190 | ;; 191 | *) 192 | echo -e "${RedBG} 安装终止 ${Font}" 193 | exit 2 194 | ;; 195 | esac 196 | fi 197 | } 198 | 199 | #检测端口是否占用 200 | port_exist_check(){ 201 | if [[ 0 -eq `lsof -i:"$1" | wc -l` ]];then 202 | echo -e "${OK} ${GreenBG} $1 端口未被占用 ${Font}" 203 | sleep 1 204 | else 205 | echo -e "${Error} ${RedBG} 检测到 $1 端口被占用,以下为 $1 端口占用信息 ${Font}" 206 | lsof -i:"$1" 207 | echo -e "${OK} ${GreenBG} 5s 后将尝试自动 kill 占用进程 ${Font}" 208 | sleep 5 209 | lsof -i:"$1" | awk '{print $2}'| grep -v "PID" | xargs kill -9 210 | echo -e "${OK} ${GreenBG} kill 完成 ${Font}" 211 | sleep 1 212 | fi 213 | } 214 | 215 | #同步服务器时间 216 | time_modify(){ 217 | 218 | ${INS} install ntpdate -y 219 | judge "安装 NTPdate 时间同步服务 " 220 | 221 | systemctl stop ntp &>/dev/null 222 | 223 | echo -e "${Info} ${GreenBG} 正在进行时间同步 ${Font}" 224 | ntpdate time.nist.gov 225 | 226 | if [[ $? -eq 0 ]];then 227 | echo -e "${OK} ${GreenBG} 时间同步成功 ${Font}" 228 | echo -e "${OK} ${GreenBG} 当前系统时间 `date -R`(时区时间换算后误差应为三分钟以内)${Font}" 229 | sleep 1 230 | else 231 | echo -e "${Error} ${RedBG} 时间同步失败,请检查ntpdate服务是否正常工作 ${Font}" 232 | fi 233 | } 234 | 235 | #安装v2ray主程序 236 | v2ray_install(){ 237 | if [[ -d /root/v2ray ]];then 238 | rm -rf /root/v2ray 239 | fi 240 | 241 | mkdir -p /root/v2ray && cd /root/v2ray 242 | wget -N --no-check-certificate https://install.direct/go.sh 243 | 244 | if [[ -f go.sh ]];then 245 | bash go.sh --force 246 | judge "安装 V2ray" 247 | else 248 | echo -e "${Error} ${RedBG} V2ray 安装文件下载失败,请检查下载地址是否可用 ${Font}" 249 | exit 4 250 | fi 251 | } 252 | 253 | #设置定时升级任务 254 | modify_crontab(){ 255 | echo -e "${OK} ${GreenBG} 配置每天凌晨自动升级V2ray内核任务 ${Font}" 256 | sleep 2 257 | #crontab -l >> crontab.txt 258 | echo "20 12 * * * bash /root/v2ray/go.sh | tee -a /root/v2ray/update.log" >> crontab.txt 259 | echo "30 12 * * * /sbin/reboot" >> crontab.txt 260 | crontab crontab.txt 261 | sleep 2 262 | if [[ "${ID}" == "centos" ]];then 263 | systemctl restart crond 264 | else 265 | systemctl restart cron 266 | fi 267 | rm -f crontab.txt 268 | } 269 | 270 | #安装caddy主程序 271 | caddy_install(){ 272 | curl https://getcaddy.com | bash -s personal 273 | 274 | touch /etc/systemd/system/caddy.service 275 | cat < /etc/systemd/system/caddy.service 276 | [Unit] 277 | Description=Caddy server 278 | [Service] 279 | ExecStart=/usr/local/bin/caddy -conf=/etc/caddy/Caddyfile -agree=true -ca=https://acme-v02.api.letsencrypt.org/directory 280 | Restart=always 281 | User=root 282 | [Install] 283 | WantedBy=multi-user.target 284 | EOF 285 | 286 | judge "caddy 安装" 287 | } 288 | 289 | #安装web伪装站点 290 | web_install(){ 291 | echo -e "${OK} ${GreenBG} 安装Website伪装站点 ${Font}" 292 | mkdir /www 293 | wget https://github.com/dylanbai8/V2Ray_h2-tls_Website_onekey/raw/master/V2rayWebsite.tar.gz 294 | tar -zxvf V2rayWebsite.tar.gz -C /www 295 | rm -f V2rayWebsite.tar.gz 296 | } 297 | 298 | #生成v2ray配置文件 299 | v2ray_conf_add(){ 300 | touch ${v2ray_conf_dir}/config.json 301 | cat < ${v2ray_conf_dir}/config.json 302 | { 303 | "inbound": { 304 | "protocol": "vmess", 305 | "port": SETPORTV, 306 | "streamSettings": { 307 | "network": "h2", 308 | "httpSettings": { 309 | "host": [ 310 | "SETSERVER" 311 | ], 312 | "path": "/SETPATH" 313 | }, 314 | "tlsSettings": { 315 | "certificates": [ 316 | { 317 | "keyFile": "/root/.caddy/acme/acme-v02.api.letsencrypt.org/sites/SETSERVER/SETSERVER.key", 318 | "certificateFile": "/root/.caddy/acme/acme-v02.api.letsencrypt.org/sites/SETSERVER/SETSERVER.crt" 319 | } 320 | ] 321 | }, 322 | "security": "tls" 323 | }, 324 | "settings": { 325 | "udp": true, 326 | "clients": [ 327 | { 328 | "alterId": SETALTERID, 329 | "id": "SETUUID" 330 | } 331 | ] 332 | } 333 | }, 334 | "outbound": { 335 | "protocol": "freedom", 336 | "settings": {} 337 | } 338 | } 339 | EOF 340 | 341 | modify_port_UUID 342 | judge "V2ray 配置" 343 | } 344 | 345 | #生成caddy配置文件 346 | caddy_conf_add(){ 347 | mkdir ${caddy_conf_dir} 348 | touch ${caddy_conf_dir}/Caddyfile 349 | cat < ${caddy_conf_dir}/Caddyfile 350 | https://SETSERVER:SETPORT443 { 351 | tls admin@SETSERVER 352 | root /www 353 | 354 | proxy /SETPATH https://127.0.0.1:SETPORTV { 355 | header_upstream Host "SETSERVER" 356 | header_upstream X-Forwarded-Proto "https" 357 | insecure_skip_verify 358 | } 359 | } 360 | EOF 361 | 362 | modify_caddy 363 | judge "caddy 配置" 364 | 365 | } 366 | 367 | #生成客户端json文件 368 | user_config_add(){ 369 | touch ${v2ray_conf_dir}/user.json 370 | cat < ${v2ray_conf_dir}/user.json 371 | { 372 | "log": { 373 | "loglevel": "info", 374 | "access": "", 375 | "error": "" 376 | }, 377 | "dns": { 378 | "servers": [ 379 | "8.8.8.8", 380 | "1.1.1.1", 381 | "119.29.29.29", 382 | "114.114.114.114" 383 | ] 384 | }, 385 | "inbound": { 386 | "port": 1087, 387 | "listen": "127.0.0.1", 388 | "protocol": "http", 389 | "settings": { 390 | "timeout": 360 391 | } 392 | }, 393 | "inboundDetour": [ 394 | { 395 | "port": 1080, 396 | "listen": "127.0.0.1", 397 | "protocol": "socks", 398 | "settings": { 399 | "auth": "noauth", 400 | "timeout": 360, 401 | "udp": true 402 | } 403 | } 404 | ], 405 | "outbound": { 406 | "tag": "agentout", 407 | "protocol": "vmess", 408 | "streamSettings": { 409 | "network": "h2", 410 | "httpSettings": { 411 | "host": [ 412 | "SETSERVER" 413 | ], 414 | "path": "/SETPATH" 415 | }, 416 | "tlsSettings": {}, 417 | "security": "tls" 418 | }, 419 | "settings": { 420 | "vnext": [ 421 | { 422 | "users": [ 423 | { 424 | "alterId": SETALTERID, 425 | "id": "SETUUID" 426 | } 427 | ], 428 | "port": SETPORT443, 429 | "address": "SETSERVER" 430 | } 431 | ] 432 | } 433 | }, 434 | "outboundDetour": [ 435 | { 436 | "tag": "direct", 437 | "protocol": "freedom", 438 | "settings": { 439 | "response": null 440 | } 441 | }, 442 | { 443 | "tag": "blockout", 444 | "protocol": "blackhole", 445 | "settings": { 446 | "response": { 447 | "type": "http" 448 | } 449 | } 450 | } 451 | ], 452 | "routing": { 453 | "strategy": "rules", 454 | "settings": { 455 | "domainStrategy": "IPIfNonMatch", 456 | "rules": [ 457 | { 458 | "type": "field", 459 | "outboundTag": "direct", 460 | "ip": [ 461 | "geoip:private" 462 | ] 463 | }, 464 | { 465 | "type": "field", 466 | "outboundTag": "direct", 467 | "domain": [ 468 | "geosite:cn" 469 | ] 470 | }, 471 | { 472 | "type": "field", 473 | "outboundTag": "direct", 474 | "ip": [ 475 | "geoip:cn" 476 | ] 477 | } 478 | ] 479 | } 480 | } 481 | } 482 | EOF 483 | 484 | modify_userjson 485 | 486 | rm -rf /www/s 487 | mkdir /www/s 488 | mkdir /www/s/${camouflage} 489 | cp -rp ${v2ray_user} /www/s/${camouflage}/config.json 490 | 491 | judge "客户端json配置" 492 | } 493 | 494 | #修正v2ray配置文件 495 | modify_port_UUID(){ 496 | sed -i "s/SETPORTV/${PORT}/g" "${v2ray_conf}" 497 | sed -i "s/SETUUID/${UUID}/g" "${v2ray_conf}" 498 | sed -i "s/SETALTERID/${alterID}/g" "${v2ray_conf}" 499 | sed -i "s/SETPATH/${v2raypath}/g" "${v2ray_conf}" 500 | sed -i "s/SETSERVER/${domain}/g" "${v2ray_conf}" 501 | } 502 | 503 | #修正caddy配置配置文件 504 | modify_caddy(){ 505 | sed -i "s/SETPORT443/${port}/g" "${caddy_conf}" 506 | sed -i "s/SETPORTV/${PORT}/g" "${caddy_conf}" 507 | sed -i "s/SETPATH/${v2raypath}/g" "${caddy_conf}" 508 | sed -i "s/SETSERVER/${domain}/g" "${caddy_conf}" 509 | } 510 | 511 | #修正客户端json配置文件 512 | modify_userjson(){ 513 | sed -i "s/SETSERVER/${domain}/g" "${v2ray_user}" 514 | sed -i "s/SETPORT443/${port}/g" "${v2ray_user}" 515 | sed -i "s/SETUUID/${UUID}/g" "${v2ray_user}" 516 | sed -i "s/SETALTERID/${alterID}/g" "${v2ray_user}" 517 | sed -i "s/SETPATH/${v2raypath}/g" "${v2ray_user}" 518 | } 519 | 520 | #安装bbr端口加速 521 | rinetdbbr_install(){ 522 | export RINET_URL="https://github.com/dylanbai8/V2Ray_h2-tls_Website_onekey/raw/master/bbr/rinetd_bbr_powered" 523 | IFACE=$(ip -4 addr | awk '{if ($1 ~ /inet/ && $NF ~ /^[ve]/) {a=$NF}} END{print a}') 524 | 525 | curl -L "${RINET_URL}" >/usr/bin/rinetd-bbr 526 | chmod +x /usr/bin/rinetd-bbr 527 | judge "rinetd-bbr 安装" 528 | 529 | touch /etc/rinetd-bbr.conf 530 | cat <> /etc/rinetd-bbr.conf 531 | 0.0.0.0 ${port} 0.0.0.0 ${port} 532 | EOF 533 | 534 | touch /etc/systemd/system/rinetd-bbr.service 535 | cat < /etc/systemd/system/rinetd-bbr.service 536 | [Unit] 537 | Description=rinetd with bbr 538 | [Service] 539 | ExecStart=/usr/bin/rinetd-bbr -f -c /etc/rinetd-bbr.conf raw ${IFACE} 540 | Restart=always 541 | User=root 542 | [Install] 543 | WantedBy=multi-user.target 544 | EOF 545 | judge "rinetd-bbr 自启动配置" 546 | 547 | systemctl enable rinetd-bbr >/dev/null 2>&1 548 | systemctl start rinetd-bbr 549 | judge "rinetd-bbr 启动" 550 | } 551 | 552 | #重启caddy和v2ray程序 加载配置 553 | start_process_systemd(){ 554 | systemctl enable v2ray >/dev/null 2>&1 555 | systemctl enable caddy >/dev/null 2>&1 556 | 557 | systemctl daemon-reload 558 | 559 | systemctl start caddy 560 | judge "caddy 启动" 561 | 562 | systemctl start v2ray 563 | judge "V2ray 启动" 564 | } 565 | 566 | #展示客户端配置信息 567 | show_information(){ 568 | clear 569 | echo "" 570 | echo -e "${Info} ${GreenBG} V2RAY 基于 CADDY 的 VMESS+H2+TLS+Website(Use Host)+Rinetd BBR 安装成功 ${Font}" 571 | echo -e "----------------------------------------------------------" 572 | echo -e "${Green} 【您的 V2ray 配置信息】 ${Font}" 573 | echo -e "${Green} 地址(address):${Font} ${domain}" 574 | echo -e "${Green} 端口(port):${Font} ${port}" 575 | echo -e "${Green} 用户id(UUID):${Font} ${UUID}" 576 | echo -e "${Green} 额外id(alterId):${Font} ${alterID}" 577 | echo -e "${Green} 加密方式(security):${Font} 自适应(建议 none)" 578 | echo -e "${Green} 传输协议(network):${Font} h2" 579 | echo -e "${Green} 伪装类型(type):${Font} none " 580 | echo -e "${Green} WS 路径(ws path)(Path)(WebSocket 路径):${Font} /${v2raypath} " 581 | echo -e "${Green} WS Host(伪装域名)(Host):${Font} ${domain}" 582 | echo -e "${Green} HTTP头(适用于 BifrostV):${Font} 字段名:host 值:${domain}" 583 | echo -e "${Green} Mux 多路复用:${Font} 自适应" 584 | echo -e "${Green} 底层传输安全(加密方式):${Font} tls" 585 | if [ "${port}" -eq "443" ];then 586 | echo -e "${Green} Website 伪装站点:${Font} https://${domain}" 587 | echo -e "${Green} 客户端配置文件下载地址(URL):${Font} https://${domain}/s/${camouflage}/config.json ${Green} 【推荐】 ${Font}" 588 | echo -e "${Green} Windows 客户端(已打包 config 即下即用) :${Font} https://${domain}/s/${camouflage}/V2rayPro.zip ${Green} 【推荐】 ${Font}" 589 | else 590 | echo -e "${Green} Website 伪装站点:${Font} https://${domain}:${port}" 591 | echo -e "${Green} 客户端配置文件下载地址(URL):${Font} https://${domain}:${port}/s/${camouflage}/config.json ${Green} 【推荐】 ${Font}" 592 | echo -e "${Green} Windows 客户端(已打包 config 即下即用) :${Font} https://${domain}:${port}/s/${camouflage}/V2rayPro.zip ${Green} 【推荐】 ${Font}" 593 | fi 594 | echo -e "----------------------------------------------------------" 595 | } 596 | 597 | #命令块执行列表 598 | main(){ 599 | is_root 600 | check_system 601 | v2ray_hello 602 | port_alterid_set 603 | apache_uninstall 604 | dependency_install 605 | domain_check 606 | port_exist_check 80 607 | port_exist_check ${port} 608 | time_modify 609 | v2ray_install 610 | modify_crontab 611 | caddy_install 612 | web_install 613 | v2ray_conf_add 614 | caddy_conf_add 615 | user_config_add 616 | rinetdbbr_install 617 | win64_v2ray 618 | show_information 619 | start_process_systemd 620 | } 621 | 622 | #删除website客户端配置文件 防止被抓取 623 | rm_userjson(){ 624 | rm -rf /www/s 625 | echo -e "${OK} ${GreenBG} 客户端配置文件 config.json 已从 Website 中删除 ${Font}" 626 | echo -e "${OK} ${GreenBG} 提示:如果忘记配置信息 可执行 bash h.sh -n 重新生成 ${Font}" 627 | } 628 | 629 | #生成新的UUID并重启服务 630 | new_uuid(){ 631 | if [[ -e /www/index.bak ]]; then 632 | echo -e "${Info} ${GreenBG} 您已开启账号分享功能,无法手动更换 UUID 和生成 config.json 配置文件 ${Font}" 633 | echo -e "${Info} ${GreenBG} 提示:紧急更换共享 UUID 请执行 bash h.sh -m ${Font}" 634 | else 635 | random_number 636 | sed -i "/\"id\"/c \\\t\t\t\t\t\"id\":\"${UUID}\"" ${v2ray_conf} 637 | sed -i "/\"id\"/c \\\t\t\t\t\t\t\t\"id\":\"${UUID}\"" ${v2ray_user} 638 | rm -rf /www/s 639 | mkdir /www/s 640 | mkdir /www/s/${camouflage} 641 | cp -rp ${v2ray_user} /www/s/${camouflage}/config.json 642 | win64_v2ray 643 | systemctl restart v2ray 644 | judge "重启V2ray进程载入新的配置文件" 645 | echo -e "${OK} ${GreenBG} 新的 用户id(UUID): ${UUID} ${Font}" 646 | echo -e "${OK} ${GreenBG} 新的 客户端配置文件下载地址(URL):https://你的域名:端口/s/${camouflage}/config.json ${Font}" 647 | echo -e "${OK} ${GreenBG} 新的 Windows 客户端(已打包 config 即下即用):https://你的域名:端口/s/${camouflage}/V2rayPro.zip ${Font}" 648 | fi 649 | } 650 | 651 | #开启账号共享功能 增加每周一定时更换UUID任务 652 | add_share(){ 653 | if [[ -e /www/index.bak ]]; then 654 | echo -e "${Info} ${GreenBG} 账号分享功能已开启,请勿重复操作 ${Font}" 655 | else 656 | cp -rp /www/index.html /www/index.bak 657 | crontab -l >> crontab.txt 658 | echo "10 12 * * 1 bash /root/h.sh -m" >> crontab.txt 659 | crontab crontab.txt 660 | if [[ "${ID}" == "centos" ]];then 661 | systemctl restart crond 662 | else 663 | systemctl restart cron 664 | fi 665 | rm -f crontab.txt 666 | echo -e "${OK} ${GreenBG} 账号分享功能已开启 UUID 将在每周一12点10分更换(服务器时区)并推送至 Website 首页 ${Font}" 667 | echo -e "${OK} ${GreenBG} 提示:为避免被恶意抓取 该模式下不生成客户端 config.json 文件 ${Font}" 668 | echo -e "${OK} ${GreenBG} 正在执行首次 UUID 更换任务 ${Font}" 669 | share_uuid 670 | fi 671 | } 672 | 673 | #每周一定时更换UUID并推送至website首页 674 | share_uuid(){ 675 | random_number 676 | rm -f /www/index.html 677 | cp -rp /www/index.bak /www/index.html 678 | sed -i "/\"id\"/c \\\t\t\t\t\t\"id\":\"${UUID}\"" ${v2ray_conf} 679 | sed -i "s/<\/body>/<\/body>

UUID:${UUID}<\/p><\/div>/g" "/www/index.html" 680 | systemctl restart v2ray 681 | echo -e "${OK} ${GreenBG} 执行 UUID 更换任务成功,请访问 Website 首页查看新的 UUID ${Font}" 682 | } 683 | 684 | #生成Windows客户端 685 | win64_v2ray(){ 686 | TAG_URL="https://api.github.com/repos/v2ray/v2ray-core/releases/latest" 687 | NEW_VER=`curl -s ${TAG_URL} --connect-timeout 10| grep 'tag_name' | cut -d\" -f4` 688 | wget https://github.com/dylanbai8/V2Ray_h2-tls_Website_onekey/raw/master/V2rayPro.zip 689 | wget https://github.com/v2ray/v2ray-core/releases/download/${NEW_VER}/v2ray-windows-64.zip 690 | echo -e "${OK} ${GreenBG} 正在生成Windows客户端 v2ray-core最新版本 ${NEW_VER} ${Font}" 691 | unzip V2rayPro.zip 692 | unzip v2ray-windows-64.zip 693 | rm -rf V2rayPro.zip v2ray-windows-64.zip 694 | mv ./V2rayPro/v2ray/wv2ray-service.exe ./v2ray-${NEW_VER}-windows-64 695 | rm -rf ./V2rayPro/v2ray 696 | mv ./v2ray-${NEW_VER}-windows-64 ./V2rayPro/v2ray 697 | cp -rp ${v2ray_user} ./V2rayPro/v2ray/config.json 698 | zip -q -r /www/s/${camouflage}/V2rayPro.zip ./V2rayPro 699 | rm -rf ./V2rayPro 700 | } 701 | 702 | #向website添加赞助(挖矿)脚本 703 | add_xmr(){ 704 | if [[ -e /www/xmr ]]; then 705 | echo -e "${Info} ${GreenBG} 赞助功能已开启,请勿重复操作 ${Font}" 706 | else 707 | touch /www/xmr 708 | sed -i "s/<\/head>/