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

分类
技术
标签
工具推荐教程经验分享

方案信息

方案环境

1# 服务端采用了阿里云的轻量应用服务器(HK) 2Server: 3 - Ubuntu 20.04.3 LTS 4 - Nginx 1.21.1 5 - 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

方案的拓补图

Ball TriangleAnimated representation of three balls
notion image

服务端

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文件如下:
1vim ~/docker-compose.yml
1# docker-compose.ymlversion: '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
1docker-compose up -d
Xui服务的端口为54321,可以通过浏览器访问 http://ip:54321 来访问x-ui的管理面板,然后通过x-ui来管理v2ray的配置。 其中初始用户名和密码均为admin,可以通过x-ui的设置来修改用户名和密码。

配置

进入x-ui的管理面板,然后点击左侧的入站列表,然后点击右侧的 “+” 按钮添加配置,具体的配置如下:
1备注 v2ray 2协议 vless 3监听IP 0.0.0.0 4端口 56789 # 任意端口 不要和其他服务冲突 5id 自动生成 6传输 ws 7路径 /v2ray/ # 任意路径 注意有两个斜杠 不能少
点击保存即可,由于我们会在Nginx上配置TLS,这里仅为内网转发,所以不需要配置TLS。

Nginx

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

创建Vhost

首先请解析一个域名(本文将以proxy.example.com为例)到服务器的IP地址,然后在Nginx的配置文件中添加一个Vhost,具体的配置如下:
1sudo lnmp vhost add
按照下面的提示输入域名和目录,然后按照提示进行:
1Please enter domain(example: www.lnmp.org): proxy.example.com 2 Your domain: proxy.example.com 3Enter more domain name(example: lnmp.org *.lnmp.org): 4Please enter the directory for the domain: proxy.example.com 5Default directory: /home/wwwroot/proxy.example.com: 6Virtual Host Directory: /home/wwwroot/proxy.example.com 7Allow Rewrite rule? (y/n) n 8You choose rewrite: none 9Enable PHP Pathinfo? (y/n) n 10Disable pathinfo. 11Allow access log? (y/n) n 12Disable access log. 13Add SSL Certificate (y/n) y 141: Use your own SSL Certificate and Key 152: Use Let's Encrypt to create SSL Certificate and Key 163: Use BuyPass to create SSL Certificate and Key 174: Use ZeroSSL to create SSL Certificate and Key 18Enter 1, 2, 3 or 4: 2
等待运行完成后,就可以通过域名来访问了

配置转发

LNMP安装的Nginx默认配置文件在/usr/local/nginx/conf/vhost/下,这里需要修改这个vhost的配置,具体的配置如下:
1sudo vim /usr/local/nginx/conf/vhost/proxy.example.com.conf
1server 2 { 3 listen 80; 4 #listen [::]:80; 5 server_name proxy.example.com ; 6 return 301 https://$server_name$request_uri; 7 } 8server 9 { 10 listen 443 ssl http2; 11 #listen [::]:443 ssl http2; 12 server_name proxy.example.com ; 13 14 `````` ssl配置 此处省略 15 16 include enable-php.conf; 17 18 # 这里配置代理到x-ui 可以支持通过proxy.example.com来访问x-ui的管理页面 19 location / { 20 proxy_pass http://127.0.0.1:54321; 21 proxy_set_header Host $host; 22 proxy_set_header X-Real-IP $remote_addr; 23 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 24 } 25 26 `````` 此处会有lnmp生成的其它路径匹配 可以删除也可以不管 27 } 28 29# 为了防止长时间的流量导致443端口被封,这里配置8443端口来接收流量 30server 31 { 32 listen 8443 ssl http2; 33 #listen [::]:443 ssl http2; 34 server_name proxy.example.com ; 35 36 `````` ssl配置 此处省略 37 38 include enable-php.conf; 39 40 location ^~ /v2ray/ { # 注意这里的路径要和x-ui的配置一致 41 proxy_redirect off; 42 proxy_pass http://127.0.0.1:56789/v2ray/; # 注意这里的端口和路径要和x-ui的配置一致 43 proxy_http_version 1.1; 44 proxy_set_header Upgrade $http_upgrade; 45 proxy_set_header Connection "upgrade"; 46 proxy_set_header Host $http_host; 47 proxy_set_header X-Real-IP $remote_addr; 48 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 49 proxy_connect_timeout 12000s; 50 proxy_read_timeout 36000s; 51 proxy_send_timeout 36000s; 52 } 53 }
为了让Nginx支持WebSocket,需要在Nginx的配置文件中添加一些配置,具体的配置如下:
1sudo vim /usr/local/nginx/conf/nginx.conf
1http { 2 # 此处省略 3 keepalive_timeout 1d; 4 map $http_upgrade $connection_upgrade { 5 default upgrade; 6 '' close; 7 } 8 # 此处省略 9}

重载LNMP

1sudo 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字段添加相关信息
1{ `````` 省略了其它配置 "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的配置信息填入即可 不过要注意地址和端口的填写
1地址:proxy.example.com 2端口:8443 3用户ID:X-ui的UUID 4加密方式:none 5传输协议:ws 6伪装类型:none 7路径:/v2ray/ # 注意这里的路径要和x-ui的配置一致 8底层传输安全:tls
此时点击的确认并测试,如果测试通过,就可以正常使用了

Netch

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

配置Netch

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

后记

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