vps必备关注

vps上安装v2ray记录

记录下安装v2ray,开起weboscket+nginx+tls模式来隐藏真实信息

v2ray

国内一波大神搞得,使用vmess协议加密传输,支持shadowsocks

一键安装脚本

1
https://github.com/233boy/v2ray

自行安装

  1. 时间校对(很重要)

    对于 V2Ray,它的验证方式包含时间,就算是配置没有任何问题,如果时间不正确,也无法连接 V2Ray 服务器的,服务器会认为你这是不合法的请求。所以系统时间一定要正确,只要保证时间误差在一分钟之内就没问题。
    如果时间不准确,可以使用 date –set 修改时间

    1
    $ sudo date --set="2018-11-22 16:16:23"
  2. 安装脚本

    1
    2
    3
    4
    5
    6
    7
    8
    wget https://install.direct/go.sh
    sudo bash go.sh

    # 启动
    systemctl start v2ray

    # 升级
    sudo bash go.sh
  3. 配置文件

    • json的格式
    • /etc/v2ray/config.json
    • 配置如下,关键点就在于inboundoutbound,有shadowsocks的需求加一个streamsetting
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      43
      44
      45
      46
      47
      48
      49
      50
      51
      52
      53
      54
      55
      56
      57
      58
      59
      60
      61
      62
      63
      64
      65
      66
      67
      68
      69
      70
      {
      "port": 12345, # 通讯端口,客户端和服务端一致,自定
      "log" : {
      "access": "/var/log/v2ray/access.log",
      "error": "/var/log/v2ray/error.log",
      "loglevel": "warning"
      },
      "inbound": {
      "protocol": "vmess",
      "settings": {
      "clients": [
      {
      "id": "293c95b0-a4a2-47d5-b6eb-da8e6894e7b8", # UUID 在这个网站随机生成一个,https://www.uuidgenerator.net, 要保证client和server配置一个UUID
      "alterId": 55, # 这个自定,数字范围0-100,但要保证客户端和服务端一致
      "level": 1 # 官方说明,0 共享VPS, 1 自用VPS
      }
      ]
      }
      },
      "outbound": {
      "protocol": "freedom",
      "settings": {}
      },
      "inboundDetour": [
      {
      "protocol": "shadowsocks", # 此段为支持SS协议部分
      "port": 1234,
      "settings": {
      "method": "chacha20", # 加密协议支持aes-256-cfb, aes-128-cfb, chacha20 (V2Ray 1.9+), chacha20-ietf (V2Ray 1.9+)
      "password": "v2ray",
      "udp": false # 是否支持UDP中转
      }
      }
      ],
      "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"
      }
      ]
      }
      }
      }

客户端下载

  • Mac上直接使用v2rayN
  • ios上使用小火箭
  • 没什么难度,只是需要根据你服务器上配置的协议来配置客户端即可
  • 客户端装好后,chrome需要配置export参数才能使用代理,不方便

    Mac上配合surge来实行全局控制

  • v2ray的客户端监听的socks端口可以让surge配置一条proxy记录
1
socks5,127.0.0.1,1080

使用websocket+nginx+tls来混淆,防止被GFW监听

主要原理就是利用了tls的加密,模仿正常的网站访问即可

  • 需要准备一个域名(子域名也可以),并将之A类解析到自己对应的服务器上v2->x.x.x.x

    安装nginx/下载证书

  • 使用acme脚本来辅助申请,3个月有效期,到时需要重新续约

    1
    https://github.com/Neilpang/acme.sh
  • nginx配置文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    server {
    listen 443 ssl;
    ssl on;
    ssl_certificate /etc/v2ray/v2ray.crt; # 证书
    ssl_certificate_key /etc/v2ray/v2ray.key; # 证书
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!MD5;
    server_name mydomain.me;
    location /ray { # 与 V2Ray 配置中的 path 保持一致
    proxy_redirect off;
    proxy_pass http://127.0.0.1:10000; # 假设WebSocket监听在环回地址的10000端口上
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $http_host;
    }
    }

针对h2的配置和上面类似

套cdn,由于国内域名需要备案才能使用,放弃;可以使用cloudfare,但连接速度也许更慢


开起bbr加速

google开发的阻塞控制算法,针对tcp的连接能有效降低丢包概率
centos7的机器中,默认内核是3.9.*,先要升级到4.19以上才行

升级内核

1
2
3
4
5
6
7
8
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org # 加入key到yum中
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm # 添加源
yum --enablerepo=elrepo-kernel install kernel-ml # 安装最新的内核
grub2-set-default 0 # 0号位需要启动的内核,默认安装内核均是0
reboot # 不重启不生效

# 查看内核版本
uname -r # 看是否是4.19.4-1.el7.elrepo.x86_64

开启bbr

1
2
3
4
5
6
7
8
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf

# 保存执行
sysctl -p

# 查看是否成功
lsmod | grep bbr