首页
关于
Search
1
别让 DDoS 刷爆你的钱包:为你的VPS加一个保险丝
52 阅读
2
记录第一次部署VPS,docker环境下部署Nginx Proxy Manager+Typecho+3x-ui+UFW 状态防火墙 + SSL 证书自动续签
38 阅读
3
网关级降维打击:为什么家宽用户 Lucky 才是 IPv6 的终极方案
30 阅读
4
利用Nginx给3X-UI穿上防弹衣,再给Nginx穿一件顺滑的"透明钢板衣"(上)
27 阅读
5
欢迎使用 Typecho
23 阅读
实验室
星光与尾巴
智居未来
归档
登录
Search
Khalil
累计撰写
9
篇文章
累计收到
11
条评论
首页
栏目
实验室
星光与尾巴
智居未来
归档
页面
关于
搜索到
9
篇与
khalil
的结果
2026-01-11
网关级降维打击:为什么家宽用户 Lucky 才是 IPv6 的终极方案
前言:从“失联”说起 就在今晚,我经历了一场跨越成都东三环外到西三环外的“远程自救”。起因是部署在另一处住宅忘记缴电费,直接停电了,当我缴费后,家里上百个设备全部重启,绿米本身自带的服务倒是能正常一键关灯,但是进不了HA,联动的其他品牌全部失联导致原本通过 Nginx Proxy Manager (NPM)构建的访问链路由于 IPv6 地址变动和 Docker 启动顺序问题彻底失联。在满屏的 Connection Refused 面前,我意识到:在家庭宽带这个特殊的战场上,传统的“服务器运维思维”可能真的跑偏了。经过一番救急,我最终决定将所有核心权限收归 Lucky。这一变动,让我看清了家宽 IPv6 环境下的“降维打击”真相。一、 传统方案的“泥潭”:为什么 NPM 在家宽不香了? 在折腾初期,我们习惯于在 Docker 里部署 NPM (Nginx Proxy Manager)。它界面美观、逻辑清晰,是 IPv4 的王者。但在家宽 IPv6 环境下,它有三个难以逾越的“坑”:Docker 网桥的隔离感:NPM 跑在 HA 或 NAS 的容器里,对 IPv6 的感知是“二手”的。为了让它拿到公网 v6 地址,你可能得折腾 macvlan 或修改 Docker 的 daemon.json。防火墙的“多层套娃”:流量要先过路由器防火墙,再过宿主机防火墙,最后才到 NPM。身处异地时,任何一层规则没对上,就是永久失联。对动态 IP 的迟钝:家宽 IP 随时会变。NPM 侧重于静态代理,它本身不具备强大的 DDNS 联动能力,需要配合其他脚本才能生存。二、 Lucky 的“降维打击”:网关层的降临 当我们将视角从“服务器”转向“路由器(网关)”时,Lucky 的优势就体现出来了。1.部署位置的“近水楼台 Lucky 运行在 AX3600 这种路由器底层。它离公网最近,对 IPv6 的变动有着天然的敏感度。不需要复杂的网桥设置,它勾选一下就能直接监听双栈流量。这也是为什么lucky不要部署在你的HA盒子中的原因。HA中想要获取到真正的ipv6也是一个折腾事。2.安全入口”的物理隔离 这是今晚最深刻的体会。NPM 只有密码保护,而 Lucky 的 “安全入口”(Path 后缀) 功能,让你即便暴露了端口,黑客直接访问域名也只会看到 404。正确访问方式:https://lucky.你的域名:你lucky设置的端口号/后台管理设置中的安全入口防护效果:暗号不对,大门不开。这种基于路径的隐身术,是家宽防扫描的终极手段。3.DDNS + 证书 + 转发的一站式闭环 今晚的救援中,我通过 HA 的 SSH 终端“隔山打牛”,仅仅通过一行代码,它就自动完成了获取新 IP、更新 CF 解析、校验证书等一系列动作: docker restart lucky三、 实战总结:Lucky 还是 NPM?经过今晚的折腾,我总结出了一套家宽选型准则:选择 NPM 的场景:你有固定公网 IPv4,或者你在局域网内部有极其复杂的 Web 头部管理需求。选择 Lucky 的场景:你是典型的 IPv6 家宽拨号用户,追求极高的稳定性,且希望在路由器重启后能“无感复活”。结论:要玩专业 Web 配置选 NPM;要玩 IPv6 直连和动态域名,Lucky 才是标准答案。四、 避坑指南(备忘录)别给安全入口“代填暗号”在 Lucky 的 Web 规则里,后端地址千万别带后缀:错误设置:http://127.0.0.1:16601/lucky666(会导致安全入口形同虚设)正确设置:http://127.0.0.1:16601SSH 兼容性命令连接老旧的小米路由器 SSH 时,如果报错算法不匹配,请使用: ssh -o HostKeyAlgorithms=+ssh-rsa root@192.168.31.1容器自启动策略任何时候都要执行这条命令,这是异地运维的最后一根救命稻草: docker update --restart=always lucky后记: 当我在浏览器输入那个带暗号的地址,重新看到 Lucky 管理界面的那一刻,我知道,这场“网关保卫战”我打赢了。在这个 IPv6 逐渐普及的时代,选对工具,比努力折腾更重要。💡 khalil碎碎念如果你也遇到了类似的问题,或者在 8443 端口转发上卡住了,欢迎在评论区留言。最好的防御就是让攻击者连门都找不到。
2026年01月11日
30 阅读
1 评论
3 点赞
2026-01-10
利用Nginx给3X-UI穿上防弹衣,再给Nginx穿一件顺滑的"透明钢板衣"(上)
🛡️ 拒绝裸奔:我是如何利用 NPM 给 3X-UI 穿上“防弹衣”的 在运维自己的域名的过程中,很多人(包括我自己)习惯于直接通过 IP:端口 访问面板。虽然方便,但这种做法无异于在荒郊野外开着门睡觉。今天,我们就来复盘一次实战:如何利用 Nginx Proxy Manager (NPM) 配合 2FA,把我们的面板彻底隐藏在安全迷雾之中。🔍 为什么要折腾这一套? 在正式操作前,我们先思考一个问题:如果你的面板地址是 http://1.2.3.4:3854,这意味着什么?流量全透明:你的密码在公网上是裸奔的。坐标全公开:全球的扫描器每秒钟都在爆破你的 3854 端口。脆弱的防线:一旦密码被破解,你的服务器控制权就拱手让人。在深入细节之前,我们先来看看这台服务器的架构是如何从“简陋”走向“安全”的。1.原始架构:直接暴露 (Direct Access) 最初,我们的流量是点对点的。这种架构下,面板就像一个没有围墙的房子,任何知道 IP 的人都可以来敲门。路径:用户 -> 公网 IP -> XXXX 端口 (3X-UI)风险:流量明文传输、端口完全暴露、易受暴力破解。2.进化架构:反向代理 + 安全闭环 (NPM + 2FA) 这是我们今天最终实现的架构。我们引入了 NPM (Nginx Proxy Manager) 作为唯一的“安保门卫”,并将面板深藏在 Docker 内部。路径:用户 -> 443 端口 (NPM 加密入口) -> 内部网桥 -> 2083 端口 (3X-UI)防御层级:1.SSL 层:强制 HTTPS,解决数据窃听。2.路径层:非公开的 Base Path(如 /Secret123/),阻断盲目扫描。3.防火墙层:UFW 封锁公网 XXXX 端口,仅允许内部流量。4.应用层:2FA(谷歌验证器)提供最终的动态校验。所以我们的目标是:让原本暴露在外的 http://148.ip:端口/3xui根路径/ 彻底消失,取而代之的是一个经过 SSL 加密、物理端口封锁、并拥有两步验证保护的堡垒机。下面,我们就从架构的拆解开始,一步步完成这场安全进阶。”🛠️ 三步走:打造“隐身”架构 第一步:让面板隐藏在 HTTPS 之后我们不再直接访问端口,而是通过 NPM 设置一个反向代理。我们这样做的好处是:面板流量被 SSL 加密,即便在公共 Wi-Fi 下也无法被窃听。我们可以利用 NPM 的 Advanced 配置,为面板设置一个复杂的“隐藏路径”(Base Path)。# 在 NPM 的高级配置中实现精准转发 location /加一个你喜欢的跟目录比如Secret123/ { proxy_pass http://172.17.0.1:你的端口号; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; # 开启 WebSocket 支持,这是节点连接的关键 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; }如果你是dock部署的NPM那的一定要填172.17.0.1,必须是这个,默认情况下,Docker 会在你的 VPS 内部创建一个虚拟网桥 172.17.0.1 NPM 容器:它运行在 Docker 内部,它看不见 外网 IP ,但它能看见 172.17.0.1为了配合防火墙封锁公网端口这是最关键的安全逻辑:如果填公网 IP : 流量会跑出服务器绕一圈再回来。如果你为了安全用 ufw 关掉了 你3xui端口的 端口,NPM 自己也就访问不到了,会导致 502 Bad Gateway。如果填 Docker IP (172.17.0.1:3xui端口号): 流量走的是内部私有通道。即使你把公网 3xui端口 端口完全封死,NPM 依然能从“后门”进到 3X-UI 面板。第二步:物理断开,关闭公网端口 既然已经有了 NPM 转发,我们就不再需要 3xui 端口对全球开放。我们通过 ufw 筑起一道高墙:# 禁止所有公网 IP 访问 3xui端口 ufw deny 3xui端口/tcp # 仅允许 Docker 内部网段访问该端口(确保 NPM 能转进去) ufw allow from 172.17.0.0/16 to any port 2083这一步至关重要:现在,黑客扫描你的 IP 时,2083 端口是“关闭”状态,他们甚至不知道你运行了 3X-UI。第三步:最后的防线——谷歌验证器 (2FA)即便有人猜中了你的3xui的域名,撞见了你的隐藏路径,甚至破解了你的强密码,我们还有最后一张王牌:Google Authenticator。通过开启两步验证,每次登录都需要手机上的动态验证码。这种“物理隔离”的验证方式,让安全级别直接从“个人博客”提升到了“金融级”。两步验证开启步骤开启步骤登录面板:通过你的域名地址进入 3X-UI 面板。进入设置:点击左侧菜单栏的 “面板设置” (Panel Settings)。安全设定:在安全设定中找到 “双重验证” (启用2FA)。保存并重启:点击“保存设置”并按照提示重启面板服务。
2026年01月10日
27 阅读
0 评论
1 点赞
2026-01-09
记录第一次部署VPS,docker环境下部署Nginx Proxy Manager+Typecho+3x-ui+UFW 状态防火墙 + SSL 证书自动续签
🏗️ 架构概览前端网关:Nginx Proxy Manager (Docker 容器)内容管理:Typecho (Docker 容器)代理核心:3x-ui (原生安装) + Xray 内核安全防护:UFW 状态防火墙 + SSL 证书自动续签第一步:环境初始化与 Docker 部署首先更新系统并安装 Docker 基础环境。apt update && apt upgrade -y apt install -y curl git socat ufw curl -fsSL https://get.docker.com | sh遇到问题 1:Docker 内部转发 504 Gateway Timeout表现: 部署 NPM 后,访问域名能看到欢迎页,但转发到后台服务时提示 504 错误。解决方法: 这是因为防火墙拦截了 Docker 网桥的内部通信。需要放行本地和 Docker 网段的流量。# 解决 504 的关键命令 ufw allow from 127.0.0.1 ufw allow from 172.17.0.1 ufw reload第二步:部署 Nginx Proxy Manager 与 Typecho 容器使用 docker-compose 在 /root/web_stack 目录下统一部署。YAMLversion: '3' services: npm: image: 'jc21/nginx-proxy-manager:latest' container_name: npm restart: always ports: - '80:80' - '443:443' - '81:81' volumes: - ./npm_data:/data - ./letsencrypt:/etc/letsencrypt typecho: image: 'joyqi/typecho:latest' container_name: typecho restart: always environment: - TYPECHO_SITE_URL=https://blog.9698424.xyz volumes: - ./typecho_data:/data` 第三步:安装 3x-ui 与 Xray 内核执行一键脚本并进入面板配置:bash <(curl -Ls https://raw.githubusercontent.com/mack-a/v2ray-agent/master/install.sh)遇到问题 2:Xray 状态为 "Not Running" (exit status 23)表现:开启 XHTTP 或 TLS 后,内核频繁崩溃重启。原因: 在 NPM 架构下,Xray 这一端绝不能开启 TLS 安全设置。解决方法: 将入站设置中的 Security 设为 none,把加密任务交给 NPM。第四步:NPM 反向代理配置 (XHTTP 专项)为了让代理节点通过 443 端口伪装成博客流量,需要在 NPM 中设置 Custom Location。Define Location: /khalil-video/Forward Hostname: 172.17.0.1 (宿主机 IP)Forward Port: 3001 (Xray 监听端口)Advanced 配置 (解决 XHTTP 断流):Nginxproxy_buffering off; proxy_request_buffering off; proxy_http_version 1.1;第五步:Typecho 主题美化 (Joe)遇到问题 3:无法找到宿主机挂载目录表现: cd /root/typecho 提示目录不存在。解决方法: 使用 docker inspect 确认路径,并利用 docker cp 强制安装。#1. 查找路径 docker inspect typecho | grep -A 5 "Mounts"2. 拉取并强制安装 Joe 主题cd ~ && git clone https://github.com/HaoOuBa/Joe.git Joe docker cp Joe typecho:/app/usr/themes/3. 修正权限 (解决后台无法保存设置的问题)docker exec -it typecho chown -R www-data:www-data /app/usr/themes/Joe第六步:进阶功能 (WARP 与流媒体解锁)由于 RackNerd IP 可能被奈飞封锁,我们引入 Cloudflare WARP 提升 IP 纯净度。Bash# 安装 WARP-Gowget-N https://gitlab.com/fscarmen/warp/-/raw/main/menu.sh && bash menu.sh配置逻辑:入站:你 → 443 端口 (NPM) → 3001 端口 (Xray)出站分流:普通流量 → VPS 原生出口Netflix/Disney+ → WARP 虚拟网卡接口🛠️ 日常维护常用命令查看服务状态:x-ui status && docker ps查看博客日志:docker logs -f typecho查看 NPM 错误:docker logs -f npm重置 Xray 配置:若面板打不开,可手动编辑 /usr/local/x-ui/bin/config.json。
2026年01月09日
38 阅读
2 评论
15 点赞
2026-01-09
欢迎使用 Typecho
如果您看到这篇文章,表示您的 blog 已经安装成功.
2026年01月09日
23 阅读
1 评论
0 点赞
1
2