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
@@ -47,3 +47,11 @@
|
||||
18. 升内核要显式装 `linux-generic`。(依据:`apt-get upgrade` 把内核三个元包 `kept back`,跑完 `uname -r` 仍是旧内核;`apt install linux-generic` 才会装上新的 image 并在重启后生效。)
|
||||
|
||||
19. 用 ufw 限制 Docker 发布的端口要走 `DOCKER-USER` 链。(依据:`ufw status` 里没有放行规则,端口照样对外可达,因为 Docker 直接写 iptables 的 NAT 链绕过 ufw。)
|
||||
|
||||
## 五、写自动化脚本类
|
||||
|
||||
20. 判断端口是否占用用 `ss -tlnH "sport = :<端口>"`,判空即可。(依据:`ss -tln | awk '$4 ~ ":80 "'` 这种写法永远匹配不到——`$4` 是 `0.0.0.0:80`,末尾没有空格,于是「占用」和「空闲」共用一个返回值,脚本会把正在监听的端口当成空的往下走。)
|
||||
|
||||
21. `--dry-run` 分支里凡是 `cat > 目标文件`、`mkdir`、`cp` 都要先判断 DRY 再执行。(依据:只把命令包进 `run()` 的脚本,往往漏掉 heredoc 写文件这一步,干跑一次就把线上 vhost 覆盖了。)
|
||||
|
||||
22. 验收脚本要统计「实际跑了几个检查项」,为 0 时以非 0 退出。(依据:不带参数的验收脚本会把「什么都没查」打印成「全部通过」,这种绿灯比红灯更危险。)
|
||||
Reference in new issue
Block a user