纯IPV6 VPS安装hysteria、x-ui面板,并实现多VPS轮换

重置VPS

登录 hax / woiden后,选择 Reinstall VPS,操作系统选择Debian 11,设置好密码及人机验证后,点击Rebuild VPS后即可,等待几分钟后系统会重置好。

开启TUN

请参考为OpenVZ 虚拟化的 Vps 开启 Tun

准备工作

  • 域名解析
    请至cloudflare进行DNS解析,由于hax / woiden都是纯IPV6的VPS,所以类型请选择AAAA。不用开小云朵!!!这样会导致hysteria无法使用。

  • 请把cloudflare的SSL/TLS 加密模式修改为完全 或者 完全(严格)。

  • 更新软件源
    SSH登录VPS后,在命令行输入:

    apt-get update
    
  • 卸载apache2
    VPS hax / woiden可能默认安装了apache2,占用了80端口,为了后面申请证书能成功,请卸载自带的apache2,在命令行输入:

    apt-get --purge remove apache2 apache2-doc apache2-bin apache2-data apache2-utils -y
    

    一般这样就会完全卸载掉apache2,可以通过:

    dpkg -l | grep apache2
    

    看是否卸载干净。最后运行:

    apt-get autoremove
    

安装Hysteria

安装Hysteria,选择的是甬哥的一键脚本。视频请看Youtube,内容说明请看BLOG脚本说明一键脚本地址。也可以在命令行直接输入下面代码安装:

wget -N https://gitlab.com/rwkgyg/hysteria-yg/raw/main/hysteria.sh && bash hysteria.sh

注意

  • 代码最近有更新,证书路径由原来的/root/变成了/root/ygkkkca/, 这与BLOG中的说明有出入。请记住证书路径及名称(/root/ygkkkca/cert.crt & /root/ygkkkca/private.key),这在后面会用到。

安装X-UI面板,并实现单端口多用户功能

本节内容完全参考了不良林的教程,具体请看大神的Youtube视频文字说明

注意

  • 由于上面已经申请过证书,所以从安装acme.sh到申请证书这些步骤可以省略了。

  • 教程中用的是IPV4 VPS,在nginx配置中我们要添加支持IPV6的功能,请把原来的

      listen 443 ssl; # 第22行
    

    调整为:

      listen [::]:443 ssl;
      listen 443 ssl;
    
  • 证书路径调整
    由于我们用到的是Hysteria申请的证书,请调整一下原来的25,26(26,27)行:

       ssl_certificate       /etc/x-ui/server.crt;  # 证书位置
       ssl_certificate_key   /etc/x-ui/server.key; # 私钥位置
    

    调整为:

       ssl_certificate       /root/ygkkkca/cert.crt;  # 证书位置
       ssl_certificate_key   /root/ygkkkca/private.key; # 私钥位置
    
  • 如果想多VPS轮询节点的话,请把上面用到的uuid固定,不要用x-ui自动生成的,请统一每个端口的UUID!!!

  • nginx配置文件直接修改比较麻烦的话,请先备份原配置文件:

    cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
    

    然后新建一个空白文件:

    vi /etc/nginx/nginx.conf.xui
    

    最后覆盖原文件即可:

    cp /etc/nginx/nginx.conf.xui /etc/nginx/nginx.conf
    

直接优选IP

按照不良林教程搭建的vmess+ws+tls+web或者vless+ws+tls+web的,如果域名是托管在cloudflare上的,可以直接优选IP使用,把地址修改为优选IP或者icook.tw,把伪装域名和sni修改成自己的域名即可。这样应该可以解决ipv4上无法使用的问题。但速度可能没有直连快。

