feat(dual-link-proxy): 一键安装脚本,空机器一条命令装完链路与面板
- 新增 scripts/install-dual-link.sh:装 3x-ui → 建两条 VLESS+WS 入站(绑 127.0.0.1) → 80 vhost 完成 ACME → 签证书 → 切 443 → 可选面板子域 + Basic Auth → 实测 101 并打印链接; 支持 --dry-run 干跑、--yes 无人值守、已有 3x-ui 时复用而不重置密码 - 3xui-api.py 补 uuid / link / del-inbound 三个子命令,add 的 --uuid 改为可选 - verify-links.sh 统计实际检查项,空跑以退出码 2 报错,避免假通过 - 避坑清单补三条脚本类实测:ss 端口判定的字段误用、dry-run 仍落盘、验收空跑
This commit is contained in:
1 parent
cc86680e05
commit
b2016af916
5 files changed
+655
-5
No files matched your search
@@ -14,8 +14,10 @@ set -u
|
||||
UA="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"
|
||||
WS_KEY="dGhlIHNhbXBsZSBub25jZQ=="
|
||||
FAIL=0
|
||||
CHECKS=0
|
||||
|
||||
check_link() {
|
||||
CHECKS=$((CHECKS+1))
|
||||
local spec="$1"
|
||||
local host="${spec%%:*}"
|
||||
local path="${spec#*:}"
|
||||
@@ -33,6 +35,7 @@ check_link() {
|
||||
}
|
||||
|
||||
check_site() {
|
||||
CHECKS=$((CHECKS+1))
|
||||
local host="$1"
|
||||
local code
|
||||
code=$(curl -s -o /dev/null -w "%{http_code}" --max-time 20 "https://${host}/" 2>/dev/null)
|
||||
@@ -45,6 +48,7 @@ check_site() {
|
||||
}
|
||||
|
||||
check_panel() {
|
||||
CHECKS=$((CHECKS+1))
|
||||
local url="$1"
|
||||
local auth="$2"
|
||||
local code
|
||||
@@ -79,6 +83,10 @@ if [ -n "${PANEL_URL:-}" ]; then
|
||||
fi
|
||||
|
||||
echo
|
||||
if [ "$CHECKS" -eq 0 ]; then
|
||||
echo "没有给任何检查项(--link / --site / --panel),这不叫通过"
|
||||
exit 2
|
||||
fi
|
||||
if [ "$FAIL" -eq 0 ]; then
|
||||
echo "全部通过"
|
||||
else
|
||||
|
||||
Reference in new issue
Block a user