目前更稳定的楼梯方案
以前就听说过这个工具。但当时整体看上去部署好麻烦,而且我的工具又并不是不稳定,再加上当时看这玩意儿要想做到只转发境外又很麻烦,所以也就一直没在意过它。但最近越来越发现,我的努比亚仿佛天生就屏蔽ss的流量,所以感觉可能还是换一换工具能好一些。说干就干,开始迁移
介绍
V2Ray
是近几年十分流行的网络工具,其功能强大,用途不限于如此,但因其能有效跨越而广为人知。有如下大放异彩的特点:
- 开源。是
Project V
的核心工具,源代码开源; - 多协议支持。传输层支持TCP、mKCP、WebSocket等,上层协议支持Socks、ss、以及自定义的
VMess
等; - 可同时支持多个入站和出站协议,每个协议独立工作;
- 多平台支持。原生支持Windows、Linux、MacOS三大常用平台,安卓、iOS两大移动平台有丰富的第三方工具;
- 隐蔽性。流量可伪装成网页流量,更难被检测和干扰。
一句话总结:更好更强大,但更难上手和用好。
部署
现在已经有一键脚本。直接使用即可(Linux)。
curl -L -s https://install.direct/go.sh | bash
安装完成后,配置文件为/etc/v2ray/config.json
,其中,”inbounds”下的这几项信息需要记录:port(端口
)、clients中的id(用户id
)和alterId(额外id
),它们将在配置客户端时用到。
在VPS中放行上面提到的port
,然后启动服务:
systemctl enable v2ray
systemctl start v2ray
即可使用。
但当前是没有什么伪装措施的,或者说,仅仅是使用了默认的vmess方法进行“混淆”。一旦检测到,那么必然就会露馅。所以接下来进行进一步的“打扮”。
伪装
通过一个正常的网站进行伪装,一来可以合理的解释为什么会有数据传送到这个ip上;二来可以走一层cdn,进一步伪装服务器ip和真实的作用;三来可以套上一层https,数据包就又加密了一次;四来,如果你的vps被屏蔽了,套上cdn还能让你的vps起死回生。
但这需要你有一个域名。
至于解析和cdn,我选择通过cloudflare来实现。当然也可以用其他的,比如直接使用域名商的域名解析。使用cf的好处在于可以直接提供cdn和https,省去了另行配置cdn和申请域名签名的步骤。
当然,如果有更好的cdn服务商就不要用cloudflare了…都快用烂了。
先将域名解析配置好。一级域名肯定是你自己的(比如是123.com
)至于使用哪个二级域名无所谓(比如v.123.com
,接下来以这个域名为例),或者直接使用主域名也可以。注意把cf的小云彩点亮以使用cdn功能——嫌慢的话就点灭,但https需要你为域名申请一个证书。
切换到SSL/TLS
标签,将加密模式切换到Flexible
;切换到Edge Certificates
子标签,启动Always user HTTPS
至此,cf设置完成,接下来设置服务器。
进入到你服务器的宝塔面板(我一直在用宝塔面板,如果你使用单纯的环境,相信接下来的东西你也是会配置的),进行如下操作:
- 新建上述域名的网站。静态站还是动态站无所谓,反正有一个网站就行,这个网站也可以正常使用。比如说浏览器访问是你公司的wiki站点,实际上在提供v2ray服务
确定后,打开该站点的设置页—配置文件,在结尾的}前增加下述代码(开头是location 不知道为啥l总是显示不出来)
location /v2ray { #使用软件访问v.123.com/v2ray,会连接到v2ray服务,浏览器访问则返502错误。这里的路径可以自定义 proxy_redirect off; proxy_pass http://127.0.0.1:12345; #v2ray的端口。应该与前边提到的port相同 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $Host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
其实就是反代,直接在网站设置的反向代理标签设置也可以。
修改前边生成的
config.json
,在inbounds
下增加相关的配置,最终类似于这样:"inbounds": [{ "port": 12345, "protocol": "vmess", "settings": { "clients": [ { "id": "xxxxx", "level": 1, "alterId": 64 } ] }, #上面的都是自动生成的,不必修改 "streamSettings": { # 载体配置段,设置为websocket "network": "ws", "wsSettings": { "path": "/v2ray" # 与nginx中的路径保持一致 } }, "listen": "127.0.0.1" # 出于安全考虑,建议只接受本地链接 }],
注意:json文件不支持注释,上述配置中”#”号及后续内容都要删掉。
- 配置无误后,重启v2ray服务:
systemctl restart v2ray
接下来浏览器访问域名,确定是https访问,并且出现首页内容,而URL输入映射到v2ray的地址(如前面假设的 v.123.com/v2ray),返回 Bad Request
,则几乎可以说明配置完成了。接下来就到客户端了。
使用
Win和手机端的软件网上有很多,所以这里只说设置的内容
- 地址/address:前边设置的域名(这里的例子应该写 v.123.com)
- 端口/port:443
- id:inbounds中的id
- 额外id/alterId:inbounds中的alterId
- 加密方式/Security:auto
- 传输协议/network:ws
- 伪装类型/type:none
- 伪装域名留空
- path:前边在nginx中设置的路径(这里的例子应该写/v2ray)
- 启用tls传输
至于Linux,archlinuxcn源提供qv2ray,自带流量区分,即只处理出境流量。安装使用这个软件即可,设置同上。
"切换到 SSL/TLS 标签,将加密模式切换到 Flexible;切换到 Edge Certificates 子标签,启动 Always user HTTPS"
其中Always user HTTPS 是 Always use —— aha 于 发表。 回复TA