创建Workers并添加自定义域名

  1. 创建 Cloudflare Workers
    按上面链接说明创建workers,并设置CloudFlare Workers反代代码,如果想实现多个VPS轮换,请参考 进阶说明,注意,把对应的域名换成自己的即可。
    下面贴出几个常用的cloudfalre workers反代代码:

    • CloudFlare Workers单VPS反代代码
      addEventListener(
       "fetch",event => {
          let url=new URL(event.request.url);
          url.hostname="xxx.eu.org";
          let request=new Request(url,event.request);
          event. respondWith(
              fetch(request)
         )
      }
      )
      
    • CloudFlare Workers单双VPS轮换反代代码

      const SingleDay = 'xxx1.eu.org'
      const DoubleDay = 'xxx2.eu.org'
      addEventListener(
       "fetch",event => {
      
           let nd = new Date();
           if (nd.getDate()%2) {
               host = SingleDay
           } else {
               host = DoubleDay
           }
      
           let url=new URL(event.request.url);
           url.hostname=host;
           let request=new Request(url,event.request);
           event. respondWith(
               fetch(request)
           )
       }
      )
      
    • CloudFlare Workers一周VPS轮换反代代码

      const Day0 = 'xxx1.eu.org'
      const Day1 = 'xxx2.eu.org'
      const Day2 = 'xxx3.eu.3org'
      const Day3 = 'xxx4.eu.org'
      const Day4 = 'xxx5.eu.org'
      const Day5 = 'xxx6.eu.org'
      const Day6 = 'xxx7.eu.org'
      addEventListener(
       "fetch",event => {
      
           let nd = new Date();
           let day = nd.getDay();
           if (day === 0) {
              host = Day0
           } else if (day === 1) {
               host = Day1
           } else if (day === 2) {
               host = Day2
           } else if (day === 3){
               host = Day3
           } else if (day === 4) {
               host = Day4
           } else if (day === 5) {
               host = Day5
           } else if (day === 6) {
               host = Day6
           } else {
               host = Day1
           }
      
           let url=new URL(event.request.url);
           url.hostname=host;
           let request=new Request(url,event.request);
           event. respondWith(
               fetch(request)
           )
       }
      )
      

2、添加自定义域名
由于CloudFlare Workers 的业务域名 Workers.dev 被防火长城 DNS 污染,无法直接使用xxx.workder.dev域名,目前可以使用添加自定义域名方式访问,具体请参考辰漉博客,然后在v2rayN修改伪装域名及sni为对应的路由域名即可。

附上完整的nginx.conf配置文件,仅供参考(请把相应配置修改成自己的):

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
    worker_connections 1024;
}

http {
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;
    gzip on;

    server {
        listen [::]:443 ssl;
        listen 443 ssl;

        server_name example.com;   # 你的域名
        ssl_certificate       /root/ygkkkca/cert.crt;  # 证书位置
        ssl_certificate_key   /root/ygkkkca/private.key; # 私钥位置

        ssl_session_timeout 1d;
        ssl_session_cache shared:MozSSL:10m;
        ssl_session_tickets off;
        ssl_protocols    TLSv1.2 TLSv1.3;
        ssl_prefer_server_ciphers off;

        location / {
            proxy_pass http://cloudreve.lee2333.com/; # 伪装网址
            proxy_redirect off;
            proxy_ssl_server_name on;
            sub_filter_once off;
            sub_filter "cloudreve.lee2333.com" $server_name;
            proxy_set_header Host "cloudreve.lee2333.com";
            proxy_set_header Referer $http_referer;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header User-Agent $http_user_agent;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto https;
            proxy_set_header Accept-Encoding "";
            proxy_set_header Accept-Language "zh-CN";
        }

        location /a804bd50-2e88-4458-a64d-862f96777471 {   # 分流路径
            proxy_redirect off;
            proxy_pass http://127.0.0.1:10000; #Xray端口 (vmess)
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

        location /43d82949-d8da-42be-850e-845d398779c5 {   # 分流路径
            proxy_redirect off;
            proxy_pass http://127.0.0.1:10001; # Xray端口(vless)
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

        location /a804bd50-2e88-4458-a64d-862f96777471-xui {   # xui路径
            proxy_redirect off;
            proxy_pass http://127.0.0.1:9999;  # xui监听端口
            proxy_http_version 1.1;
            proxy_set_header Host $host;
        }
    }    
}

评论

此博客中的热门博文

CentOS7修改默认SSH端口

纯IPV6服务器(Euserv)安装哪吒面板