v2ray 官方网站推荐的两个教程(白话文教程新白话文教程),均使用了 /ray 路径作为 websocket+tls 配置的例子,v2ray 和代理服务器(apache、nginx、caddy)的配置文件范例都用 ray 作为路径。当访问网址的这个路径,代理服务器会将请求反向代理到 v2ray 的地址和端口。很多人搭建 v2ray 节点,照着教程手动搭建,没改配置文件,会导致很多人用 ray 作为路径。防火墙主动探测这个路径,返回 bad request ,便会发现网站伪装的 v2ray 。

之前听说防火墙会扫描 v2ray 的路径。最近我搭建了一个 v2ray 的节点,websocket + tls ,使用 caddy 作为代理服务器,静态网页伪装。搭建不到一个月时间,不到10个人使用,流量也没有很大。当我查看 caddy 的日志,发现竟然反复被 GFW 探测!!连我这个不起眼的节点,都被探测了,说明防火墙很积极。并且不是一次两次,是一两天就探测一次,每次会有三四个中国大陆的 ip 访问 ray 这个路径。也许是最近正在开会,所以这么积极。

日志文件如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2020/05/18 06:49:10 39.186.xx.31 - - [18/May/2020:06:49:10 -0400] "GET /de116dfa HTTP/1.1" 200 0
2020/05/18 06:49:12 39.186.xx.31 - - [18/May/2020:06:49:12 -0400] "GET /de116dfa HTTP/1.1" 200 0
2020/05/18 06:50:18 39.186.xx.31 - - [18/May/2020:06:50:18 -0400] "GET /de116dfa HTTP/1.1" 200 0
2020/05/18 06:50:19 39.186.xx.31 - - [18/May/2020:06:50:19 -0400] "GET /de116dfa HTTP/1.1" 200 0
2020/05/18 06:50:21 39.186.xx.31 - - [18/May/2020:06:50:21 -0400] "GET /de116dfa HTTP/1.1" 200 0
2020/05/18 06:50:22 39.186.xx.31 - - [18/May/2020:06:50:22 -0400] "GET /de116dfa HTTP/1.1" 200 0
2020/05/18 06:50:23 39.186.xx.31 - - [18/May/2020:06:50:23 -0400] "GET /de116dfa HTTP/1.1" 200 0
2020/05/18 06:50:25 39.186.xx.31 - - [18/May/2020:06:50:25 -0400] "GET /de116dfa HTTP/1.1" 200 0
2020/05/18 06:50:26 39.186.xx.31 - - [18/May/2020:06:50:26 -0400] "GET /de116dfa HTTP/1.1" 200 0
2020/05/18 06:50:27 39.186.xx.31 - - [18/May/2020:06:50:27 -0400] "GET /de116dfa HTTP/1.1" 200 0
2020/05/18 06:50:28 39.186.xx.31 - - [18/May/2020:06:50:28 -0400] "GET /de116dfa HTTP/1.1" 200 0
2020/05/18 06:50:30 39.186.xx.31 - - [18/May/2020:06:50:30 -0400] "GET /de116dfa HTTP/1.1" 200 0
2020/05/18 06:50:32 39.186.xx.31 - - [18/May/2020:06:50:32 -0400] "GET /de116dfa HTTP/1.1" 200 0
2020/05/18 06:50:33 39.186.xx.31 - - [18/May/2020:06:50:33 -0400] "GET /de116dfa HTTP/1.1" 200 0
2020/05/18 06:50:34 39.186.xx.31 - - [18/May/2020:06:50:34 -0400] "GET /de116dfa HTTP/1.1" 200 0
2020/05/18 06:50:35 39.186.xx.31 - - [18/May/2020:06:50:35 -0400] "GET /de116dfa HTTP/1.1" 200 0
2020/05/18 06:51:07 39.186.xx.31 - - [18/May/2020:06:51:07 -0400] "GET /de116dfa HTTP/1.1" 200 0
2020/05/18 06:51:16 39.186.xx.31 - - [18/May/2020:06:51:16 -0400] "GET /de116dfa HTTP/1.1" 200 0
2020/05/18 06:51:38 39.186.xx.31 - - [18/May/2020:06:51:38 -0400] "GET /de116dfa HTTP/1.1" 200 0
2020/05/18 06:55:52 27.211.xx.38 - - [18/May/2020:06:55:52 -0400] "GET /ray HTTP/1.1" 404 14
2020/05/18 06:55:58 58.249.xx.28 - - [18/May/2020:06:55:58 -0400] "GET /ray HTTP/1.1" 404 14
2020/05/18 06:55:59 125.84.xx.232 - - [18/May/2020:06:55:59 -0400] "GET /ray HTTP/1.1" 404 14
2020/05/18 06:56:01 222.82.xx.174 - - [18/May/2020:06:56:01 -0400] "GET /ray HTTP/1.1" 404 14
2020/05/18 09:40:38 157.55.xx.220 - - [18/May/2020:09:40:38 -0400] "GET / HTTP/1.1" 200 5471
2020/05/18 09:41:58 157.55.xx.157 - - [18/May/2020:09:41:58 -0400] "GET / HTTP/1.1" 200 5471
2020/05/18 09:42:07 207.46.xx.43 - - [18/May/2020:09:42:07 -0400] "GET /js/webslides.min.js HTTP/1.1" 200 7953
2020/05/18 09:43:01 157.55.xx.19 - - [18/May/2020:09:43:01 -0400] "GET /robots.txt HTTP/1.1" 404 38

可以看到有4个请求访问的是 ray 路径,这是防火墙的探测。我并没有使用 ray 作为代理 v2ray 的路径,也没有在这个路径放置静态网页,而是使用一串随机字符串,返回给防火墙的是 404 ,估计防火墙并没有发现我的秘密。

建议大家手动搭建时,不要用教程中的路径,而使用一串不容易猜到的随机字符串。还有 UUID 也是,别用教程中的,自己生成一个。当然,很多人用一键安装脚本,就没有这个问题了,一键安装脚本一般会生成随机路径。

我的 caddy 配置文件如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
http://www.xxxxxx.xyz:80 {
  redir https://www.xxxxxx.xyz:443{url}
  }
https://www.xxxxxx.xyz:443 {
  gzip
  log /var/log/caddy/www.log
  tls admin@www.xxxxxx.xyz
  root /www
  proxy /de116dfa localhost:3692 {
    websocket
    header_upstream -Origin
  }
  fastcgi / /run/php/php7.0-fpm.sock php
}