Linuxword Global
当前位置: 闲言闲语 > V2Ray安装配置VMESS+TLS及VMESS+TLS+WS
VPS :Ubuntu 2020 x64 
 
一、VMESS+TLS安装配置

1.1. 时间校准

对于 V2Ray,它的验证方式包含时间,就算是配置没有任何问题,如果时间不正确,也无法连接 V2Ray 服务器的,服务器会认为你这是不合法的请求。所以系统时间一定要正确,只要保证时间误差在一分钟之内就没问题。
1.2. 服务器端安装
下载安装脚本
curl -O https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh  
执行安装:

bash install-release.sh 

如果安装不成功脚本会有红色的提示语句,这个时候你应当按照提示除错,除错后再重新执行一遍脚本安装 V2Ray。

设置开机自启动 V2Ray:
systemctl enable v2ray
使用以下命令启动 V2Ray:
systemctl start v2ray

停止运行 V2Ray:

systemctl stop v2ray

重启 V2Ray:

systemctl restart  v2ray

在首次安装完成之后,V2Ray 不会自动启动,需要手动运行上述启动命令。而在已经运行 V2Ray 的 VPS 上再次执行安装脚本,安装脚本会自动停止 V2Ray 进程,升级 V2Ray 程序,然后自动运行 V2Ray。在升级过程中,配置文件不会被修改。

更新 V2Ray 的方法是再次执行安装脚本!

1.3.注册一个域名

如果已经注册有域名了可以跳过。 域名有免费的有付费的,总体来说付费的会优于免费的。

1.4. 证书生成

使用 TLS 需要证书,证书也有免费付费的,同样的这里使用免费证书,证书认证机构为 Let's Encrypt。 证书的生成有许多方法,这里使用的是比较简单的方法:使用 acme.sh 脚本生成,本部分说明部分内容参考于此处。
证书有两种,一种是 ECC 证书(内置公钥是 ECDSA 公钥),一种是 RSA 证书(内置 RSA 公钥)。简单来说,同等长度 ECC 比 RSA 更安全,也就是说在具有同样安全性的情况下,ECC 的密钥长度比 RSA 短得多(加密解密会更快),强烈建议使用 ECC 证书。
证书生成只需在服务器上操作。

1.4.1. 安装 acme.sh

执行以下命令,acme.sh 会安装到 ~/.acme.sh 目录下。

curl  https://get.acme.sh | sh

可以创建 一个 bash 的 alias, 方便使用

alias acme.sh=~/.acme.sh/acme.sh
可能要安装依赖
apt install socat -y

1.4.2. 使用 acme.sh 生成证书

选择安装证书的类型:由于acme.sh将默认安装的证书类型从letsencrypt换成了zerossl,想要继续使用 letsencryp 证书,有两种解决方案。
第一种是签发证书时指定 CA
acme.sh  --issue  -d mydomain.me  --server  letsencrypt
另一种是直接更改默认 CA,本博文使用这种方式。
acme.sh --set-default-ca  --server  letsencrypt
如果设置了默认的 CA,以后就算版本升级也将一直默认使用指定的 CA。

证书生成

以下的命令会临时监听 80 端口,请确保执行该命令前没有被占用

acme.sh  --issue -d mydomain.me   --standalone -k ec-256 
-k 表示密钥长度,后面的值可以是 ec-256 、ec-384、2048、3072、4096、8192,带有 ec 表示生成的是 ECC 证书,没有则是 RSA 证书。在安全性上 256 位的 ECC 证书等同于 3072 位的RSA 证书。
 
查看已经安装的证书、申请日期、更新日期等
acme.sh --list

证书更新

由于 Let's Encrypt 的证书有效期只有 3 个月,因此需要 90 天至少要更新一次证书,acme.sh 脚本会每 60 天自动更新证书。也可以手动更新。

手动更新 ECC 证书,执行:

acme.sh --renew -d mydomain.me --force --ecc

如果是 RSA 证书则执行:

acme.sh --renew -d mydomain.me --force

1.4.3. 安装证书和密钥

