- Published on
V2Ray (WebSocket + TLS + Web + Cloudflare) 手动配置详细说明
- Authors
- Name
- piczi
V2Ray (WebSocket + TLS + Web + Cloudflare) 手动配置详细说明
先决条件
在开始操作之前,建议你先了解以下基础知识:
- 使用 ssh 命令或 ssh 客户端登录远程服务器
- 使用 vim 或其他编辑器的最基本的操作
购买 VPS
购买 VPS 的说明
Hmmm… 本人学生党(穷 ➕ 没有办理国际信用卡),买境外的 VPS 不太方便。我找了相对便宜的(没有活动时的价格最低为 $3.71 / 月)且支持使用支付宝的 VPS 提供商 —— CloudCone。
注册登录没太多好说的,唯一的建议就是注册的时候填写国外的邮箱(Cloudcone 将会通过这个邮箱告知你 VPS 的 IP 地址和 root 用户的初始密码)。
这里简单说下如何通过支付宝进行充值:


填写完支付宝关联的邮箱地址(如支付宝未与任何邮箱关联,请自行搜索相关内容),会跳转至支付宝扫码付款的页面,付款成功就可新建 VPS 实例了。
新建实例部分,本文以 Debian 10 为例,您也可以使用其他 Linux 发行版本。如您使用其他 Linux 发行版本,本教程后续的部分命令或许会有些许差异(如软件包的安装等),当然本文对您仍具有参考意义。

主机名按照框内灰色字体的格式填写即可。
新建实例成功后,请注意查看你注册账号时的邮箱,是否收到包含服务器公网 IPv4 地址和 root 用户初始密码的电子邮件。


初始化 VPS
具体步骤
ssh 登录到远程服务器的 root 用户后再完成以下操作:
- 更新系统已知的软件包列表、升级系统上的所有软件包、移除不再需要的依赖软件包:
apt update && apt upgrade && apt autoremove
正经的 Linux 用户不会用 root 干所有的事情,如果这么做的话将会很危险。创建一个普通的用户,并让它可以通过 sudo 指令用 root 权限执行命令是一般的解决方案。
- 在用 sudo 之前,我们需要先安装 sudo 这个软件包:
apt install sudo
- 新建一个普通用户,本文新建名为
eric
的用户(-m
为用户创建相应的 home 目录,-s
选项使用 /bin/bash 作为用户的 shell,-G
并将其添加到 sudo 用户组中),创建好后第2行命令给 eric 用户设置一个密码:
useradd -m -s /bin/bash -G sudo eric
passwd eric
- 相关建议(可选操作)
为了安全起见,建议你完成下列操作:
- 禁止通过 SSH 登录到 root 用户
- 限制 SSH 通过用户密码来登录,并实现 SSH 仅能通过密钥登录服务器
在操作之前,你需要先将本机公钥添加到远程服务器
- 首先确认下本机是否生成过 SSH 密钥。Git Bash 上执行命令
ls ~/.ssh
查看是否有id_*
和id_*.pub
这两个文件(其中*
是生成密钥的签名类型),如果没有则需要通过 ssh-keygen 生成,在 Git Bash 中执行命令:
ssh-keygen -t ecdsa
- 如果已生成过 SSH 密钥,你现在就可以通过命令将本机的公钥信息添加到远程服务器中,执行命令后会让你确认信息,输入
yes
,然后输入服务器用户的登录密码:
ssh-copy-id eric@服务器IP地址
完成该操作之后就可以免密登录服务器了,如果要禁用远程登录 root 用户和使用密码登录的方式,点击下面的『操作要点』展开
操作要点
- 禁止通过 SSH 登录到 root 用户
- 编辑
/etc/ssh/sshd_config
- 编辑
PermitRootLogin no
- 限制 SSH 通过用户密码来登录
- 编辑
/etc/ssh/sshd_config
- 编辑
PasswordAuthentication no
- 编辑完配置文件后,
sudo systemctl restart sshd
重启下服务器的 sshd 服务
安装 V2Ray 前的准备
正经的 Linux 用户不会用 root 干所有的事情,如果这么做的话将会很危险。所以使用普通用户,再通过 sudo 指令用 root 权限执行命令是坠吼的。
使用普通用户通过 ssh 登录到你的远程服务器后再完成以下操作:
时间校准
对于 V2Ray,它的验证方式包含时间,就算是配置没有任何问题,如果时间不正确,也无法连接 V2Ray 服务器的,服务器会认为你这是不合法的请求。所以系统时间一定要正确,只要保证时间误差在 90 秒 之内就没问题。
sudo timedatectl set-ntp true # 启用 NTP 服务
sudo ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime # 将时区设为"亚洲/上海"
sudo hwclock --systohc # 将硬件时钟调整到与当前系统时间一致
date -R # 以 RFC 5322 格式输出日期和时间
域名购买与设置
要使用 V2Ray + WebSocket + TLS + Web 方案,需要一个域名。这里推荐使用 NameSilo 注册域名。
在 NameSilo 注册域名
选择一个便宜的域名,最低只需 $0.99 一年:

