参考:https://tailscale.com/blog/how-nat-traversal-works
一、相关工具(含使用场景)
在线检测NAT类型:NAT Checker(核心功能:检测映射/过滤行为,精准判定NAT1-9类型,建议打洞前必测)
通用打洞工具:Tailscale(适配EasyNAT全场景,HardNAT需依赖UPnP,操作简单,适合新手)
复杂NAT适配工具:Easytier(支持端口扫描/预测,可尝试HardNAT组合,适合进阶用户)
辅助排查工具:Wireshark(抓包分析流量走向,定位打洞失败原因,如端口过滤、映射端口变化)
二、必备知识(打洞原理基础)路由器通过两张核心表实现NAT管控,这是打洞能否成功的关键:
NAT映射表:记录内部主机(内网IP:端口)与公网(公网IP:端口)的映射关系,仅当内部主机向外发起请求时生成/更新;
状态表:记录内部主机的对外请求状态(如请求目标IP:端口、连接状态),仅当外部流量与状态表匹配时,才允许穿透NAT进入内网。
打洞的核心逻辑:通过中转服务器交换双方公网映射信息,再主动发起请求触发对方状态表更新,让后续流 ...
用过 Vercel 的开发者大概都对它的便捷性印象深刻 —— 将 Node 项目推送到 GitHub 后,几分钟内就能自动构建部署并提供访问服务,免费计划也足够日常折腾。但随着 Vercel 域名 DNS 污染越来越频繁,不挂梯子几乎无法访问,好好的免费资源就这么闲置了实在可惜。于是我尝试用腾讯云 EO(EdgeOne)对其进行加速,过程中踩了个典型的坑,最终摸索出解决方案,特此记录分享给有同样需求的朋友。
一、踩坑现场:自信配置却遭遇 522 死循环核心诉求很明确:利用腾讯云 EO 的免费计划,解决 Vercel 域名访问受阻的问题。我想当然地认为加速配置的关键就是 “回源 Host 填写 Vercel 提供的默认域名(如 xxx-project.vercel.app)”。
按照这个思路配置完成后,满心期待地等待部署结束,结果访问时直接弹出 522 错误 —— 服务器无响应。反复检查配置参数、重新部署项目,甚至更换网络环境测试,522 错误始终如影随形,完全摸不着头脑。
二、问题本质:多层 CDN 嵌套导致回源失效我翻了一圈 CDN 加速的核心原理文档,再结合 Google 到的案例 ...
在数据查询场景中,“如何高效呈现大量数据” 是开发者绕不开的问题。分页作为解决 “数据量过大导致的内存溢出、响应缓慢” 的核心手段,主要分为数据库分页(数据库端过滤 + 限制返回条数)和程序分页(全量查询后内存中分片)两种实现方式。
很多开发者在选型时会陷入纠结:到底该让数据库 “多干活”,还是让应用程序 “扛压力”?其实两者没有绝对优劣,核心取决于数据量、业务复杂度、实时性要求等关键因素。本文将从原理、场景、优缺点、实操建议四个维度,帮你彻底理清选型逻辑,避免踩坑。
一、先搞懂:两种分页的核心原理在深入选型前,我们需要先明确两种分页的本质区别 ——数据过滤和分片的 “执行位置” 不同。
1. 数据库分页:数据库端 “按需取数”数据库分页的核心是让数据库只返回当前页需要的数据,通过 SQL 语法(如 LIMIT/OFFSET、ROW_NUMBER())或条件过滤,在数据查询阶段就完成 “筛选 + 分片”,最终只将单页数据(如 10 条、20 条)返回给应用程序。
典型实现示例:
MySQL:SELECT * FROM orders WHERE status = 1 ORDER BY ...
部署后浏览器从「根目录(/favicon.ico)」获取图标,而非你设置的 static/favicon.ico,核心原因是 浏览器的默认行为 + 配置 / 引用缺失,具体拆解和解决步骤如下:
一、核心原因:浏览器的「默认 /favicon.ico 请求」这是最根本的原因 ——浏览器会自动向网站根目录发送 /favicon.ico 请求,无论你是否在页面中引用:
即使你在 <head> 中写了 <link rel="icon" href="/static/favicon.ico">,部分浏览器(如 Chrome、Edge)仍会先尝试请求 /favicon.ico(根目录),失败后才会使用你指定的路径;
部署环境中,若根目录没有 favicon.ico,且你的页面引用有问题(如路径错误、缓存),就会出现「图标不显示,Network 面板看到 /favicon.ico 404」的现象。
二、其他辅助原因(部署环境常见)
页面引用路径错误:
本地开发时 url_for('static', filename= ...
在使用腾讯云 EdgeOne 海外节点加速海外业务时,很多开发者会遇到一个核心问题:Nginx 日志中记录的是 EdgeOne 节点 IP 而非用户真实 IP,导致无法进行用户行为分析、地域统计和异常访问拦截。本文将从「问题原理」「手动配置」「自动化更新」「故障排查」四个维度,提供一套适配 Nginx + 宝塔面板的完整解决方案,新手也能快速上手。
一、核心原理:为什么需要特殊配置?当用户访问经过 EdgeOne 加速的网站时,请求会先经过 EdgeOne 海外节点(反向代理),再由节点转发到源站 Nginx。此时 Nginx 会默认将「直接连接的客户端 IP」(即 EdgeOne 节点 IP)识别为用户 IP,而非真实的用户公网 IP。
解决思路的核心是「信任代理」:
EdgeOne 节点会在转发请求时,通过 X-Forwarded-For 头携带用户真实 IP(格式:用户真实IP, 节点IP1, 节点IP2);
配置 Nginx 信任所有 EdgeOne 节点 IP,让 Nginx 从 X-Forwarded-For 头中自动跳过节点 IP,提取最原始的用户真实 IP。
关键 ...
体验网址:音悦台开源仓库:Pymusic
🌐 项目简介
这是一个基于Flask框架开发的个人音乐播放器项目,旨在模拟网易云音乐的核心功能并提供简洁的用户体验。该项目集成了网易云音乐API,支持音乐搜索、歌单管理、用户认证等功能,为音乐爱好者提供一个轻量级的音乐播放和管理平台。
🌟 核心亮点
完全免费:基于网易云音乐资源爬虫,无付费门槛
安全稳定:依托网易云底层资源,播放与数据传输更可靠
全端适配:自适应各类分辨率设备,手机、电脑端体验一致
开放接口:提供公开 API 接口,支持二次开发(详见「关于我们」页面)
轻量高效:无冗余功能,聚焦核心需求,加载速度快
🚀 功能特性
精准音乐搜索:支持按歌曲名、歌手检索网易云资源,分页展示结果,快速定位目标音乐
灵活歌单管理:创建、编辑、删除个人歌单,自由添加 / 移除歌曲,支持自定义歌单封面
安全用户系统:完整的注册、登录与身份验证机制,保障个人歌单与播放数据安全
历史记录管理:自动记录播放轨迹,支持查看最近播放,内置数据清理工具优化性能
热门音乐推荐:同步网易云热门歌单,一键发现优质音乐,拓宽听歌边界
基础播放功能:支持歌曲播放 / ...
学习心得
未读首部/的作用加/ 是根路径相对定位,不加/ 是当前路径相对定位,最终指向的 URL 会完全不同
1. 加 /:从网站根目录开始找href=”/xxx” 中的 / 代表网站的根目录(比如 https://www.example.com/) ,不管当前页面在哪个层级,都会从根目录出发拼接路径。示例:
网站根目录:https://www.example.com/
当前页面 URL:https://www.example.com/a/b/c.html
href=”/about” → 最终指向:https://www.example.com/about
href=”/static/css/style.css” → 最终指向:https://www.example.com/static/css/style.css
2. 不加 /:从当前页面所在目录开始找href=”xxx” 是相对于当前页面的 URL 路径拼接,相当于 “在当前文件夹里找目标资源”。示例(和上面同个网站、同个当前页面):
当前页面 URL:https://www.example.com/a/b/c.html (当前目录是 / ...
学习心得
未读本文整理了 Linux 系统中文件操作、权限管理、系统监控、网络操作等高频命令,覆盖新手入门到日常运维场景,格式清晰可直接查阅。
一、文件与目录操作命令(最基础高频)1. ls - 列出目录内容功能:列出指定目录下的文件 / 目录,默认列出当前目录。核心参数:
-l(长格式):显示文件权限、所有者、大小、修改时间等详细信息。
-a(all):显示所有文件(含隐藏文件,以.开头)。
-h(human-readable):以人类可读格式显示文件大小(如 KB、MB)。
-r(reverse):反向排序(默认按字母升序)。
-t(time):按修改时间排序(最新在前)。
示例:ls -lha # 长格式显示当前目录所有文件,含隐藏文件,大小人性化显示ls /home/user # 列出指定目录/home/user下的内容
2. cd - 切换工作目录功能:切换当前终端的工作目录。核心用法:
cd 目录路径:切换到指定目录(绝对路径 / 相对路径)。
cd ~ 或 cd:切换到当前用户的家目录(如/home/ubuntu)。
cd ..:切换到上级目录。
cd -:切换到上一次所在的 ...
学习笔记
未读MySQL学习笔记
名称
全称
简称
数据库
存储数据的仓库,数据是有组织的进行存储
DataBase (DB)
数据库管理系统
操纵和管理数据库的大型软件
DataBase Management System (DBMS)
SQL
操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准
Structured Query Language (SQL)
net start mysql80 //启动mysqlnet stop mysql80 //停止mysqlmysql -h ip -P 端口 -u 用户名 -p 密码 //连接mysql
SQLSQL通用语法
SQL语句可以单行或者多行书写,以分号结尾
SQL语句可以使用空格/缩进来增强语句的可读性
MySQL数据的SQl语句不区分大小写,关键词建议用大写
注释:
单行注释:— 或者#(MySQL独有)
多行注释:/ /
SQL分类
分类
全称
说明
DDL
Data Definition Language
数据定义语言,用来定义数据库对象(数据库, ...
学习心得
未读数据库管理技术的基本概念
数据
信息
数据处理
数据库管理技术的发展阶段
人工管理
文件系统
数据库系统
大数据
数据库系统的组成
硬件系统
操作系统
.数据库
数据库管理系统
数据库应用系统的开发工具及相关接口软件
数据库应用系统
用户
数据库管理员
数据库分析师
应用程序员
终端用户
数据库体系结构
集中式系统
分布式系统
个人计算机系统
客户/服务器系统
浏览器/服务器系统
数据库的三级模式
内模式
模式
外模式
数据库的二级映像
外模式/模式
模式/内模式
数据库管理系统的功能
数据定义
数据操控
数据库运行控制
数据字典
登录方式
windows登录,本地登录
sqlserver登录,远程登录
数据库备份mdf数据文件,ldf日志文件
分离->附加 分离后数据库会不可用
备份->还原 保存为.bak文件 任务——>备份
数据库脚本
注释单行注释 —多行注释 / /
数据库相关创建数据库完整语法
create database DBTESTon --数据文件( name = 'DBTEST ...


