V2ray 搭建支持游戏加速的代理服务方案

方案信息

方案环境

# 服务端采用了阿里云的轻量应用服务器(HK) Server: - Ubuntu 20.04.3 LTS - Nginx 1.21.1 - Docker 20.10.17

产生原因

在游玩游戏的时候,由于网络原因,经常会出现卡顿、延迟等问题,这些问题会影响游戏体验,所以需要一个稳定的代理服务来解决这些问题,这里采用了V2ray的Websocket+TLS+Nginx+Cloudflare的方案来搭建代理服务,这样就可以解决游戏加速的问题了,同时可以满足本人的魔法和Newbing的访问需求。

各工具的安装和配置可以参考下面的链接: Nginx:https://lnmp.org/install.html Docker:https://www.runoob.com/docker/ubuntu-docker-install.html

方案的拓补图

服务端

X-ui

安装

通过docker-compose安装x-ui,x-ui是一个v2ray的web管理面板,可以方便的管理v2ray的配置,同时也可以通过x-ui来管理v2ray的配置,这里采用了x-ui的docker镜像来安装x-ui,具体的安装方法如下:

在服务器选择一个位置放置

docker-compose.yml
文件,然后执行
docker-compose up -d
命令来启动x-ui,具体的
docker-compose.yml
文件如下:

vim ~/docker-compose.yml
# docker-compose.yml version: '3.8' services: # x-ui xui: image: enwaiax/x-ui:latest container_name: x-ui volumes: - ./x-ui/db/:/etc/x-ui/ - ./x-ui/cert/:/root/cert/ restart: unless-stopped network_mode: host
docker-compose up -d

Xui服务的端口为

54321
,可以通过浏览器访问
http://ip:54321
来访问x-ui的管理面板,然后通过x-ui来管理v2ray的配置。 其中初始用户名和密码均为
admin
,可以通过x-ui的设置来修改用户名和密码。

配置

进入x-ui的管理面板,然后点击左侧的入站列表,然后点击右侧的 "+" 按钮添加配置,具体的配置如下:

备注 v2ray 协议 vless 监听IP 0.0.0.0 端口 56789 # 任意端口 不要和其他服务冲突 id 自动生成 传输 ws 路径 /v2ray/ # 任意路径 注意有两个斜杠 不能少

点击保存即可,由于我们会在Nginx上配置TLS,这里仅为内网转发,所以不需要配置TLS。

Nginx

为了方便管理Nginx,这里使用LNMP一键安装包来安装Nginx,具体的安装方法可以参考上面的链接,安装完成后,继续下面的步骤。

创建Vhost

首先请解析一个域名(本文将以

proxy.example.com
为例)到服务器的IP地址,然后在Nginx的配置文件中添加一个Vhost,具体的配置如下:

sudo lnmp vhost add

按照下面的提示输入域名和目录,然后按照提示进行:

Please enter domain(example: www.lnmp.org): proxy.example.com Your domain: proxy.example.com Enter more domain name(example: lnmp.org *.lnmp.org): Please enter the directory for the domain: proxy.example.com Default directory: /home/wwwroot/proxy.example.com: Virtual Host Directory: /home/wwwroot/proxy.example.com Allow Rewrite rule? (y/n) n You choose rewrite: none Enable PHP Pathinfo? (y/n) n Disable pathinfo. Allow access log? (y/n) n Disable access log. Add SSL Certificate (y/n) y 1: Use your own SSL Certificate and Key 2: Use Let's Encrypt to create SSL Certificate and Key 3: Use BuyPass to create SSL Certificate and Key 4: Use ZeroSSL to create SSL Certificate and Key Enter 1, 2, 3 or 4: 2

等待运行完成后,就可以通过域名来访问了

配置转发

LNMP安装的Nginx默认配置文件在

/usr/local/nginx/conf/vhost/
下,这里需要修改这个vhost的配置,具体的配置如下:

