sing-box 是一个高性能、支持多协议(如 VLESS、VMess、Shadowsocks、Trojan、SOCKS 等)的网络代理工具,常用于科学上网、代理分流等场景,兼容多种前端、支持多平台
sing-box 不分客户端与服务端,其部署方式与 shadowsocks 类似,根据需要选择合适的配置文件进行部署
下面实践如何快速地在 debian12 服务器上部署一个 vless 协议的 sing-box 代理服务
sing-box 下载地址
- https://github.com/SagerNet/sing-box/releases/tag/v1.11.14
选择合适版本,这里我选择二进制的 amd64 版本,如下:
mkdir -p /opt/sing-box
cd /opt/sing-box
wget https://github.com/SagerNet/sing-box/releases/download/v1.11.14/sing-box-1.11.14-linux-amd64.tar.gz
tar -xvf sing-box-1.11.14-linux-amd64.tar.gz
cd sing-box-1.11.14-linux-amd64
接下来创建一个配置文件 config.json
,内容如下:
{
"log": {
"level": "info"
},
"inbounds": [
{
"type": "vless",
"listen": "::",
"listen_port": 443,
"users": [
{
"uuid": "621d1745-382d-40e4-87cf-23e1b17a7b57",
"flow": "xtls-rprx-vision"
}
],
"tls": {
"enabled": true,
"server_name": "www.microsoft.com",
"reality": {
"enabled": true,
"handshake": {
"server": "www.microsoft.com",
"server_port": 443
},
"private_key": "",
"short_id": ["12345678","23456789","34567890"]
}
}
}
],
"outbounds": [
{
"type": "direct"
}
]
}
以上配置需要修改:
uuid
:替换为你自己的 UUID,使用./sing-box generate uuid
命令生成private_key
:替换为你自己的 private_key,可以使用./sing-box generate reality-keypair
命令生成(公钥也要记住,在客户端需要填写)short_id
:替换为你自己的 short_id,8 位数即可,可以多放几个,用于伪装握手时识别正确的流量
以上参数说明:
type
:协议类型,这里使用 vlesslisten
:监听地址,::
表示监听所有地址listen_port
:监听端口,这里使用 443users
:用户列表,这里只配置了一个用户,使用 UUID 进行身份验证tls
:TLS 配置,启用 TLS 并配置相关参数,server_name
为域名,要避免使用 cloudflare 的域名(敏感),建议使用微软的域名或者其他在国内比较正常的域名reality
:启用 Reality 协议,配置握手服务器、私钥和 short_idoutbounds
:出站配置,这里使用 direct 直连
Xray Reality Vision 伪装原理如下:
- 利用 TLS(HTTPS)握手过程,模仿真实网站(如 www.microsoft.com)进行 TLS 指纹伪装,不需要目标站证书,客户端和服务端通过私钥/short_id 验证身份,防 DPI
server_name
等同于目标网站,外部行为与访问目标站一致,达到不可区分效果
通过伪造与真实网站一致的 TLS 参数和握手,做到高度伪装流量,提升代理隐匿性和防检测能力