S-UI面板多节点部署
一、工具准备
VPS一台
连接PC一台
SSH/FTP连接工具
域名购买(非必须)
文档编辑器
二、系统准备
更新系统
# Debian
apt-get update -y
apt-get upgrade -y
# Ubuntu
apt-get update
sudo apt-get dist-upgrade
apt-get upgrade安装wget、git
apt-get install wget -y
apt-get install git -y
apt install git -y
安装curl
apt update && apt upgrade
apt install curl
域名解析
# 在域名的DNS解析记录中配置,可在域名购买厂商后台,亦可托管在如cloudflare中进行配置
# 添加两条A记录,地址为VPS的IP,名称填购买的域名&www
修改密码
passwd root
# 输入两次新密码
三、S-UI配置
安装
# 安装链接
# VERSION版本可根据需求选择,最好选最新的,如果获取最新版本报错,可以降低一个版本安装后通过s-ui命令手动升级
VERSION=1.3.6 && bash <(curl -Ls https://raw.githubusercontent.com/alireza0/s-ui/$VERSION/install.sh) $VERSION
# 回退链接
systemctl disable s-ui --now
rm -f /etc/systemd/system/sing-box.service
systemctl daemon-reload
rm -fr /usr/local/s-ui
rm /usr/bin/s-ui
记录基础信息
# 安装进度完成后复制如下默认地址和账户密码并保存,用于后续面板登陆
# 请勿通过http登陆,存在严重的安全隐患
http://10.10.10.10:2095/app/
Username: admin
Password: admin
四、登陆安全配置
SSH隧道登陆(本机CMD登陆)
# S-UI默认http访问,安全性不足,需要通过ssh隧道访问
# 原始代码,后面跟VPS地址
ssh -L 2095:127.0.0.1:2095 root@0.0.0.0
# 因为远程端口安全问题,不使用22,所以需要修改
# 通过SSH的27133端口映射远程2095端口到本地127.0.0.1的2095端口
# 如果历史有连接过,后续重装VPS会导致ssh主机密钥失效,需要在本机账户的.ssh目录下known_hosts&known_hosts.old中删除历史旧密钥
ssh -p 27133 -L 2095:127.0.0.1:2095 root@10.10.10.10
# 需要说明的是,在完成https配置前,不要关闭CMD窗口
配置证书
# 安装certbot
apt install -y certbot
# 获取证书并自动续期
# 会提示输入接收信息的邮箱,自行选择,后续的步骤输入y
certbot certonly --standalone -d yourdomain.com -d www.yourdomain.com
# 安装完成后会自动下载好证书密钥,目录/etc/letsencrypt/live/domain.com
# 格式全为pem,证书fullchain.pem,密钥privkey.pem
# 证书目录
/etc/letsencrypt/live/yourdomain.com/fullchain.pem
# 密钥目录
/etc/letsencrypt/live/yourdomain.com/privkey.pem
# 回退
certbot delete
修改面板登陆配置
# ssh隧道开启后本地登录远程端口
http://127.0.0.1:2095/app/
# 账户密码如前面记录的内容
# 设置>界面
地址:VPS的IP地址
端口:默认2095,可选
面板路径:默认/app/,可选
域名:购买的域名
SSL密钥路径:填入上面记录的路径,需精确到文件名
SSL证书路径:填入上面记录的路径,需精确到文件名
面板URL:默认留空,可选
会话超时时限制:0
流量过期时限:0
时区:默认
修改面板订阅配置
# 设置>订阅
启用Base64编码
启用用户信息
地址:VPS的IP地址
端口:默认2095,可选
SSL密钥路径:填入上面记录的路径,需精确到文件名
SSL证书路径:填入上面记录的路径,需精确到文件名
域名:购买的域名
默认路径:默认/app/,可选
自动更新时间:12
订阅Url:默认留空
五、节点配置
获取伪装域名
# 根据获取到的域名选择延迟最低的,并记录
# 目标域名获取地址
https://bulianglin.com/archives/nicename.html
# 示例代码
for d in catalog.gamepass.com r.bing.com s.go-mpulse.net aws.amazon.com www.amd.com www.icloud.com c.s-microsoft.com www.microsoft.com c.6sc.co b.6sc.co ; do t1=$(date +%s%3N); timeout 1 openssl s_client -connect $d:443 -servername $d </dev/null &>/dev/null && t2=$(date +%s%3N) && echo "$d: $((t2 - t1)) ms" || echo "$d: timeout"; done
# 尽可能选知名大站,同时避开一些检查严格的站点,比如Microsoft.com,bing.com等
#
TLS配置
Reality
1、选择Reality
2、输入名称,可自定义
3、点击生成私钥&公钥等
4、填入上述获取到的伪装域名
5、Reality默认UTLS,制定浏览器指纹,默认chrome即可
6、保存

TLS
1、选择TLS
2、输入名称,可自定义
3、点击生成私钥&公钥等
4、开启SNI和ALPN
5、填入上述获取到的伪装域名
6、ALPN选择如图
7、允许不安全连接
6、保存

TLS-UTLS
# 部分节点默认有UTLS,如Reality,不需要手动开启,部分节点则不需要
# 此TLS则是留给需要UTLS,且默认没有的预留
# 操作选项与常规TLS相同,只需要在TLS选项中开启UTLS,并设置为Chrome
入站配置
Vless-Reality
1、协议选择Vless
2、输入节点名称,可自定义
3、设置入站端口,可自定义
4、模板选择Reality
5、保存

# 以下是可选操作,也可不选,用默认
1、选择客户端
2、UDP数据包编码选择xudp
3、保存

Hysteria2
1、协议选择Hysteria2
2、输入节点名称,可自定义
3、设置入站端口,可自定义
4、忽略客户端带宽
5、Hysteria2选项开启混淆密码
6、Hysteria2选项开启Masquerade
7、设置混淆密码,可自定义
8、类型选择Reverse Proxy
9、填入之前获取的伪装域名
10、开启Rewrite Host
11、模版选择TLS
12、保存

TUIC-TLS
1、协议选择TUIC
2、输入节点名称,可自定义
3、设置入站端口,可自定义
4、拥塞控制开启BBR
5、开启Zero-RTT
6、认证超时15
7、心跳包15
8、模版选择TLS
6、保存

# 以下是可选操作,也可不选,用默认
1、选择客户端
2、UDP Relay Mode选择Native
3、保存

Trojan-HTTPUpgrade
1、协议选择Trojan
2、输入节点名称,可自定义
3、设置入站端口,可自定义
4、启用传输
5、类型选择HTTPUpgrade
6、主机域名列表选择之前获取的伪装域名
7、HTTP请求路径,推荐选择/,可自定义,但不推荐
8、模版选择TLS-UTLS,因为需要UTLS
9、启用多路复用
10、保存

# 以下是可选操作,也可不选,用默认
1、选择客户端
2、启用多路复用
3、协议选择smux
4、保存

六、用户配置
# 如图,设置用户名称后,选择用户可用节点,然后保存
# 之后在用户列表点击二维码,即可选择订阅方式或节点内容,点击二维码复制链接
# 当前S-UI面板的Clash订阅存在兼容性问题,所以优先使用常规订阅链接