sudo vim /usr/local/nginx/conf/vhost/proxy.example.com.conf
server { listen 80; #listen [::]:80; server_name proxy.example.com ; return 301 https://$server_name$request_uri; } server { listen 443 ssl http2; #listen [::]:443 ssl http2; server_name proxy.example.com ; `````` ssl配置 此处省略 include enable-php.conf; # 这里配置代理到x-ui 可以支持通过proxy.example.com来访问x-ui的管理页面 location / { proxy_pass http://127.0.0.1:54321; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } `````` 此处会有lnmp生成的其它路径匹配 可以删除也可以不管 } # 为了防止长时间的流量导致443端口被封,这里配置8443端口来接收流量 server { listen 8443 ssl http2; #listen [::]:443 ssl http2; server_name proxy.example.com ; `````` ssl配置 此处省略 include enable-php.conf; location ^~ /v2ray/ { # 注意这里的路径要和x-ui的配置一致 proxy_redirect off; proxy_pass http://127.0.0.1:56789/v2ray/; # 注意这里的端口和路径要和x-ui的配置一致 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 12000s; proxy_read_timeout 36000s; proxy_send_timeout 36000s; } }

为了让Nginx支持WebSocket,需要在Nginx的配置文件中添加一些配置,具体的配置如下:

sudo vim /usr/local/nginx/conf/nginx.conf
http { # 此处省略 keepalive_timeout 1d; map $http_upgrade $connection_upgrade { default upgrade; '' close; } # 此处省略 }

重载LNMP

sudo lnmp reload

通过Warp转发通往Newbing的流量

由于Newbing限制了我的访问,导致我无法正常使用,所以这里使用Warp来转发通往Newbing的流量

安装Warp

为了方便管理Warp,这里使用Warp一键安装包来安装Warp,具体安装方法参考甬哥的脚本 https://gitlab.com/rwkgyg/CFwarp

请注意,这里我们选择的是方案二

2. 方案二:安装Socks5-WARP
要记住这里的代理端口,本文将以40000为例

配置X-ui的生成模板

由于新增了一个Warp的出口,我们需要在X-ui的生成模板中添加一个Warp的出口

在X-ui的管理面板中,点击左侧的面板设置,然后点击右侧的xray相关设置,将原有的模板复制出来,并在outbounds字段和rules字段添加相关信息

{ `````` 省略了其它配置 "outbounds": [ ``````省略了其它出口 { "tag": "socks_out", "protocol": "socks", "settings": { "servers": [ { "address": "127.0.0.1", "port": 40000, "users": [] } ] } }, ], ``````省略了其它配置 "routing": { "rules": [ { "outboundTag": "socks_out", "type": "field", "domain": [ "domain:bing.com", "domain:openai.com", "domain:ai.com" ] }, ``````省略了其它路由规则 }, ``````省略了其它配置 }

此时点击左上角的保存配置后重启面板即可正常使用

客户端

V2rayN

下载:https://github.com/2dust/v2rayN/releases

配置V2ray

在V2rayN中,点击右上角的服务器,然后点击右侧的添加Vless服务器,将X-ui的配置信息填入即可 不过要注意地址和端口的填写

地址:proxy.example.com 端口:8443 用户ID:X-ui的UUID 加密方式:none 传输协议:ws 伪装类型:none 路径:/v2ray/ # 注意这里的路径要和x-ui的配置一致 底层传输安全:tls

此时点击的确认并测试,如果测试通过,就可以正常使用了

Netch

下载:https://github.com/netchx/netch/releases

配置Netch

点击左上角的服务器->添加服务器->VLESS,将X-ui的配置信息填入即可 或者点击左上角的服务器->添加服务器->socks,将V2rayN开放的socks端口填入即可

后记

实测这样配置后在保证安全性的同时提供了较好的体验,希望对大家有所帮助 打游戏六个小时极其稳定(未发生游戏断线和跳ping等情况,几乎全程都是35ms),看视频8k无压力,下载速度也很快,只能说阿里云轻量应用服务器的线路还是很可以的