域名购买页面设置,记得关闭自动续费,开启WHOIS隐私保护:

支付页面同样支持支付宝付款:

购买域名后,可以在账户中查看并管理:

V2Ray 客户端配置

客户端设置
v2rayN 主界面鼠标右键点击,选择「添加 Vmess 服务器」,按照服务器配置填写:


配置说明:
- 地址(
address
):可以填写您注册的域名(也可以是 Cloudflare 的 CDN IP) - 端口(
port
):HTTPS 端口号,即填写443
- 用户 ID(
id
):与 V2Ray 服务端的配置一致 - 额外 ID(
alterId
):与 V2Ray 服务端的配置一致,即0
- 加密方式(
security
):自动 - 传输协议(
network
):WebSocket
设置完成后,右键点击托盘图标启用 HTTP 代理:

如需生成配置分享给其他设备,可右键点击服务器选择「分享」生成链接:

然后使用订阅转换工具转换为其他客户端格式:

优选 Cloudflare CDN 节点 IP
直接通过本地的 DNS 解析您注册域名得到的 Cloudflare CDN 的 IP,有时可能速度很不理想,尤其是我使用的中国电信宽带到了晚上高峰期(20:00 ~ 24:00)的时候特别差劲。通过一个测试工具 CloudflareSpeedTest 优选出几个 Cloudflare 的 CDN 节点 IP,可以相对缓解这种情况。由于不同的运营商、不同的地域或不同的时间段,相同的 CDN 节点 IP 表现具有差异,所以建议就是各自在自己的网络环境下进行测试。

优选 Cloudflare CDN 节点 IP 的说明
- CloudflareSpeedTest 项目 latest release 下载页
根据您的操作系统和处理器架构进行选择下载,以我这边 Windows x64 为例子,我下载的是
CloudflareST_windows_amd64.zip
,下载后进行解压。首先 cmd 切换到
CloudflareST.exe
所在的目录,如F:\Downloads\CloudflareST_windows_amd64
:
cd /d F:\Downloads\CloudflareST_windows_amd64
- 此处我以我平常使用的命令加几个选项为例子:
如需要找到 20 个平均延迟低于 300 ms 且下载速度高于 5 MB/s 的 IP 才会停止测速。
CloudflareST.exe -tl 300 -sl 5 -dn 20
-tl
: 平均延迟上限,只输出低于指定平均延迟的 IP-sl
: 下载速度下限,输出高于指定下载速度的 IP-dn
: 符合条件的 IP 数量,即指定输出符合延迟和下载速度要求的 IP 数量- 完整的使用方法请参考项目 README。
当我们得到了一组优选 IP 后,如何使用这些 CDN 节点呢?我们只需要在 v2rayN 填写的地址(address
)处,分别填写排名靠前的几个 IP 就行。具体操作:

- v2rayN 主界面鼠标右键选中原有的节点
node
,选择「克隆所选服务器」,然后双击克隆得到的节点,将**地址(address
)**修改为优选得到的 IP,如104.31.79.91
,**别名(remarks
)**取自己喜欢的就好,如node1
。

如想添加多几个节点,就多克隆几个。
至于其他客户端的配置转换依然可以使用 Subscription Converter,将生成得到的数个 vmess://
链接分行粘贴到 Subscription Converter 中,最后再生成订阅链接就完事了。
P.S. 一条一条的生成 vmess://
链接还是挺麻烦的,所以建议各位学会自己编写你所使用的客户端的配置文件 🤣
参考资料
- 新 V2Ray 白话文指南 -- WebSocket + TLS + Web
- How to Install Nginx on Debian 10
- How To Host a Website Using Cloudflare and Nginx on Ubuntu 20.04
- NGINX Reverse Proxy
- Increase Linux Internet speed with TCP BBR congestion control
- HTTPS certificate not trusted with Cloudflare Origin Certificate
- XIU2/CloudflareSpeedTest
博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议
本文永久链接是:https://ericclose.github.io/V2Ray-TLS-WebSocket-Nginx-with-Cloudflare.html