type
status
date
slug
summary
tags
category
icon
password
Property
Jun 19, 2023 09:57 AM
安装 X-UI
x-ui 是一个支持多协议多用户的 xray 面板,安装 x-ui 非常方便,root 用户运行:
出于安全考虑,安装时输入
y
更改默认端口,用户名和密码。安装完成后通过 ip/hostname+端口访问面板,建议将 xray core 切换到最新版本:

创建 vmess+ws 协议代理
创建一个新的入站协议,备注随意,选择 vmess,传输协议选择 ws,路径可以复制 id 粘贴到下面,关闭 sniffing 嗅探。

此时就可以把节点导入客户端进行测试。

安装 Caddy
下面为服务器安装反向代理并申请域名证书,为了简便可以直接使用 Caddy 来部署反向代理服务。部署服务前需要先将域名解析到服务器。
安装完成后 Caddy 会自动启动,启动的配置文件是
/etc/caddy/Caddyfile
,可通过 sudo service caddy status
查看当前服务的运行状态。修改 Caddy 的配置文件 Caddyfile 来实现反向代理:
:80
表示开启服务器 80 端口,如果要开启 443 端口并启用域名,把 :80
替换成解析好的域名即可。本例先演示 80 端口+ CDN 开启 HTTPS。sudo service caddy restart
服务后客户端修改端口为 80 进行测试。
套用 CDN
套用 CDN 有如下几个目的:
- 如果你的机器直连丢包率高,速度慢,可以通过套用 CDN 提高速度。
- CDN 可以有效隐藏节点真实域名和 IP,避免 IP 被封。
- 可以利用 CDN 直接开启 TLS 加密,代理流量和正常互联网流量完全一样。
如果你的机器没有1、2问题,可以直接在 Caddy 中将监听站改为自己的域名直接开启 443 端口和 HTTPS,无需利用 CDN。
国内可以访问的两个国外 CDN 提供商分别是免费的 Cloudflare(简称CF)和 AWS 家的 Cloudfront(简称CFT)。其中正确配置 AWS 的 CFT 每个月也有 1T 的免费出站流量。
套用 Cloudflare CDN
套用 CF 的 CDN 比较简单,直接在 CF 中添加域名解析到节点 IP 并开启 Proxy 即可。注意,在 SSL 设置中选择 Flexible 策略,把 443 流量代理到节点的 80 端口。
CDN 配置完成后,客户端更改配置,将 Address 更改为 CF 域名,端口改为 443,传输层安全改为 TLS,测试连接。

白天高峰时段测试 CF 速度很差,完全达不到通过套 CDN 提高速度的目的,所以可以通过优选 IP 来找到离自己的 CDN 服务器。
优选得到 IP 以后可以更改客户端配置,将 Address 更改为优选 IP 即可。

套用 AWS Cloudfront CDN
因为 AWS 的注册门槛,国内使用 AWS CDN 的人明显更少,所以 AWS CDN 没有太多的劣化,质量还是很好的。高峰时段使用效果远好于 CF,所以如果流量可控,AWS CDN 是更好的选择。
CFT 的配置要稍微复杂一些,注册完 AWS 之后要开启 Cloudfront 服务,并创建一个「分配」,回源填写服务器域名,选择「仅 HTTP」来通过 443 回源 80 端口。当然,灵活的 CFT 可以回源任意指定端口。

缓存行为上要关闭自动压缩对象,并使用 Legacy cache setting。


创建完成后等待 AWS 完成部署,得到一个分配地址,在客户端中替换 Address 为 AWS 的分配地址即可。

更新 geosite 和 geoip
如果你在 x-ui 中使用 geosite/geoip 进行分流,可以使用 crontab 更新 geosite.dat geoip.dat 文件:
小结
至此,我们通过 x-ui + caddy + cf/cft 搭建一套 vmess+ws+tls+cdn 的稳定服务代理

如果没有 CDN 需求,可以直接使用 Caddy 生成证书,开放节点 443 端口。
多用户多路复用
x-ui 可以快速实现多用户多路复用,单独统计使用情况、控制流量上限和到期时间。
只需要在 x-ui 中创建多个进站协议,然后 Caddy 中配置多个 handle 即可。
