frp 内网穿透搭建指南
frp 的本质:工作在端口转发/反向代理层。内网侧 frpc 主动连接公网侧 frps,frps 监听公网端口,并把 TCP/UDP/HTTP 等流量通过已建立的通道转发到内网服务。 本文档面向下面这个环境: 12345678云服务器(有公网 IP) 公网 IP: 1.2.3.4 运行 frps本地服务器(没有公网 IP 或不想暴露公网) 局域网 IP: 192.168.10.2 本地测试服务: 127.0.0.1:8080 运行 frpc 目标是:外部访问 1.2.3.4:18080 时,流量转发到本地服务器的 127.0.0.1:8080。 适用场景 临时把本地测试服务暴露给外部人员访问。 接收第三方 webhook 回调,例如 GitHub、微信、支付平台回调。 本地没有公网 IP,但需要短期公网访问入口。 外部访问者不能或不方便安装 VPN 客户端。 不适用场景 长期暴露数据库、Redis、管理后台等高风险服务。 公司内部开发/测试人员访问内网服务。 想把多台机器组成统一私有网络。 想让测试环境整体出网走生产服务器。 这些场景更适合 WireGuard、...
Nginx 基础与最佳实践指南
本文用于建立 Nginx 的基本认识,并给中小型项目沉淀一套可复用的配置方式。 维护: 本文最后核对日期为 2026-06-09。Nginx 配置细节会随版本、发行版打包方式和模块启用情况变化。落地前应执行 nginx -v、nginx -V、nginx -T 核对当前机器的实际配置。 Nginx 是什么 Nginx 常见角色: 角色 说明 静态文件服务器 直接返回 HTML、CSS、JS、图片、下载文件 反向代理 接收外部请求,转发给后端 Java / Node / Go 服务 HTTPS 入口 终止 TLS,管理证书和 HTTPS 跳转 负载均衡器 把请求分发给多个后端实例 TCP / UDP 代理 通过 stream 模块代理四层流量 简单网关 做域名、路径、Header、访问控制、日志等入口治理 不要把 Nginx 当成业务应用本身。它适合处理入口流量、连接、静态资源、反代、TLS 和轻量路由;业务权限、业务校验、业务审计仍然应该由应用系统负责。 核心运行模型 Nginx 的基本模型是: 1234master process ...
systemd Service 与 Timer 指南
本文整理 systemd service、systemd timer 以及常见相关 unit 的使用方法。 重点目标不是背配置项,而是建立一条清晰的阅读路径: 1234567systemd 管什么 -> unit 有哪些类型 -> service 怎么描述一个服务 -> target / enable 怎么决定开机自启 -> timer 怎么替代 cron -> socket / path / mount 这类 unit 什么时候用 -> 出问题怎么排查 1. systemd 和 unit 是什么 systemd 是 Linux 上常见的系统与服务管理器。 它负责管理: 12345678系统启动流程后台服务定时任务挂载点socket 监听路径变化触发日志依赖关系 在 systemd 里,被管理的对象统一叫 unit。 常见 unit 类型: 123456.service 后台服务或一次性任务.timer 定时触发任务.target 启动阶段或一组 unit 的集合.socket socket 激活.m...
Docker 存储挂载指南
Docker 常见挂载方式有三种:volume、bind mount、tmpfs。 参考: Docker Storage: https://docs.docker.com/engine/storage/ Docker Volumes: https://docs.docker.com/engine/storage/volumes/ Docker Bind mounts: https://docs.docker.com/engine/storage/bind-mounts/ Docker tmpfs mounts: https://docs.docker.com/engine/storage/tmpfs/ 快速结论 类型 位置由谁管理 数据生命周期 适合场景 volume Docker 独立于容器,容器删除后默认保留 数据库、消息队列、应用持久化数据 bind mount 用户指定宿主机路径 跟宿主机文件一致 源码、配置文件、本地调试 tmpfs 内存 容器停止后消失 临时缓存、敏感临时文件 选择原则: 123持久化数据 -> volume宿主机...
WSL2 开发栈搭建备忘
本文档记录这台 Windows 机器围绕 WSL2 展开的开发环境方案,用于后续迭代和排障。当前决策是:Windows 负责桌面和 GUI,WSL2 负责开发运行时,IDEA 使用 Remote Development -> WSL。 先看结论 如果只看这份文档的最终建议,先记住这几条: Windows 只负责 GUI 软件;开发命令、构建、测试、AI agent 都放在 WSL 内运行。 项目源码统一放在 ~/workspace/<project>,不要长期放在 /mnt/c/...、/mnt/d/...。 代理优先复用 Windows 上的 Clash,通过环境变量让 WSL 内工具走代理。 IDEA 使用 Remote Development -> WSL,让 IDE backend、终端、索引和运行配置都在 WSL 内。 Node、Java、Python 分别用 nvm、SDKMAN、uv 管理,不混用 Windows 工具链。 推荐执行顺序 第一次搭环境时,按下面顺序往下做更顺: 在 Windows 侧安装并确认 WSL2。 在 WSL 内...
VS Code WSL 远程开发指南
本文档翻译并整理自 Visual Studio Code Remote Development in WSL 教程,用于记录如何启用 Windows Subsystem for Linux(WSL),并通过 VS Code 的 WSL extension 在 Linux 环境中进行开发。 注意: 本文聚焦 VS Code + WSL 的开发体验。WSL 安装方式、VS Code 扩展能力和界面细节可能随版本变化,使用前以 VS Code 和 Microsoft 官方文档为准。本文最后核对日期为 2026-05-26。 适用场景 想在 Windows 上使用 Linux 工具链开发。 想让 VS Code 的终端、语言扩展、调试器都运行在 WSL 中。 不想在 Windows 和 Linux 两边重复安装 Python、Node、编译器等开发工具。 希望项目路径、运行时、依赖和调试环境保持一致。 前置条件 你需要先安装 Visual Studio Code。 安装 WSL Extension VS Code 的 WSL extension 可以让 VS Code 连接到 W...
WSL2 与 Hyper-V 网络关系说明
本文整理 WSL2、Hyper-V、普通虚拟机和 Windows 虚拟网卡之间的关系。重点说明 vEthernet (Default Switch) 与 vEthernet (WSL ...) 的区别,以及默认 NAT 模式下 WSL 如何判断 Windows host IP。 先看结论 Hyper-V 是 Windows 的虚拟化底座。 WSL 是 Windows 上的 Linux 开发环境。 WSL2 使用 Windows 虚拟化能力运行轻量 Linux 环境,但使用体验不是普通虚拟机。 vEthernet (Default Switch) 主要服务普通 Hyper-V 虚拟机。 vEthernet (WSL ...) 主要服务 WSL2。 默认 NAT 模式下,WSL 访问 Windows Clash 代理时,优先用 WSL 内的默认网关,不要手写 Windows ipconfig 里的某个地址。 Hyper-V 和 WSL 是什么关系 可以把它们理解成: 123Hyper-V = Windows 的虚拟化底座 / 虚拟机平台WSL = Windows 上运行 ...
Linux 目录结构速查
Linux 目录不建议硬背,先按“它主要放什么东西”来记。排查问题时,目录结构其实是在帮你快速判断:配置去哪找、日志去哪看、应用放在哪、运行状态在哪、临时文件能不能保留。 一句话: 123456配置去 /etc日志去 /var/log 或 journalctl应用去 /home、/opt、/srv运行状态去 /run临时文件去 /tmp手工安装工具去 /usr/local 或 /opt 常用目录 /etc:配置文件 系统和服务配置大多放在这里。 常见例子: 12345/etc/nginx//etc/mysql//etc/wireguard//etc/squid/squid.conf/etc/systemd/system/ 常见用途: 查服务配置。 修改 systemd unit。 查 WireGuard peer 配置。 查 Nginx、MySQL、Squid 等服务配置。 排查服务异常时,通常先看: 12systemctl status 服务名systemctl cat 服务名 systemctl cat 可以直接看到服务实际加载了哪些 unit 文件。 /var:运行过程...
服务器基础配置与轻量部署指南
本文用于给单机或少量服务器上的中小型项目建立一套可复制的生产部署方式。核心思路是: 后端常驻进程交给 systemd 管理。 入口流量、静态资源和反向代理交给 Nginx 管理。 真实环境变量放在服务器 /etc/<app>/<app>.env。 项目仓库只保存模板、脚本和说明,不提交真实密钥。 这套方式不追求一开始就容器化、网关化或平台化。先把目录、配置、脚本、验收和回滚边界固定下来,后续项目就能按同一套流程复制。 维护: 本文最后整理日期为 2026-06-09。systemd 和 Nginx 的具体命令可能受发行版影响。落地前应结合当前服务器执行 systemctl --version、nginx -v、nginx -T 核对实际环境。 基础初始化 获取服务器 服务器可以直接从阿里云、腾讯云、华为云等云厂商购买。个人博客、小工具或低流量服务,入门阶段通常可以先从 2c2g 规格开始。 拿到服务器后先确认三件事: 公网 IP 或绑定域名。 SSH 登录用户和初始密码。 安全组已放行 SSH 端口,默认是 22。 不同云厂商的默认登录用户不完...
Axios Get Started
Axios是什么? Axios 是一个基于 promise 网络请求库,作用于node.js 和浏览器中。 它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生 node.js http 模块, 而在客户端 (浏览端) 则使用 XMLHttpRequests。 主要功能 从浏览器创建 XMLHttpRequests 自动转换JSON数据 拦截请求和响应 ps: Axios功能很多详情请见官网(文末贴出) 基本使用 发送get请求 123456789axios.get('http://user/account/info',{ headers: { Authorization: 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1aWQiOjEsImV4cGlyZV90aW1lIjoxNzI5NjkyMjk4ODgxfQ.c1COcBtlB1NWQumOBbb_Dlvo-lX13...
