前言
购买最低配置,稳定点的机场都需要 80 元以上,我们如果可以自己购买一台vps,并配置给自己一人使用,效果可能会更好点。
参看本文可以获知如何自建 Clash Verge 服务端,本文实验的环境:
- 操作系统,AlmaLinux 9.6
- 硬件配置,1C1G,1Gbps 宽带口,3T 流量/月
- 软件配置,docker 运行,Sing-Box 服务端,Clash Verge 客户端,其中的 sing-box 使用 Hysteria2 内核模式(速度优先,需域名与证书)。
- 域名准备,需要准备一个能解析到外网的域名,本文以 h2.example.com 为例说明。
什么是 Clash Verge 与 Sing-Box?
Clash Verge 是一款高效的网络代理客户端,支持多种代理协议,广泛用于科学上网。它基于 Clash,并内置 mihomo 内核,允许用户轻松地配置和管理多个节点。
Sing-Box 是一款功能强大的代理服务端,支持多种协议(如 Hysteria、VLESS 等),并能提供高效的网络性能和稳定性。它使用 Docker 部署,并能支持 多协议、多入站 配置,确保无论是游戏还是流媒体,均能获得最佳体验。
选择 VPS 主机时需要考虑的因素
在配置 Clash Verge 和 Sing-Box 之前,首先需要选择合适的 VPS 主机。一个优质的 VPS 主机不仅能提供稳定的带宽,还能确保高效的连接和低延迟。以下是选择 VPS 主机时的一些关键因素:
- 带宽和流量:选择一个具有高带宽的 VPS 服务,尤其是在高并发和大流量场景下尤为重要。确保你的 VPS 能提供稳定的 上行带宽,因为代理服务通常会消耗大量上传带宽。
- 地理位置:选择距离你的目标用户较近的数据中心位置,这样可以降低网络延迟,提高连接速度。
- 支持 UDP:在配置 Sing-Box 和 Clash Verge 时,UDP 端口的支持非常关键。确保 VPS 提供的网络环境支持 UDP(尤其是 443/UDP)。
- 操作系统:大多数 VPS 提供商都支持 Linux 系统,如 Ubuntu、AlmaLinux 和 CentOS。这些操作系统适用于运行代理服务器和各种网络工具。
- 可靠性和 SLA:选择一个具有 高可靠性 和 服务等级协议(SLA)的 VPS 提供商,以确保你的代理服务不会因为 VPS 故障而中断。
准备
1)系统准备
# 1. 更新
sudo dnf -y update
# 2. 安装 Docker (RHEL/CentOS/AlmaLinux 9)
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo systemctl enable --now docker
# 3. 启用 BBR(重启后生效)
echo "net.core.default_qdisc=fq" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
# 4. 放行 80(临时给证书用)、443/tcp+udp(Hy2)选做,如果已经关闭了系统 SELinux,可以不做。
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --permanent --add-port=443/udp
sudo firewall-cmd --reload
2) 申请 TLS 证书(acme.sh)
确保 h2.example.com 已正确解析到这台服务器公网 IP,需要修改这个域名的 dns 解析(读者自行操作)。
# 安装 acme.sh
curl https://get.acme.sh | sh -s email=my@example.com
source ~/.bashrc # 或重开一个 shell
# 申请 ECDSA 证书(standalone 模式,默认用 80 端口)
~/.acme.sh/acme.sh --set-default-ca --server letsencrypt
~/.acme.sh/acme.sh --issue -d h2.example.com --standalone -k ec-256
# 证书路径(注意 _ecc 后缀)
# 证书: ~/.acme.sh/h2.example.com_ecc/fullchain.cer
# 私钥: ~/.acme.sh/h2.example.com_ecc/h2.example.com.key
- 后续 Docker 会把这两个文件以只读方式挂进去使用。
- 证书到期 acme.sh 会自动续期(使用 standalone,会临时占用 80 端口)。如果服务器运行了 nginx,需要临时关闭 nginx,等证书申请完毕后,再启动 nginx;
配置 Sing-Box 服务端与 Clash Verge 客户端
在选择好 VPS 后,接下来是 Sing-Box 服务端和 Clash Verge 客户端的配置过程。
配置 Sing-Box 服务端
1.安装 Docker:
首先,确保你的 VPS 上已经安装了 Docker。前面的准备阶段已经安装了 docker。
2.配置 Sing-Box:
在 /data/sb-hy2 目录下创建 docker-compose.yml 和 config.json 配置文件。确保配置正确,特别是端口和证书路径。
version: "3.8"
services:
singbox:
image: ghcr.io/sagernet/sing-box:latest
container_name: singbox-hy2
restart: unless-stopped
network_mode: host
command: ["run", "-c", "/etc/sing-box/config.json"]
volumes:
- /data/sb-hy2/config.json:/etc/sing-box/config.json:ro,Z
- /root/.acme.sh/h2.example.com_ecc/fullchain.cer:/etc/sing-box/fullchain.cer:ro,Z
- /root/.acme.sh/h2.example.com_ecc/h2.example.com.key:/etc/sing-box/privkey.key:ro,Z
3.配置 Sing-Box 服务端的 config.json 在部署 Sing-Box 时,config.json 是核心配置文件,它定义了代理服务端的监听地址、端口、认证信息、证书路径等。 生成强力密码:openssl rand -base64 24 以下是一个典型的 Sing-Box 配置文件,供你参考:
{
"log": {
"level": "info"
},
"inbounds": [
{
"type": "hysteria2",
"listen": "0.0.0.0",
"listen_port": 443,
"users": [
{ "name": "user001", "password": "你的密码" }
],
"tls": {
"enabled": true,
"certificate_path": "/etc/sing-box/fullchain.cer",
"key_path": "/etc/sing-box/privkey.key"
}
}
],
"outbounds": [
{
"type": "direct"
}
]
}
4.启动 Sing-Box:
使用以下命令启动 Sing-Box 服务端:
cd /data/sb-hy2
sudo docker compose up -d
5.查看日志:
使用以下命令查看 Sing-Box 的日志,确保一切正常运行:
sudo docker logs -f singbox-hy2
配置 Clash Verge 客户端
1.下载和安装 Clash Verge:
在客户端设备上下载 Clash Verge 客户端,并根据需求进行安装。
2.配置节点:
在 Clash Verge 中配置你刚才在 Sing-Box 中设置的代理服务器信息。确保配置项正确,并按照以下格式设置:
port: 7890
socks-port: 7891
allow-lan: true
mode: rule
log-level: info
proxies:
- name: hy2-h2.example.com
type: hysteria2
server: h2.example.com
port: 443
password: JlK4xWm8Q2yN5oVr1tS6pHq8C3zD9bF2
sni: h2.example.com
alpn: [h3]
# up: "50 Mbps" # 可选速率上限
# down: "200 Mbps"
skip-cert-verify: false
# fast-open: true # 可按需开启
proxy-groups:
- name: 🚀 Proxy
type: select
proxies:
- hy2-h2.example.com
- DIRECT
rules:
- GEOIP,CN,DIRECT
- MATCH,🚀 Proxy
把上面的配置文件保存为 xxx.yaml;
3.连接并测试:
完成配置后,连接到代理服务器,并测试是否能够顺利访问目标网站。
可能出现的问题
- 客户端测试不通过。
- 确定使用的域名,本地 dns 解析正常。
- 有可能客户端使用的密码,与服务器端的不一致,需要确认。
- 不要使用 cloudflare 做 dns 代理。
- Google 有时候用不了
- 查看服务器端的运行日志,发现使用了 ipv6 的方式访问了 Google,但是我们的服务器上没有启用 ipv6,导致了错误。
- 在客户端上禁用 ipv6,如果是 clash verge 客户端的话,需要这样修改客户端配置:
alpn: [h3]
ip4: true # 强制使用 IPv4
skip-cert-verify: false
- 服务端运行日志查看
docker logs -f singbox-hy2,这个命令也能确认启动是否正常。
- 确定端口是否正常监听
sudo ss -lnup | grep :443 || true
















暂无评论内容