搭建VPN翻墙科学上网,搭建v2ray+nginx+ws+ssl+cdn配置

✍️Auth:star皆空       Date:2021/07/17       Cat:Linux服务器windows相关       👁️:12,997 次浏览

VPN有SS,SSR,v2ray,trojan等方式,这里介绍一下v2ray的搭建方式:

SSR搭建参考我另一篇文章:Centos 8搭建SSR科学上网

v2ray官网:https://www.v2ray.com/

1,安装v2ray

在官网也有详细介绍,可以自己参考。

1.1 下载安装v2ray

根据官方运行下面的指令下载并安装 V2Ray。

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

报错如下:
ERROR: This script has been DISCARDED, please switch to fhs-install-v2ray project.
HOW TO USE: https://github.com/v2fly/fhs-install-v2ray
TO MIGRATE: https://github.com/v2fly/fhs-install-v2ray/wiki/Migrate-from-the-old-script-to-this

原因,这是旧版本命令,旧版本已经禁止使用,需要查看上面TO MIGRATE链接安装新的脚本。

curl -O https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh

在执行以下命令安装:

bash install-release.sh

此脚本会自动安装以下文件:

  • /usr/bin/v2ray/v2ray:V2Ray 程序;
  • /usr/bin/v2ray/v2ctl:V2Ray 工具;
  • /etc/v2ray/config.json:配置文件;
  • /usr/bin/v2ray/geoip.dat:IP 数据文件
  • /usr/bin/v2ray/geosite.dat:域名数据文件

安装完成,有两条警告可以忽略,因为还有配置文件:

1.2 获取用户ID

获取随机用户ID,ID是UUID,用Linux自带命令可以随机生成UUID

cat /proc/sys/kernel/random/uuid

1.3 配置v2ray服务器

编辑config.json配置文件,安装完成可以看到文件位置:

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

可以根据官方配置如下:
需要注意的几项:

  • port 可以自己设置一个没被其他使用的即可。
  • id 自己随机生成从UUID,如我随机的是9af3c6ac-07f4-463b-9a1c-22cfe148733d
  • path 路径可自己随机设置一个名称,只需要和nginx配置保持一致。
{
  "inbounds": [
    {
      "port": 9532,
      "listen":"127.0.0.1",//只监听 127.0.0.1,避免除本机外的机器探测到开放了 9532 端口
      "protocol": "vmess",
      "settings": {
        "clients": [
          {
            "id": "9af3c6ac-07f4-463b-9a1c-22cfe148733d",
            "alterId": 64
          }
        ]
      },
      "streamSettings": {
        "network": "ws",
        "wsSettings": {
        "path": "/kshad"
        }
      }
    }
  ],
  "outbounds": [
    {
      "protocol": "freedom",
      "settings": {}
    }
  ]
}

保存退出,如果只需要简单使用,不加密的话,现在也可以直接使用,去掉上面的streamSettings模块即可,这个模块是为后续ws+nginx的配置需求。

直接使用,启动v2ray即可。

systemctl start v2ray.service

2,加强版v2ray+nginx+ws配置

用搭建的网站,nginx代理功能,隐藏自己。ws,你还需要申请一个域名解析到自己的服务器地址(这个简单就不描述了)。

2.1 搭建LNMP(Linux+nginx+mysql+php)网站架构

具体参考我的另一篇文章:搭建LNMP(Linux+Nginx+Mysql+PHP)坏境
并配置好相关文件,可正常访问网站。

2.2 配置nginx

在原来server中加入一个location /kshad 模块:
注意两点即可:

  • /kshad 这里的名称需与v2ray配置的path名称一致。
  • proxy_pass后面端口与v2ray配置端口一致。

完整配置如下:

server {
    listen       80;
    server_name  #填入自己申请的域名(如www.asdaik.com);

    location / {
        root   /www;
        index  index.html index.htm index.php;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location ~ \.php$ {
        root           /www;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

    location /kshad { # 与 V2Ray 配置中的 path 保持一致
        if ($http_upgrade != "websocket") { # WebSocket协商失败时返回404
            return 404;
        }
        proxy_redirect off;
        proxy_pass http://127.0.0.1:9532; # 假设WebSocket监听在环回地址的10000端口上
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        # Show real IP in v2ray access.log
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      }
}

配置完成,初步隐藏完成,这时也可以使用。

直接使用重启nginx及v2ray即可。

systemctl restart nginx.service
systemctl restart v2ray.service

3,加强最终版v2ray+nginx+ws+ssl+cdn配置

3.1 配置SSL证书

以上配置完后,但是在访问网站时,你的path还是会暴露在GFW下,这时需要用SSL证书加密,也就是https。我们用免费的certbot签证书即可。

参考我的另一篇文章。Certbot给网站域名申请免费SSL证书 及Nginx配置

3.2 配置cdn

cdn有很多,用CDN后,会隐藏我们的真实IP。这里也是采用免费的Cloudflare即可(也提供免费SSL,可以自己研究下)。
官网注册账号:www.cloudflare.com
第一步:添加站点域名

第二部,在DNS选项打开代理保存即可。

到这里,整个配置完成。
重启后,可以科学上网了。

systemctl restart nginx.service
systemctl restart v2ray.service

4,客户端配置

自行下载系统版本,参考:神一样的工具们
windows: https://github.com/2dust/v2rayN/releases
安卓:https://github.com/2dust/v2rayNG/releases
苹果:免费v2ray iOS客户端有OneClick、Leaf,付费v2ray iOS客户端有:Shadowrocket、pepi、i2Ray、Kitsunebi和Quantumult。

基本配置三个即可:
服务器地址(域名或ip)、端口(port为443,跟你v2ray配置的端口没关系)、用户id(uuid)。

但是我们已经通过加密过后,还需要配置:
加密方式一般为aes-128-gcm,协议为ws,伪装域名留空,路径为/kshad(v2ray配置的path),开启tls和不安全传输,设置完保存

开始翻墙,科学上网了。

打赏作者

搭建VPN翻墙科学上网,搭建v2ray+nginx+ws+ssl+cdn配置》有4个想法

  1. Pingback引用通告: VPN搭建科学上网,Linux搭建Socks5代理服务器 - 运维笔记(ywbj.cc)

发表评论