证书生成以后, 接下来需要把证书 copy 到真正需要用它的地方(目录可以自己选择)
mkdir -p /root/cert
acme.sh  --installcert  -d  mydomain.me  --ecc  \
        --key-file   /root/cert/private.key \
        --fullchain-file /root/cert/cert.crt 
 以上是80 端口空闲的申请方式,不便之处是80端口被占用的话,是不能自动更新证书的。
更方便的是DNS方式申请,参考这里 第五点。

1.5. 配置 V2Ray

1.5.1. 服务器端json配置文件

    编辑配置文件 vi /usr/local/etc/v2ray/config.json
{
  "log": {
      "loglevel": "warning"
    },
"inbounds": [
    {
      "port": 443, 
      "protocol": "vmess",    
      "settings": {
        "clients": [
          {
            "id": "23ad6b10-8d1a-40f7-8ad0-e3e35cd38297",  
            "alterId": 0
          }
        ]
      },
      "streamSettings": {
        "network": "tcp",
        "security": "tls", 
        "tlsSettings": {
          "certificates": [
            {
              "certificateFile": "/root/cert/cert.crt", 
              "keyFile": "/root/cert/private.key" 
            }
          ]
        }
      }
    }
  ],
  "outbounds": [
    {
      "protocol": "freedom",
      "settings": {}
    }
  ]
}

1.5.2. 客户端json配置文件

{
  "inbounds": [
    {
      "port": 1080,
      "protocol": "socks",
      "sniffing": {
        "enabled": true,
        "destOverride": ["http", "tls"]
      },
      "settings": {
        "auth": "noauth"
      }
    }
  ],
  "outbounds": [
    {
      "protocol": "vmess",
      "settings": {
        "vnext": [
          {
            "address": "mydomain.me", 
            "port": 443,
            "users": [
              {
                "id": "23ad6b10-8d1a-40f7-8ad0-e3e35cd38297",
                "alterId": 0
              }
            ]
          }
        ]
      },
      "streamSettings": {
        "network": "tcp",
        "security": "tls" 
      }
    }
  ]
}

1.5.2.1 客户端json配置文件(绕过国内域名及IP)

上面的客户端配置是全局的,也就是说访问所有的网站都将翻墙。但v2ray可以配置路由,绕过国内域名及IP,将配置文件改成如下即可(服务器端无需修改)
{
  "inbounds": [
    {
      "port": 1080,
      "protocol": "socks",
      "sniffing": {
        "enabled": true,
        "destOverride": ["http", "tls"]
      },
      "settings": {
        "auth": "noauth"
      }
    }
  ],
  "outbounds": [
    {
      "protocol": "vmess",
      "settings": {
        "vnext": [
          {
            "address": "mydomain.me", 
            "port": 443,
            "users": [
              {
                "id": "23ad6b10-8d1a-40f7-8ad0-e3e35cd38297",
                "alterId": 0
              }
            ]
          }
        ]
      },
      "streamSettings": {
        "network": "tcp",
        "security": "tls" 
      }
    },
 {
      "protocol": "freedom",
      "settings": {},
      "tag": "direct" 
    }    
  ],
  "routing": {
    "domainStrategy": "IPOnDemand",
    "rules": [
      {
        "type": "field",
        "outboundTag": "direct",
        "domain": ["geosite:cn"] 
      },
      {
        "type": "field",
        "outboundTag": "direct",
        "ip": [
          "geoip:cn", 
          "geoip:private" 
        ]
      }
    ]
  }
}
          
说明:配置文件很容易出错,最好还是使用 V2Ray 提供的配置检查功能(test 选项),因为可以检查 JSON 语法错误外的问题。

/usr/local/bin/v2ray  -test -config /usr/local/etc/v2ray/config.json
    一般来说,按照以上步骤操作完成,V2Ray 客户端能够正常联网说明 TLS 已经成功启用。但要是有个可靠的方法来验证是否正常开启 TLS 无疑更令人放心。
