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 ~