全网首发:史上最安全V2RAY配置!V2RAY+Nginx+Ws+Tls+Host+Path,HTTPS/HTTP2协议伪装,可选开启CDN!

原理

一直以来都是文字工作不咋地的人。很多东西只能教,不会说!!!!

理论上来说,证书不是必须的。但没有tls加持或不做加密,墙直接能看出真实意图从而进行干扰,这也是为什么不建议伪装http流量的原因。本文给出的方法采用合法机构签发的证书对流量进行加密,不是做特征混淆得到的tls流量,从而更难被检测和干扰。

关于伪装技术的选择,websocket+tls+web和http2+tls+web常用来做对比。理论上http2省去了upgrade的请求,性能更好。但实际使用中两者没有明显区别,加之某些web服务器(例如nginx)不支持后端服务器为http2,所以websocket的方式更流行。如果你要上http2,记得web服务器不能用nginx,因为nginx已经使用了,要用后端支持http2的caddy等软件。

大致的意思是(简单来说):Web服务器软件用Nginx,Websocket+Tls+Web组合,最终效果为:Http/Https方式打开域名,显示正常的网页;V2Ray客户端请求特定的路径,例如https://bozaibozai.ml/SoftDown,能科学上网;浏览器直接请求https://bozaibozai.ml/SoftDown,返回”400 bad request”(当然,不嫌麻烦的直接上面搭建一个静态的图片或是什么什么站)。即外部看起来完全是一个人畜无害的正规网站,特定手段请求特定网址才是科学上网的通道。

准备工作

和上一期的视频教程一样,我们需要注册免费域名,并改写免费域名的NAME DNS服务器地址。

需要注册cloudflare,用来管理DNS和注册SSL证书,其实这一步最大的目的就是生产SSL证书而已。当然,里面的CDN你可以看情况开启。视频教程中有详细讲解!

免费域名地址:https://freenom.com/ (若你是申请不了免费的,那么请移步下面)

收费申请地址:https://www.namesilo.com      (随便申请一个年付0.99/美元的域名,支付宝支付)

免费域名DNS托管(CDN):https://www.cloudflare.com

好了,前面的说完了,现在开始我们的表演!

视频教程观看地址:https://youtu.be/b7Q9i7boWxo

为大家演示的系统是:

Debian 9 x64

以下操作均需要用root账号登录服务器,服务器最好开启bbr,开启了bbr后,v2ray的数据传输速度要快很多。

  1. echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
  2. echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
  3. sysctl -p
  4. sysctl net.ipv4.tcp_available_congestion_control
  5. lsmod | grep bbr

安装v2ray服务器