打开 Qualys SSL Labs's SSL Server Test,在 Hostname 中输入你的域名,点提交,过一会结果就出来了。
这是对于你的 TLS/SSL 的一个总体评分,我这里评分为 A,看来还不错。有这样的界面算是成功了。
7

 
最后,启动并设置客户端,就可以自由上网了。

二、VMESS+TLS+WS安装配置

2.1. 安装服务器端v2ray及申请证书,同上

2.2. 服务器端配置文件

编辑配置文件  vi /usr/local/etc/v2ray/config.json,实际使用中需删除注释
{
 "log": {
        "loglevel": "warning"
    },
"inbounds": [
    {
      "port": 10000,     //端口可设置任何未被占用的,但必须与nginx配置文件中的一致
      "listen":"127.0.0.1",
      "protocol": "vmess", 
      "settings": {  
        "clients": [
          {
            "id": "23ad6b10-8d1a-40f7-8ad0-e3e35cd38297", //与客户端保持一致
            "alterId": 0      //与客户端一致
          }
        ]
      },
      "streamSettings": {
        "network": "ws",
        "wsSettings": {
        "path": "/rayghrh"  //与nginx配置文件中的location地址保持一致
        }
      }
    }
  ],
  "outbounds": [
    {
      "protocol": "freedom",
      "settings": {}
    }
  ]
}
测试配置文件
/usr/local/bin/v2ray  -test -config /usr/local/etc/v2ray/config.json

2.3. 安装配置nginx

apt install nginx -y
systemctl  start  nginx 
systemctl enable nginx
配置文件 vi /etc/nginx/nginx.conf
user www-data;
worker_processes 1;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
    worker_connections  2048;
}
http {
    server_tokens off;
    include       mime.types;
    default_type  application/octet-stream;
    access_log off;
    sendfile        on;
    tcp_nopush     on;
    tcp_nodelay on;
    keepalive_timeout  65;
    gzip  on;
    client_max_body_size 10m;
    client_body_buffer_size 128k;

 server {
        listen       80 default_server;
        server_name  mydomain.me;
        root         /usr/share/nginx/html;
        return 301 https://$server_name$request_uri;
        error_page 404 /404.html;
            location = /40x.html {
        }
        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
}

server {
  listen  443 ssl;
  server_name           mydomain.me;
  ssl_certificate      /root/cert/cert.crt;
  ssl_certificate_key  /root/cert/private.key; 

  ssl_protocols TLSv1.2 TLSv1.3;
  ssl_ciphers HIGH:!aNULL:!MD5;
  ssl_prefer_server_ciphers on;
   #WS协议转发
   location /raygrgf {       #任意字母及数字组合,但必须与v2ray服务端配置文件的path地址一致
        proxy_redirect off;
        proxy_pass http://127.0.0.1:10000;   #端口与v2ray服务端配置文件中的一致
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $http_host;
        }
  #其他请求转发
  location / {
       proxy_pass http://127.0.0.1:80; #建议配置可以正常访问,实现伪装
    }
} 
}
 测试配置文件

/usr/sbin/nginx -t -c /etc/nginx/nginx.conf
 一切正常的话,重启下VPS

2.4. 客户端json配置文件

{
  "inbounds": [
    {
      "port": 1080,
      "listen": "127.0.0.1",
      "protocol": "socks",
      "sniffing": {
        "enabled": true,
        "destOverride": ["http", "tls"]
      },
      "settings": {
        "auth": "noauth",
        "udp": false
      }
    }
  ],
  "outbounds": [
    {
      "protocol": "vmess",
      "settings": {
        "vnext": [
          {
            "address": "mydomain.me",
            "port": 443,
            "users": [
              {          
                "id": "23ad6b10-8d1a-40f7-8ad0-e3e35cd38297",    
                "alterId": 0
              }
            ]
          }
        ]
      },
      "streamSettings": {
        "network": "ws",
        "security": "tls",
        "wsSettings": {
          "path": "/rayghrh"   //与服务器端保持一致
        }
      }
    }
  ]
}
三、客户端安装配置
     1、官方这里下载 V2Ray 的 Windows 压缩包。 下载解压之后会有 v2ray.exe 和 config.json 这两个文件,v2ray.exe 是运行 v2ray 的文件,config.json 是配置文件。你可以通过记事本或其它的文本编辑器查看和修改。
    Windows下v2ray开机自动运行设置。
   新建vbs文件v2raystart.vbs,写入以下内容并保存:
