小白利用vps搭建v2ray并配置websocket+tls+nginx模式

Contents

1.前言

从我2013年下半年真正接触互联网到现在,已经整整过去七年了。最开始给我启发的还是已经消失的google+,那会的G+科技圈里充斥着各个领域的大佬,他们善良互助,基本上就是你有什么问题,只要发个帖子,就会有人愿意帮助你解决。不像现在的一些论坛,当你发了一个很小白的问题后,很少有人愿意给你解答。

七年中,我也算有幸见证了互联网圈的一些大事件,这其中包括2015年clowwindy被请去喝茶,sspython停止更新,然后破娃的ssr时代崛起,再后来破娃被人肉事件发生,破娃不在更新维护ssr,v2ray又成了现在的主导。

一波又一波的潮涌潮去潮再来,我也慢慢的从最初的青涩小白,变成了现在的一知半解小白。这七年中,我的想法从“只要能上网”变成了现在的“追求安全上网”,虽然这一切的折腾有可能只是一场可笑的掩耳盗铃,但是能有一层看似安全的伪装,总比赤身裸体的暴露好一些。

v2ray的websocket+tls+nginx配置模式,就是那一层伪装。

2.安装v2ray

2.1购买海外vps

在一切的开始之前,你需要购买一台海外VPS,如果还没有VPS的伙伴,可以参考我这篇文章:传送门

或者你可以随便谷歌搜索一下,如何购买vps,关于购买的vps优质教程,真的是多到数不过来。

2.2正式搭建

我们用Putty这个ssh工具来远程登录并管理我们的vps

登录vps以后,执行如下代码,进行必要的软件更新

sudo apt update && sudo apt upgrade -y

当如下的绿色光标再次出现,代表更新完成

给vps进行时间矫正,执行如下代码,这段代码的含义是删除原来位于etc的本地时间软链接,重新建立一个时区位于上海的软连接,让vps的本地时间变成我们的所在地:

p.s v2ray对于vps的时间有非常严格的要求,如果不执行时间校准,可能会出现无法使用v2ray的状况:

sudo rm /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

执行如下代码,查看时区是否校准成功

date -R

执行完上面的代码,如果vps返回了如下结尾有+0800的代码,代表时间校准成功:

我们进入到/home目录下,执行如下代码,下载v2ray官方安装程序:

p.s 之所以进入到home目录下,是因为vps的外挂硬盘一般都挂载在home所在的根目录,这方便我们日后的管理,同时也避免占用vps的内部存储

cd /home
sudo wget https://install.direct/go.sh

大概需要1s钟的时间,v2ray的官方安装程序就能下载成功,此时我们执行列表列出的代码,可以看到它,它的名字会显示为go.sh:

ls

执行如下代码,运行go.sh,v2ray会自动进行安装:

sudo bash go.sh

大概需要5-10s,v2ray会自动安装完成,当看到如下界面绿色的字样,代表v2ray已经安装完成

这个时候,v2ray已经安装完成,我们已经可以使用v2ray了,但是在使用前,为了安全我们需要删除一下v2ray自带的配置文件:

cd /etc/v2ray
sudo rm config.json

删除完v2ray原有的配置文件后,我们需要新建一个配置文件:

sudo touch config.json

配置文件创建完以后,我们用vi编辑器,编辑配置文件:

sudo vi config.json

输入完上面的代码以后,我们会进入到编辑界面,这个时候我们按键盘上的”i”,进入编辑状态,然后复制下面的代码,并把它粘贴到putty里,putty的粘贴很简单,只要右键点击一下putty的界面就可以。

在粘贴之前,请按需修改下面的port端口号,端口号的范围不要超过5位数字。

id这个栏里,需要填写自己设定的uuid,我们可以用uuid生成网站生成一个uuid:传送门,然后粘贴到id的两个引号里。

{
  "log": {
    "loglevel": "warning",
    "access": "/var/log/v2ray/access.log",
    "error": "/var/log/v2ray/error.log"
  },
  "inbounds": [
    {
      "port": 自己设定并粘贴到这里,
      "protocol": "vmess",
      "settings": {
        "clients": [
          {
            "id": "自己生成一个uuid,并粘贴到这里",
            "alterId": 64
          }
        ]
      }
    }
  ],
  "outbounds": [
    {
      "protocol": "freedom",
      "settings": {}
    }
  ]
}

修改并粘贴完上面的代码以后,我们按键盘上的esc键,然后输入:wq(请注意这里是英文格式的字母,不要用中文),在敲击回车,配置文件就已经保存成功了。

执行下面两串代码,运行v2ray并开启v2ray的开机启动功能:

sudo systemctl start v2ray
sudo systemctl enable v2ray

上面两串代码执行完以后,v2ray就已经可以正常使用了,我们给电脑下载v2ray的客户端,下载地址:传送门

然后按照下面图片这么填写就可以了:

到这里基础的v2ray安装已经完成,你现在可以用它来正常浏览谷歌这些防火墙之外的网站。如果你觉得已经够用了的话,那么下面的内容你可以忽略掉,并点击右上角的X,关掉这个页面,开始享受真正的互联网世界了~

3.配置websocket+tls+nginx模式

配置websocket tls nginx模式,也是非常简单的事,下面我将给出两种方法来配置这种伪装模式,一种是你的vps上没有安装nginx这个软件,一种是你的vps已经搭建了lnmp环境。

在这里友情提示下,也是我自己的踩坑经验,如果你的vps上已经安装了lnmp环境的话,请不要在多余安装nginx,这样可能会造成未知的错误。