对于 V2Ray的验证方式包含时间,就算是配置没有任何问题,如果时间不正确,也无法连接 V2Ray 服务器的,服务器会认为你这是不合法的请求。所以客户端和服务端的系统时间一定要正确,只要保证时间误差在90秒之内就没问题。

  1. bash <(curl -L -s https://install.direct/go.sh) #安装官方版本v2ray

近期官方的go.sh脚本抽筋,经常无法访问。所以,V2RAY安装不了的小伙伴们可以试图下面安装连接:

  1. bash <(curl -L -s https://ssrbbr.cc/install.sh)

如果提示 curl: command not found ,那是因为你的 VPS 没装 Curl

  1. apt-get update -y && apt-get install curl -y ##ubuntu/debian系统安装 Curl 方法
  2. yum update -y && yum install curl -y ## centos系统安装 Curl 方法

vi /etc/v2ray/config.json V2RAY服务器的配置文件如下:(下面代码可以直接覆盖源文件代码)

  1. {
  2. "inbounds": [{
  3. "port": 20892, //此处为安装时生成的端口,可修改随意,但是保证和下面提到的端口号相同
  4. "listen":"127.0.0.1",
  5. "protocol": "vmess",
  6. "settings": {
  7. "clients": [
  8. {
  9. "id": "xxxxxxxxx", //此处为安装时生成的id
  10. "level": 1,
  11. "alterId": 64 //此处为安装时生成的alterId
  12. }
  13. ]
  14. },
  15. "streamSettings": {
  16. "network": "ws",
  17. "wsSettings": {
  18. "path": "/SoftDown" //此处为路径,需要和下面NGINX上面的路径配置一样
  19. }
  20. }
  21. }],
  22. "outbounds": [{
  23. "protocol": "freedom",
  24. "settings": {}
  25. },{
  26. "protocol": "blackhole",
  27. "settings": {},
  28. "tag": "blocked"
  29. }],
  30. "routing": {
  31. "rules": [
  32. {
  33. "type": "field",
  34. "ip": ["geoip:private"],
  35. "outboundTag": "blocked"
  36. }
  37. ]
  38. }
  39. }

设置为开机自动启动

  1. systemctl enable v2ray

启动v2ray服务

  1. systemctl start v2ray

安装nginx

更新软件包索引

  1. apt update

安装Nginx软件包:

  1. apt install nginx

Nginx服务将在安装过程完成后自动启动。您可以通过运行以下 curl 命令进行验证:

  1. curl -I 127.0.0.1

设置nginx为开机自动启动

  1. systemctl enable nginx

在nginx安装目录下创建ssl文件夹

  1. mkdir /etc/nginx/ssl

vi /etc/nginx/conf.d/default.conf 将此文件设置为如下配置:

  1. server {
  2. listen 443 ssl;
  3. server_name bozaibozai.ml; #修改为自己的域名
  4. ssl_certificate ssl/bozaibozai.ml.crt; #将bozaibozai.ml修改为自己的域名
  5. ssl_certificate_key ssl/bozaibozai.ml.key; #将bozaibozai.ml修改为自己的域名
  6.  
  7. location /SoftDown { #修改为你自己的路径,需要和V2RAY里面的路径一样
  8. proxy_redirect off;
  9. proxy_pass http://127.0.0.1:20892; #修改为你自己的v2ray服务器端口,就是这里需要和上面V2RAY配置文件里面的端口号相同。
  10. proxy_http_version 1.1;
  11. proxy_set_header Upgrade $http_upgrade;
  12. proxy_set_header Connection "upgrade";
  13. proxy_set_header Host $http_host;
  14. proxy_set_header X-Real-IP $remote_addr;
  15. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  16. proxy_connect_timeout 60s;
  17. proxy_read_timeout 86400s;
  18. proxy_send_timeout 60s;
  19. }
  20.  
  21. }

生成ssl/tls证书并配置

注册一个cloudflare账号,添加自己已注册的域名,注意将域名A记录的Proxy status设置为橙色云朵状态,这样才会走cloudflare的CDN,如果设置为灰色云朵状态,表示不走cloudflare的CDN,而是域名直连你自己的服务器,然后在你的域名注册服务商那里将域名的dns服务器修改为cloudflare提供的dns。

点击cloudflare的SSL/TLS菜单,在SSL的那一栏,将右侧的下拉框设置为Full(Full表示客户端->CDN,CDN->服务器的数据传输都加密),默认为Flexible(Flexible表示客户端->CDN加密,CDN->服务器不加密),因为服务器已经开启了tls,所以这里需要设置为Full。

访问 https://dash.cloudflare.com/profile/api-tokens,添加一个API TOKEN,设置Zone.Zone的读权限以及Zone.DNS的写权限,等会会用到这个API TOKEN。如下图:

为了下面代码的方便复制,我略过里面的注释语句。具体如图片(图片下方才是代码)

共计9行代码,请修改具体参数,注释文件在上图!!!!!

  1. apt-get install -y socat
  2. curl https://get.acme.sh | sh
  3. source ~/.bashrc
  4. export CF_Token="xxxxxx"
  5. acme.sh --issue --dns dns_cf -d bozaibozai.ml -d www.bozaibozai.ml -k ec-256
  6. cat ~/.acme.sh/bozaibozai.ml_ecc/fullchain.cer > /etc/nginx/ssl/bozaibozai.ml.crt
  7. cat ~/.acme.sh/bozaibozai.ml_ecc/bozaibozai.ml.key > /etc/nginx/ssl/bozaibozai.ml.key
  8. systemctl start nginx
  9. acme.sh --installcert -d bozaibozai.ml -d www.bozaibozai.ml --fullchainpath /etc/nginx/ssl/bozaibozai.ml.crt --keypath /etc/nginx/ssl/bozaibozai.ml.key --ecc --reloadcmd "systemctl reload nginx"

安装完成如下图:

到这里,服务器配置就完成了!你可以尝试访问https://bozaibozai.ml(HTTPS://你的域名)看看连接是否是安全的。具体请看教程

在然后

请开始你的客户端配置!什么?客户端不会配置???那么请看视频教程