# Vmess+ws+tls搭建教程 **Published by:** [0xC890](https://paragraph.com/@0xc890/) **Published on:** 2023-03-29 **URL:** https://paragraph.com/@0xc890/vmess-ws-tls ## Content 前言我买了一台RackNerd的小鸡,看了一圈觉得最合适我了,价格低、配置高、流量大、工单回复及时,而且也刚好碰上活动,22年的黑五特惠(不知道为啥活动到现在还没结束),就下单了。这里不得不说工单回复即时这个优点。我因为支付方式还没准备好,先创建了订单,等过了两天才支付的,结果支付了机器一直在等待中,我就开了个工单,很快就有回复,大概等了两个钟左右机器就创建好了。我估计是因为我用信用卡的原因,他们后台得查我是不是在薅羊毛什么的,才需要这么久VPS配置CPU:1 内存:1 GB 空间:17 GB(RAID 10) 流量:3 TB / 月(1Gbps端口) IPv4:1 IPv6:0 $10.98 / 年 购买链接: https://my.racknerd.com/aff.php?aff=7324&pid=358 这个配置拿来搭代理刚刚好,一年11$,每个月3T的流量,还是1Gbps的端口。最主要的还是IP还支持解锁Tiktok和ChatGPT。NetFlix不持支,但是套个IPv6就可以解锁了服务器配置系统是Ubuntu20.041.更新Packages&更行软件#切换到root sudo -i #升级Packages apt update -y #更新软件 apt upgrade -y 2.安装常用软件#安装wget、curl、vim、git、net-tools、lrzsz apt install wget curl vim git net-tools lrzsz -y 3.修改系统时区#搜索列表是否有Shanghai timedatectl list-timezones | grep Shanghai #设置时区为Shanghai时区 sudo timedatectl set-timezone Asia/Shanghai #查看系统时间 date -R VMess 协议的认证基于时间,一定要保证服务器和客户端的系统时间相差要在 90 秒以内4.开启TCP BBR 拥塞控制算法#下载脚本 wget --no-check-certificate -O /opt/bbr.sh https://github.com/teddysun/across/raw/master/bbr.sh #修改脚本权限 chmod 755 /opt/bbr.sh #运行脚本 /opt/bbr.sh 注意:需要4.9及以上的内核才可以开bbr,因为前面upgrade已经把内核也一起更新了,所以运行这个脚本可以直接开启,无需再重启系统。4.1检查是否成功开启bbruname -r #查看内核版本 sysctl net.ipv4.tcp_available_congestion_control 返回值一般为: net.ipv4.tcp_available_congestion_control = reno cubic bbr sysctl net.ipv4.tcp_congestion_control 返回值一般为: net.ipv4.tcp_congestion_control = bbr sysctl net.core.default_qdisc 返回值一般为: net.core.default_qdisc = fq lsmod | grep bbr 返回值有tcp_bbr就说明bbr已启动 tcp_bbr 20480 125 5.修改SSH端口 [可选]默认的端口是22,大家都知道的东西,还有是一定风险的,防止别人暴力破解#修改配置 vim /etc/ssh/sshd_config #在大概15行的位置 #Port 22 把'#'删除,修改'22'然后保存→ Port xxxx #重启sshd服务 sudo service sshd restart #为了保证服务器不会失联,重启完sshd服务后,新建一个会话尝试是否能连接服务器 搭建Vmes+WebSocket+TLS搭建这套代理需要有域名,同时需要套Cloudflare1.把域名添加到Cloudflare的NameServers下2.给域名添加一个A解析这个A解析的域名是用来伪装地址的,在进行第三步前不要把小云朵打开3.安装服务#运行脚本 wget https://git.io/tcp-wss.sh && bash tcp-wss.sh 这个脚本里面包含了:安装并配置Nginx自动为域名申请SSL证书配置Vmess协议4.前置Cloudflare4.1 开启SSL/TLS 操作路径:点击SSL/TLS→Overview→选择Full或Full(strict)4.2 清理缓存 清理CF缓存,点击 Caching > Configuration > 点击 Purge Everything 清理所有缓存4.3 开启DNS代理 把小云朵打开(实际上不打开一样有效,但是在运行脚本前不能打开,否则会安装失败)5.连接代理安装成功后终端会显示配置参数:===========配置参数============= 地址:${domain} 端口:443/8080 UUID:${v2uuid} 加密方式:aes-128-gcm 传输协议:ws 路径:/${v2path} 底层传输:tls 注意:8080是免流端口不需要打开tls 依照参数到客户端进行配置6.修改Nginx配置通过观察脚本的源代码,我们可以知道,我们的域名根路径/的代理内容是只有Hello World 的,如果我们的服务器流量跑大了之后,被防火墙检测到只有两个单词的页面天天跑那么多流量肯定会被怀疑,所以我们需要修改根路径 / 的反代目标地址,找一个看起来就能用很多流量的网站,一般推荐一些自建的网盘地址,符合天天大流量的可能特征 这是脚本里自动配置的内容:location / { default_type text/plain; return 200 "Hello World !"; } 把这一段的内容替换成下面这段: https://www.fan-2000.com 这个网盘地址是在Google随便找的location / { proxy_pass <https://www.fan-2000.com>; proxy_redirect off; proxy_ssl_server_name on; sub_filter_once off; sub_filter "fan-2000.com" $server_name; proxy_set_header Host "fan-2000.com"; proxy_set_header Referer $http_referer; proxy_set_header X-Real-IP $remote_addr; proxy_set_header User-Agent $http_user_agent; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; proxy_set_header Accept-Encoding ""; proxy_set_header Accept-Language "zh-CN"; } 修改后保存并退出,然后重新加载Nginx配置至此,一套Vmess+ws+tls代理就搭建完成了。 ## Publication Information - [0xC890](https://paragraph.com/@0xc890/): Publication homepage - [All Posts](https://paragraph.com/@0xc890/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@0xc890): Subscribe to updates