set ws=WScript.CreateObject("WScript.Shell")
ws.Run "F:\v2ray\v2ray.exe  -c F:\v2ray\config.json",0
    文件路径修改为自己电脑上的实际路径。
win 10 下直接将v2raystart.vbs文件复制到其开机启动文件夹即可
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
快捷命令:按下 win+R 打开运行输入:shell:Common Startup
浏览器里设置代理,也可使用 SwitchyOmega插件等 。
    2、Clash 是一款用 Go 语言编写的、基于规则的隧道(Tunnel )程序,它支持多种加密通信协议和跨平台,目前已知 Clash 核心支持的加密协议就有 Vmess、Shadowsocks、Trojan(Go)、Snell 等。它可基于规则进行分流,默认支持socks及http代理。在windows下有相应的软件clash for windows,但可惜没有开源。有强迫症的朋友其实也可以在命令行下使用。
  将下载的windows对应版本解压到制定目录下如F:\clash ,在此目录编辑配置文件config.yaml,官方配置文档参考这里。以下是个简单的配置,根据自己实际情况修改
port: 7890
socks-port: 7891
redir-port: 7892
allow-lan: false
mode: Rule
log-level: warning
external-controller: 127.0.0.1:9090
secret: "123456"
proxies:
- name: "v2ray"
type: vmess
server: domain.com
port: 443
uuid: uuid
alterId: 0
cipher: auto
udp: true
tls: true
network: ws
skip-cert-verify: true
ws-opts:
path: /your-ws-path
headers:
Host: domain.com
proxy-groups:
- name: Auto - UrlTest
type: url-test
proxies:
- "v2ray"
url: https://cp.cloudflare.com/generate_204
interval: "600"
tolerance: "150"
- name: Proxy
type: select
proxies:
- Auto - UrlTest
- DIRECT
- "v2ray"
rules:
- GEOIP,CN,DIRECT
- MATCH,Proxy
开机启动设置参考第1点。新建vbs文件clashstart.vbs,写入以下内容并保存,复制到其开机启动文件夹
set ws=WScript.CreateObject("WScript.Shell")
ws.Run "F:\clash\clash.exe  -f  F:\clash\config.yaml",0
      3、v2rayN,支持v2ray,xray,trojan(trojan-go)的windows下图形客户端。v2rayA ,支持v2ray,xray,trojan(trojan-go)的linux和windows下图形客户端。

「梦想一旦被付诸行动,就会变得神圣,如果觉得我的文章对您有用,请帮助本站成长」

赞(3) 打赏
一分也是爱

支付宝扫一扫打赏

微信扫一扫打赏

上一篇:

下一篇:

相关推荐

博客简介

本站CDN采用VmShell免费提供离中国大陆最近的香港CMI高速网络做支撑,ToToTel打造全球最快速的边沿网络支撑服务,具体详情请见 :https://vmshell.com/ 以及 https://tototel.com/,网站所有的文件和内容禁止大陆网站搬迁复制,谢谢,VPS营销投稿邮箱: [email protected],我们免费帮大家发布,不收取任何费用,请提供完整测试文稿!

精彩评论

友情链接

他们同样是一群网虫,却不是每天泡在网上游走在淘宝和网游之间、刷着本来就快要透支的信用卡。他们或许没有踏出国门一步,但同学却不局限在一国一校,而是遍及全球!申请交换友链

站点统计

  • 文章总数: 2306 篇
  • 草稿数目: 12 篇
  • 分类数目: 6 个
  • 独立页面: 0 个
  • 评论总数: 2 条
  • 链接总数: 0 个
  • 标签总数: 5836 个
  • 注册用户: 139 人
  • 访问总量: 8,682,855 次
  • 最近更新: 2024年4月2日