在搭建之前,你需要先购买一个域名,并把域名解析到自己的vps服务器上,如果你不知道怎么购买域名,也不知道如何进行域名解析,请看我这篇文章:传送门

3.1适合小白的安装方法

p.s 如果你和我一样,是一名喜欢折腾的小白的话,请看这个标题下的内容

假定你现在已经购买完了域名,并且已经将域名解析到了vps服务器上,那么请进行下面的操作

利用acme.sh来给自己的域名颁发tls证书.

在安装acme.sh工具前,我们先安装运行acme必须的一个组件socat:

sudo apt install socat

安装完上面的socat,我们现在就可以来正式的安装acme.sh工具了,我们在root目录下安装:

sudo su
cd /root
curl  https://get.acme.sh | sh

当看到下面的install success的提示,代表acme程序已经安装完成

默认的acme.sh是一个隐藏文件夹,在Linux系统下,文件夹前面带个”.”,就代表这是一个隐藏文件夹,我们不需要在意这个,直接执行如下代码,进入到acme文件夹中:

cd .acme.sh

然后执行如下代码,开始给自己的域名颁发证书,自行替换domain name为自己的域名:

sudo ./acme.sh --issue -d domainname --standalone -k ec-256

等待代码跑完,这个时候你的域名就已经是拥有tls证书的了。这个时候我们在执行如下代码,把证书安装到v2ray的配置文件夹,并改名为v2ray.key和v2ray.cer:

p.s 证书千万不要泄露给任何人!!!自行修改下面的domainname为自己的域名!

sudo ./acme.sh --installcert -d domainname --fullchainpath /etc/v2ray/v2ray.cer --keypath /etc/v2ray/v2ray.key --ecc

执行完上面代码,我们已经将证书安装到了v2ray配置文件夹。那么现在我们就可以安装nginx程序了:

sudo apt install nginx -y

等待nginx安装完成,我们来创建一个nginx配置文件,进入到nginx配置文件夹:

cd /etc/nginx/conf.d

新建一个defalut文件,nginx会自动读取conf.d文件夹下的配置文件,前面的default名字可以随便修改,但是后面.conf一定不要修改,因为修改以后,nginx将无法读取文件内容:

sudo touch default.conf

我们利用vi编辑器来编辑default.conf文件:

sudo vi default.conf

然后输入i,将下面的内容,复制并粘贴到putty中,请自行修改下面的domainname为自己的域名,/后面的woaini,可以自定义,但是请记住,因为接下来编辑v2ray配置文件的时候,需要用到:

p.s 修改完,记得删除//以及后面的注释内容

server {
  listen  443 ssl;
  ssl on;
  ssl_certificate       /etc/v2ray/v2ray.cer; 
  ssl_certificate_key   /etc/v2ray/v2ray.key;
  ssl_protocols         TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers           HIGH:!aNULL:!MD5;
  server_name domainname;
  location /woaini {    //这里的woaini可以自定义,但请记住
        proxy_redirect off;
        proxy_pass http://127.0.0.1:8866;  //这里的8866可以自定义,但请记住
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $http_host;

        # Show realip in v2ray access.log
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

上面的内容全部粘贴以后,按键盘的esc,并输入:wq,然后回车,保存并退出

现在我们来重新建立一个v2ray的配置文件,先删除掉原来的配置文件:

cd /etc/v2ray
sudo rm config.json

现在我们来新建一个配置文件:

sudo touch config.json

然后利用vi编辑器,编辑config文件,并粘贴下面的代码:

p.s 请记得删除我下面的//注释内容,不要原封不动的复制!

{
  "inbounds": [
    {
      "port": 8866,  //这里的端口号填写上面自己设定的端口号
      "listen":"127.0.0.1",
      "protocol": "vmess",
      "settings": {
        "clients": [
          {
            "id": "", //uuid自己生成并粘贴进来
            "alterId": 64
          }
        ]
      },
      "streamSettings": {
        "network": "ws",
        "wsSettings": {
        "path": "/woaini"   //这里的路径填写上面自己设定的路径
        }
      }
    }
  ],
  "outbounds": [
    {
      "protocol": "freedom",
      "settings": {}
    }
  ]
}

填写完,按键盘上的esc,并输入:wq,回车保存退出。

执行下面代码,重启v2ray

sudo systemctl restart v2ray

v2ray客户端配置

3.2vps已经部署了lnmp环境

如果你的vps上已经部署了lnmp环境的话,并且像我一样,已经在vps上搭建了网站,那么唯一需要修改的地方,就是填写nginx的配置文件路径。其他步骤和上面的方法是一样的。

p.s 再次强调一下,如果你的vps已经安装了lnmp环境,最好不要在多余安装nginx,容易出现错误…

我们进入到网站的nginx配置文件夹:

cd /usr/local/nginx/conf/vhost

然后编辑自己的网站配置文件,比如xxxxx.com

sudo vi xxxxxx.com

然后复制下面这段代码,这里不在需要写servername

  location /woaini {    //这里的woaini可以自定义,但请记住
        proxy_redirect off;
        proxy_pass http://127.0.0.1:8866;  //这里的8866可以自定义,但请记住
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $http_host;

        # Show realip in v2ray access.log
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

然后将上面的内容粘贴到servername下,如下图:

粘贴完成以后,保存退出,然后重启一下nginx以及v2ray

sudo lnmp nginx resatrt
sudo systemctl restart v2ray

至此,所有搭建全部完成,防火墙记得开启443端口,v2ray就已经是在使用websocket+tls+nginx模式来上网了~

enjoy ~

 

——本文章为Cattypapa原创,如需转载,请注明出处——

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注