Vmess+ws+tls搭建教程

前言

我买了一台 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.04

1. 更新 Packages & 更行软件

Copy
#切换到root
sudo -i
#升级Packages
apt update -y
#更新软件
apt upgrade -y

2. 安装常用软件

Copy
#安装wget、curl、vim、git、net-tools、lrzsz
apt install wget curl vim git net-tools lrzsz -y

3. 修改系统时区

Copy
#搜索列表是否有Shanghai
timedatectl list-timezones | grep Shanghai
#设置时区为Shanghai时区
sudo timedatectl set-timezone Asia/Shanghai
#查看系统时间
date -R

VMess 协议的认证基于时间，一定要保证服务器和客户端的系统时间相差要在 90 秒以内

4. 开启 TCP BBR 拥塞控制算法

Copy
#下载脚本
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 检查是否成功开启 bbr

Copy
uname -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，大家都知道的东西，还有是一定风险的，防止别人暴力破解

Copy
#修改配置
vim /etc/ssh/sshd_config
#在大概15行的位置
#Port 22
把'#'删除，修改'22'然后保存→ Port xxxx
#重启sshd服务
sudo service sshd restart
#为了保证服务器不会失联，重启完sshd服务后，新建一个会话尝试是否能连接服务器

搭建 Vmes+WebSocket+TLS

搭建这套代理需要有域名，同时需要套 Cloudflare

1. 把域名添加到 Cloudflare 的 NameServers 下

2. 给域名添加一个 A 解析

这个 A 解析的域名是用来伪装地址的，在进行第三步前不要把小云朵打开

3. 安装服务

Copy
#运行脚本
wget https://git.io/tcp-wss.sh && bash tcp-wss.sh

这个脚本里面包含了：

安装并配置 Nginx

自动为域名申请 SSL 证书

配置 Vmess 协议

4. 前置 Cloudflare

4.1 开启 SSL/TLS

操作路径：点击 SSL/TLS→Overview→选择 Full 或 Full (strict)

4.2 清理缓存

清理 CF 缓存，点击 Caching > Configuration > 点击 Purge Everything 清理所有缓存

4.3 开启 DNS 代理

把小云朵打开（实际上不打开一样有效，但是在运行脚本前不能打开，否则会安装失败）

5. 连接代理

安装成功后终端会显示配置参数：

Copy
===========配置参数=============
地址：${domain}
端口：443/8080
UUID：${v2uuid}
加密方式：aes-128-gcm
传输协议：ws
路径：/${v2path}
底层传输：tls
注意：8080是免流端口不需要打开tls

依照参数到客户端进行配置

6. 修改 Nginx 配置

通过观察脚本的源代码，我们可以知道，我们的域名根路径/的代理内容是只有Hello World

的，如果我们的服务器流量跑大了之后，被防火墙检测到只有两个单词的页面天天跑那么多流量肯定会被怀疑，所以我们需要修改根路径 / 的反代目标地址，找一个看起来就能用很多流量的网站，一般推荐一些自建的网盘地址，符合天天大流量的可能特征

这是脚本里自动配置的内容：

Copy
location / {
default_type text/plain;
return 200 "Hello World !";
}

把这一段的内容替换成下面这段：

https://www.fan-2000.com 这个网盘地址是在 Google 随便找的

Copy
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 配置

Copy
systemctl reload nginx

至此，一套 Vmess+ws+tls 代理就搭建完成了。