zoukankan      html  css  js  c++  java
  • 安装v2sora@y

    v2r@y安装

    1. 安装nginx

    这儿使用tengine进行安装, 可以看以前的博客

    1.1) 注意带 http_v2 编译

    ./configure --with-http_v2_module
    

    不然会报错

    此时安装的openresty配置http2会报错 the "http2" parameter requires ngx_http_v2_module
    

    如果已经安装的ginx, 可以使用 nginx -v查看编译参数, 然后加上上述参数重新编译, 之后make, 不执行 make install , 然后将编译后的nginx进行替换现有的.

    cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
    cp objs/nginx /usr/local/nginx/sbin/nginx
    

    1.2). 配置文件

    1.2.1) /usr/local/nginx/conf/nginx.conf

    user root;
    worker_processes  1;
    worker_rlimit_nofile    652144;
    
    error_log  /usr/local/nginx/logs/error.log crit;
    pid /run/nginx.pid;
    
    events {
        use epoll;
        multi_accept on;
        worker_connections  1024;
    }
    
    http {
        include /usr/local/nginx/conf/mime.types;
        client_max_body_size 1m;
        sendfile     on;
        tcp_nopush   on;
        access_log   off;
        keepalive_timeout  60;
    
        proxy_ignore_client_abort on;
    
        limit_req_zone $binary_remote_addr zone=allips:200m rate=90r/m;
    
        upstream vr_server {
            server 127.0.0.1:18181;
    
            keepalive 1000;
        }
    
        include conf.d/*.conf;
    }
    

    1.2.2) /usr/local/nginx/conf/conf.d/default.conf

    server {
            listen       80;
            server_name  vr.xxx.cn;
            location / {
                root   html;
                index  index.html index.htm;
            }
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
    
            location ~/.well-known {
              allow all;
            }
        		return 301 https://$server_name$request_uri;
    
    }
    

    注意上面配置中的 location ~/.well-konw, 这个在使用certbot的时候使用的

    1.2.3) /usr/local/nginx/conf/conf.d/v2r@y.conf

    server {
        listen 443 ssl http2 default_server;
        listen [::]:443 ssl http2 default_server;
        ssl_certificate /etc/letsencrypt/live/vr.xxxxxxxx.cn/fullchain.pem;     #生成的密钥对 #你的ssl证书, 如果第一次,可能还需要自签一下
        ssl_certificate_key /etc/letsencrypt/live/vr.xxxxxxxx.cn/privkey.pem;   #生成的密钥对, 你的ssl key
        server_name vr.xxxxxxxx.cn;
    
        ssl_protocols   TLSv1 TLSv1.1 TLSv1.2; #使用的协议
        ssl_ciphers HIGH:!aNULL:!MD5;#使用的加密算法
    
        root /usr/local/nginx/html;
        # Add index.php to the list if you are using PHP
        index index.html index.htm index.nginx-debian.html;
    
        location /bronk {
            proxy_redirect off;
            proxy_pass http://vr_server;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_set_header Host $http_host;
        }
    }
    

    1.2.4) 将80端口所有的http服务转到https

    我没试验这个

    server {
        listen 80;
        server_name linuxstory.org www.linuxstory.org;
        return 301 https://$server_name$request_uri;
    }
    

    1.2.5) 开放防火墙端口

    system-cmd --zone=public --add-port=80/tcp --permanent
    system-cmd --zone=public --add-port=443/tcp --permanent
    

    2. 安装certbot

    需要自己注册域名, 并且域名指向自己的服务器, 服务器的443和80端口都开着

    1.1) 服务器应具有的环境

    $ yum -y install yum-utils
    $ yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional
    

    1.2) 针对nginx环境

    yum install certbot python2-certbot-nginx
    

    1.3) 准备location

    cerbot 签名有两种方式 一种是 --webroot 一种是 --Standalone 在网上看到的区别是 第一种不需要停现在的服务 第二种需要停掉服务 那好 我需要的是第一种 :)

    然后确认下你要签名的域名 是否已经指向你自己的服务器了 还有云服务的话 要记得看下安全组 443端口有没有开 总之就是要确认你的准备工作是没问题的

     location ~ /.well-known {
                allow all;
     }
    

    看到另外一种方式, 没有实验

    location ^~ /.well-known/acme-challenge/ {
       default_type "text/plain";
       root     /home/wwwroot/linuxstory.org/;
    }
     
    location = /.well-known/acme-challenge/ {
       return 404;
    }
    

    1.4) 生成证书

    certbot certonly --webroot -w /usr/local/nginx/html -d vr.xxx.cn --email xxx@hotmail.com
    
    • Webroot: webroot 模式
    • w: nginx服务器的html目录(80端口所在的目录)
    • -d: 域名
    • —email: 用于接收过期信息

    服务器输出如下信息, 证明生成正确, 注意其中的目录地址

    IMPORTANT NOTES:

    • Congratulations! Your certificate and chain have been saved at:
      /etc/letsencrypt/live/vr.xxxxxxxx.cn/fullchain.pem
      Your key file has been saved at:
      /etc/letsencrypt/live/vr.xxxxxxxx.cn/privkey.pem
      Your cert will expire on 2019-09-12. To obtain a new or tweaked
      version of this certificate in the future, simply run certbot
      again. To non-interactively renew all of your certificates, run
      "certbot renew"
    • If you like Certbot, please consider supporting our work by:

    Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
    Donating to EFF: https://eff.org/donate-le

    /etc/letsencrypt/live/你的域名/ 下存放的就是密钥

    1.5) 在nginx的443端口下使用https证书

    参照nginx下的v2r@y.conf 文件的配置

    1.6) 设置过期自动生成新证书

    crontab -e之后进行编辑

    0 0 15 */3 * /usr/bin/certbot renew # 3,6,9,12月的15号零点进行更新
    

    参考: http简介及ssl工具

    3. 安装v2r@y

    3.1) linux提供一键安装脚本

    bash <(curl -L -s https://install.direct/go.sh)
    

    此脚本会自动安装如下文件

    /usr/bin/v2r@y/v2r@y:v2r@y 程序;
    /usr/bin/v2r@y/v2ctl:v2r@y 工具;
    /etc/v2r@y/config.json:配置文件;
    /usr/bin/v2r@y/geoip.dat:IP 数据文件
    /usr/bin/v2r@y/geosite.dat:域名数据文件 此脚本会配置自动运行脚本。自动运行脚本会在系统重启之后,自动运行 v2r@y。目前自动运行脚本只支持带有 Systemd 的系统,以及 Debian / Ubuntu 全系列。

    运行脚本位于系统的以下位置:

    • /etc/systemd/system/v2r@y.service: Systemd
    • /etc/init.d/v2r@y: SysV

    3.2) 启动

    systemctl start|stop|status|reload|restart|force-reload v2@ray
    

    3.3) 配置文件

    3.3.1) 服务端配置文件

    /etc/v2@ray/config.json
    

    更改配置文件

    {
      "log" : {
        "access": "/var/log/v2r@y/access.log",
        "error": "/var/log/v2r@y/error.log",
        "loglevel": "warning"
      },
      "inbound": {
        "port": 10000, //(此端口与nginx配置相关)
        "listen": "127.0.0.1",
        "protocol": "vmess",
        "settings": {
          "clients": [
            {
              "id": "xxxxxxd1f-687c-4188-9abc-80073a618ca3", //你的UUID, 此ID需与客户端保持一致
              "level": 1,
              "alterId": 64 //此ID也需与客户端保持一致
            }
          ]
        },
       "streamSettings":{
          "network": "ws",
          "wsSettings": {
               "path": "/ray" //与nginx配置相关
          }
       }
      },
      "outbound": {
        "protocol": "freedom",
        "settings": {}
      },
      "outboundDetour": [
        {
          "protocol": "blackhole",
          "settings": {},
          "tag": "blocked"
        }
      ],
      "routing": {
        "strategy": "rules",
        "settings": {
          "rules": [
            {
              "type": "field",
              "ip": [
                "0.0.0.0/8",
                "10.0.0.0/8",
                "100.64.0.0/10",
                "127.0.0.0/8",
                "169.254.0.0/16",
                "172.16.0.0/12",
                "192.0.0.0/24",
                "192.0.2.0/24",
                "192.168.0.0/16",
                "198.18.0.0/15",
                "198.51.100.0/24",
                "203.0.113.0/24",
                "::1/128",
                "fc00::/7",
                "fe80::/10"
              ],
              "outboundTag": "blocked"
            }
          ]
        }
      }
    }
    

    3.3.2). 客户端配置文件

    {
      "log": {
        "loglevel": "warning"
      },
      "inbound": {
        "port": 1080,
        "listen": "127.0.0.1",
        "protocol": "socks",
        "settings": {
          "auth": "noauth",
          "udp": false
        }
      },
      "inboundDetour": [
        {
            "port": 8123,
            "listen": "127.0.0.1",
            "protocol": "http",
            "settings": {}
        }
      ],
      "outbound": {
        "protocol": "vmess",
        "settings": {
          "vnext": [{
            "address": "test.v2r@y.com", // 服务器地址,请修改为你自己的服务器 ip 或域名
            "port": 443,  // 服务器端口
            "users": [{ 
                "id": "4xxxxxxf-687c-4188-9abc-80073a618ca3", //你的UUID, 此ID需与服务端保持一致
                "level": 1,
                "alterId": 64,  //此ID也需与客户端保持一致
                "security": "aes-128-gcm"
            }]
          }]
        },
        "streamSettings":{
            "network": "ws",
            "security": "tls",
            "tlsSettings": {
                "serverName": "test.v2r@y.com" //此域名是你服务器的域名
            },
            "wsSettings": {
                "path": "/ray" //与服务器配置及nginx配置相关
            }
        },
        "tag": "forgin"
      },
      "outboundDetour": [
        {
            "protocol": "freedom",
            "settings": {},
            "tag": "direct"
        }
      ],
      "routing": { //此路由配置是自动分流, 国内IP和网站直连
        "strategy": "rules",
        "settings": {
            "domainStrategy": "IPIfNonMatch",
            "rules": [
                {
                    "type": "chinaip",
                    "outboundTag": "direct"
                },
                {
                    "type": "chinasites",
                    "outboundTag": "direct"
                },
                {
                    "type": "field",
                    "ip": [
                        "0.0.0.0/8",
                        "10.0.0.0/8",
                        "100.64.0.0/10",
                        "127.0.0.0/8",
                        "169.254.0.0/16",
                        "172.16.0.0/12",
                        "192.0.0.0/24",
                        "192.0.2.0/24",
                        "192.168.0.0/16",
                        "198.18.0.0/15",
                        "198.51.100.0/24",
                        "203.0.113.0/24",
                        "::1/128",
                        "fc00::/7",
                        "fe80::/10"
                    ],
                    "outboundTag": "direct"
                }
            ]
        }
      },
      "policy": {
        "levels": {
          "0": {"uplinkOnly": 0}
        }
      }
    }
    

    3.4) window连接

    下载客户端, (下载地址)[https://pan.laod.cc/download/]

    v2r@yN

    注意uuid 和服务端一致

    3.5) mac连接

    使用v2r@yX 连接不上, 后使用v2r@yU进行连接的

    4. 启用google的BBR加速

    wget -N --no-check-certificate "https://raw.githubusercontent.com/chiakge/Linux-NetSpeed/master/tcp.sh" && chmod +x tcp.sh && ./tcp.sh
    

    先选择2, 重启后选择7, 即可

    5. 异常

    碰到一个异常

    rejected  v2r@y.com/core/proxy/vmess/encoding: invalid user
    

    是因为v2r@y 的uuid或者服务器时间和本地的不一致

    更改服务器时区

    timedatectl set-timezone Asia/Shanghai
    

    如果服务器有ipv6, 那么使用全局模式可以自动ipv6

  • 相关阅读:
    hdu1238 Substrings
    CCF试题:高速公路(Targin)
    hdu 1269 迷宫城堡(Targin算法)
    hdu 1253 胜利大逃亡
    NYOJ 55 懒省事的小明
    HDU 1024 Max Sum Plus Plus
    HDU 1087 Super Jumping! Jumping! Jumping!
    HDU 1257 最少拦截系统
    HDU 1069 Monkey and Banana
    HDU 1104 Remainder
  • 原文地址:https://www.cnblogs.com/wenbronk/p/11016816.html
Copyright © 2011-2022 走看看