搭梯子或机场:V2RAY配置WebSocket + TLS + Web + CDN

发布时间: 2021-01-26 | 标签: 梯子 fuckgfw gfw websocket tls web cdn v2ray caddy2

v2ray现在最安全的配置就是WebSocket + TLS + Web + CDN 了,访问的是443端口,直接访问是一个网站,通过客户端连接后他是个梯子(飞机)。外观上看是一个刮胡刀,原来呢,它是一个吹风机。

1、检查系统的时间和时区是否正确,否则无法正常连接

date
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
date

2、自备海外VPS服务器

推荐:VPEasy,老牌服务商,最低套餐1024M/1CPU/25G SSD/1T流量 ,KVM架构,每年28刀,首年使用FirstYear优惠码,可以75折。博主6年前开始购买,已经使用6年了。

3、自备CloudFlare账号和域名

3.1、国内目前最便宜的域名

访问https://cloud.tencent.com/act/pro/DNSPodDomainsCarnival,领取2张5元代金券 然后注册10位数字以下的.xyz域名,新注册8元,续费8元 注册时,可以使用5元代金券,减后只需要3元 然后立即续费1年,又可以使用5元代金券,减后又只需要3元 记得国内注册域名,都需要实名认证

3.2、海外注册域名

推荐:https://namesilo.com,推荐top域名,每年4.89刀 下面为namesile.com的修改域名解析服务器的方法,仅供参考

入口:https://www.cloudflare.com

4、安装Caddy2

提供web服务的还有NginxApache,为什么选用Caddy2? 因为他简单,可以自动申请SSL证书。 原文中的Caddy已经无法正常从官网安装,这里是安装Caddy2的方法

可选从官网下载,或者从本站下载

从官网下载Caddy2

从本站下载Caddy2

mkdir -p ~/tools/caddy
cd ~/tools/caddy
wget -O caddy2 https://download.margrop.net/d/oneindex/CENTOS/caddy2_2.2.1
chmod +x caddy2
caddy2 -version

5、安装v2ray

bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh)
installed: /usr/local/bin/v2ray
installed: /usr/local/bin/v2ctl
installed: /usr/local/share/v2ray/geoip.dat
installed: /usr/local/share/v2ray/geosite.dat
installed: /usr/local/etc/v2ray/config.json
installed: /var/log/v2ray/
installed: /var/log/v2ray/access.log
installed: /var/log/v2ray/error.log
installed: /etc/systemd/system/v2ray.service
installed: /etc/systemd/system/v2ray@.service
removed: /tmp/tmp.iO3bDdOqa9
info: V2Ray v4.33.0 is installed.
You may need to execute a command to remove dependent software: yum remove curl unzip
Please execute the command: systemctl enable v2ray; systemctl start v2ray

6、配置并启动v2ray

vim /usr/local/etc/v2ray/config.json

Mac/Unix/Linux系统:控制台输入uuidgen,即可生成UUID Windows系统:PowerShell控制台输入[guid]::NewGuid(),即可生成UUID

{
  "inbound": {
    "port": 10000,
    "listen":"127.0.0.1",
    "protocol": "vmess",
    "settings": {
      "clients": [
        {
          "id": "E5B33B5A-A241-4246-B8D9-A260FBBAFCCF",
          "alterId": 64
        }
      ]
    },
    "streamSettings": {
      "network": "ws",
      "wsSettings": {
      "path": "/{RANDOM_PATH}"
      }
    }
  },
  "outbound": {
    "protocol": "freedom",
    "settings": {}
  }
}
systemctl start v2ray
systemctl enable v2ray

7、配置Caddyfile2

/etc/caddy 目录创建 Caddyfile2 文件,没有目录就创建目录,编辑Caddyfile2文件

mkdir /etc/caddy
cd /etc/caddy
vim /etc/caddy/Caddyfile2
blog.margrop.net
{
    root * /usr/share/caddy
    file_server
    log {
        output file /var/log/caddy/vps.log
    }
    tls {
        dns cloudflare g9_uKv1RrXXXXXXHOPfXXXXXXYNZGXXXXXXJh3qp
    }
    @v2ray_websocket {
        path /{RANDOM_PATH}
        header Connection *Upgrade*
        header Upgrade websocket
    }
    reverse_proxy @v2ray_websocket localhost:10000
}

8、配置Caddy JSON

cd ~/tools/caddy
./caddy2 adapt --config /etc/caddy/Caddyfile2 > ~/tools/caddy/config.json
cat ~/tools/caddy/config.json

9、启动并上传Caddy JSON

cd ~/tools/caddy
./caddy2 start
curl localhost:2019/config/
curl localhost:2019/load -X POST -H "Content-Type: application/json" -d @config.json
curl localhost:2019/config/

10、v2ray客户端配置

{
    "inbounds": [
        {
            "port": 1080,
            "listen": "0.0.0.0",
            "protocol": "socks",
            "domainOverride": [
                "tls",
                "http"
            ],
            "settings": {
                "auth": "noauth",
                "udp": false
            }
        },
        {
            "port": 1081,
            "listen": "0.0.0.0",
            "protocol": "http",
            "domainOverride": [
                "tls",
                "http"
            ],
            "settings": {
                "auth": "noauth",
                "udp": false
            }
        }
    ],
    "outbound": {
        "protocol": "vmess",
        "settings": {
            "vnext": [
                {
                    "address": "blog.margrop.net",
                    "port": 443,
                    "users": [
                        {
                            "id": "E5B33B5A-A241-4246-B8D9-A260FBBAFCCF",
                            "alterId": 64
                        }
                    ]
                }
            ]
        },
        "streamSettings": {
            "network": "ws",
            "security": "tls",
            "wsSettings": {
                "path": "/{RANDOM_PATH}"
            }
        }
    }
}

UUID域名{RANDOM_PATH},必须和服务端配置一样的。

11、试运行

看看有没有报错,没有报错就访问下网站看是否正常,如果正常就证明caddy2配置无误。

以上全部操作在CentOS 7上亲自验证,可行。 目前这个文档还属于简版操作手册,后续再慢慢补充每一步详细的操作流程。

12、Caddy2配置自动启动

创建或编辑 caddy2.service 文件 使用以下命令编辑服务文件:

sudo nano /etc/systemd/system/caddy2.service

将服务文件内容更新为以下内容

[Unit]
Description=Start Caddy with Config on Boot
After=network.target

[Service]
User=root
WorkingDirectory=/root/tools/caddy
ExecStart=/root/tools/caddy/caddy2 run --config /root/tools/caddy/config.json
wqRestart=on-failure
Environment=HOME=/root

[Install]
WantedBy=multi-user.target

重新加载 systemd 配置并启动服务 保存并关闭文件后,执行以下命令:

sudo systemctl daemon-reload
sudo systemctl restart caddy2.service
sudo systemctl enable caddy2.service

验证服务状态 检查服务是否正常运行:

sudo systemctl status caddy2.service

13、存档,Caddy1使用方法

#测试运行
caddy -agree -conf /etc/caddy/Caddyfile
#正式运行
nohup caddy -agree -conf /etc/caddy/Caddyfile > /root/caddy.log 2>&1 &

参考

搭梯子:V2RAY配置WebSocket + TLS + Web WebSocket+TLS+Web Module dns.providers.cloudflare Caddyfile Quick-start Install