LNMP环境提供了站点必需的数据库和nginx,但是配置V2Ray混淆站点也会用到nginx,本文简要指导如何在保证数据安全传输的前提下实现新旧站点共存。
一、目的
原有WordPress站点,由于本身部署了lnmp生产环境,也就是说有了nginx,我们的目的是实现V2Ray+nginx+websocket+TLS1.3+原有Word Press网站的共存,所以nginx不仅代理了原有站点,也充当了通过path传输数据给V2Ray的搬运工。
为了更加安全和方便,新的V2Ray前台伪装站点与原站点原则上应相互独立互不影响。
二 、原理
在部署LNMP环境后,我们自建了wordpress站点。数据传输通过nginx配置文件的特定path路径进行指定,Nginx通过内网inbound指定的port端口将数据转发给V2Ray,由V2Ray负责实际数据的接获。客户端访问特定path才能传输数据;直接请求该特定路径会返回Bad request的错误结果。
而访问伪装WEB站点会正常显示为一个普通的站点,达到混淆伪装的效果。通过合法机构签发的SSL证书,透过TLS 1.3协议,在443端口下,客户端到服务端nginx的数据是端对端全程加密的。补充一点,也可以再套上一层CDN,来达到掩藏真实ip或实现可能的加速的效果,这里不加讨论。
如此一来,我们实现了V2Ray+nginx+websocket+TLS 1.3+WEB的协作方式,这是由于nginx作为原有lnmp的一员,只要配置好nginx文件就可以实现新旧站点共存。
三、步骤
- 将域名解析到服务器。
- 安装Linux操作系统。
- 安装部署LNMP环境。添加虚拟机站点,申请SSL证书。
- 搭建wordpress原有站点并导入数据库。
- 安装V2Ray。
- 配置V2Ray配置文件,指定端口、id、额外id、路径、传输方式为ws。
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 28 29 30 31 32 33 34 35 |
{ "log": { "loglevel": "warning", "access": "/var/log/v2ray/access.log", "error": "/var/log/v2ray/error.log" }, "inbounds": [ { "port": 27531, "listen":"127.0.0.1", "protocol": "vmess", "settings": { "clients": [ { "id": "e8987ce5-fr5c-4ac2-ao20-9r1d3e45f032", "alterId": 64 } ] }, "streamSettings": { "network": "ws", "wsSettings": { "path": "/fuckgirlfriendway" } } } ], "outbounds": [ { "protocol": "freedom", "settings": {} } ] } |
7.配置Nginx文件,将下列代码插入nginx文件中,注意端口、路径要保持一致。
1 2 3 4 5 6 7 8 9 |
location /fuckgirlfriendway { proxy_redirect off; proxy_pass http://127.0.0.1:27531; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $http_host; } |
8.安装BBR或锐速。
9.创建数据库,搭建混淆站点。
四、测试
1 2 3 4 5 6 7 8 |
# 重启V2Ray systemctl restart v2ray # 设置V2Ray开机启动 systemctl enable v2ray # 启动V2Ray systemctl start v2ray # 重启lnmp lnmp reload |
WordPress常用命令
1 2 3 4 5 6 7 8 9 10 |
# 解除.user.ini限制(执行后可将其删掉) chattr -i /home/wwwroot/abc.com/.user.ini # 解除网站目录权限限制,以安装主题和插件 chown -R www /home/wwwroot/abc.com # 添加虚拟主机 lnmp vhost add # 删除虚拟主机 lnmp vhost del # 解压缩特定目录下的tar文件到指定目录 tar -zxvf /home/wwwroot/abc.com/1.tar -C /home/wwwroot/abc.com/ |
2022.4.7更新:
VMess MD5 认证信息 淘汰机制
VMessAEAD 协议已经经过同行评议并已经整合了相应的修改。 VMess MD5 认证信息 的淘汰机制已经启动。
自 2022 年 1 月 1 日起,服务器端将默认禁用对于 MD5 认证信息 的兼容。任何使用 MD5 认证信息的客户端将无法连接到禁用 VMess MD5 认证信息的服务器端。
在服务器端可以通过设置环境变量 v2ray.vmess.aead.forced = true 以关闭对于 MD5 认证信息的兼容。 或者 v2ray.vmess.aead.forced = false 以强制开启对于 MD5 认证信息 认证机制的兼容 (不受到 2022 年自动禁用机制的影响) 。 (v4.35.0+)
解决方法
打开并编辑:
1 |
vi /etc/systemd/system/v2ray.service |
去掉:
1 |
# ExecStart=/usr/local/bin/v2ray -config /usr/local/etc/v2ray/config.json |
新增:
1 2 3 |
ExecStart=/usr/local/bin/env v2ray.vmess.aead.forced=false /usr/local/bin/v2ray -config /usr/local/etc/v2ray/config.json Environment="V2RAY_VMESS_AEAD_FORCED=false" |
重启服务:
1 2 3 |
systemctl daemon-reload systemctl restart v2ray |