公网端口转发与 VPS + FRP:谁能看到真实访客 IP?

在自建服务(如 Web、SSH、邮件、游戏服务器等)的过程中,是否能够识别真实访客 IP 是一个非常关键、但常被忽略的问题。本文对两种常见方案进行对比分析: 重点讨论:后端服务究竟能看到什么来源 IP。 一、问题背景 常见的家庭或个人服务器部署方式主要有两类: 两种方案在“能否访问服务”上都可行,但在访问者 IP 可见性上存在本质差异。 二、结论先行 使用公网 IPv4 + 路由器端口转发时,局域网服务通常可以直接看到访问者的真实公网 IP。 使用 VPS + FRP 时,局域网服务只能看到 VPS 的 IP,无法直接获得真实访客 IP。 这是由网络连接模型决定的,而非配置错误。 三、公网 IP + 端口转发的工作机制 端口转发的本质是 DNAT(Destination NAT,目标地址转换): 关键点: 因此: 四、实际表现 在这种架构下: 这是网络层原生行为,无需额外配置。 五、VPS + FRP 的连接模型 FRP 属于反向隧道工具,其连接关系为: 在该模型中: 因此在内核层面: 这是设计决定的,无法通过简单配置绕过。 六、FRP 是否能“传递”真实 …

OpenWrt 公网端口转发 + Nginx 子域名反向代理完整实践与故障排查记录

一、背景与目标 在家庭网络环境中,已获得 公网 IPv4,并希望实现以下目标: 这是一个典型、标准、可长期维护的公网自建服务架构。 二、目标架构设计 最终期望的网络拓扑如下: 设计原则: 三、初始异常现象 在配置完成后,出现以下问题: 四、问题一:OpenWrt 抢占 80 / 443 1. 关键证据 使用 curl -vk 访问子域名,发现: 这说明: 2. 根因定位 检查 OpenWrt 的 uhttpd 配置: 含义: 3. 修复方式(关键一步) 将 OpenWrt 的 Web 管理界面 限制为仅监听 LAN IP: 或直接将管理端口改为 8443。 重启服务: 验证监听状态: 确认 不再存在 0.0.0.0:80/443。 五、问题二:DNAT 规则缺失 在释放 …

家庭网络架构选择:固定 IP 还是 VPS + FRP?

在家庭宽带环境中,如果希望实现远程访问、自建服务或长期运行的后台系统,通常会面临一个关键选择: 使用家庭宽带固定公网 IP,还是使用 VPS + FRP 的反向穿透架构? 这并不是一个“哪个更高级”的问题,而是一个工程取舍问题。本文从安全性、可控性、稳定性和长期维护角度,对两种方案进行系统对比。 一、家庭宽带使用固定 IP 的核心价值 固定公网 IP(静态 IP)最大的优势,在于地址稳定、访问路径直观。 固定 IP 的主要优势 从功能角度看,固定 IP 的确“简单直接”。 二、固定 IP 在家庭场景下的现实问题 在真实环境中,家庭固定 IP 往往伴随一些结构性问题: 1️⃣ 家庭网络被永久暴露 即便配置防火墙,暴露本身就是风险源。 2️⃣ ISP 合规与稳定性不确定 3️⃣ 故障与迁移成本高 三、VPS + FRP:反向穿透的工程逻辑 相比之下,VPS + FRP 并不是“权宜之计”,而是一种明确的工程设计选择。 FRP 的本质 FRP 并非传统意义上的“穿透工具”,而是: 由内向外建立的长期反向连接隧道 家庭网络主动连接 VPS,不接受任何外部入站请求。 四、VPS + …

一次典型的 Postfix 邮件堆积事故:从 DNS 错误到 SMTPUTF8 协议不匹配

摘要 某台运行 Postfix 的 Linux 服务器在连续多天内无法向自建 Mailcow 邮件服务器发送系统告警邮件,邮件队列持续增长。表面错误为 DNS 解析失败(4.4.3 Host not found),在 DNS 修复后仍存在投递异常。最终发现是 SMTPUTF8 协议能力不匹配导致部分邮件被永久拒绝(5.6.7)。 本文完整记录该事故的诊断路径与修复策略。 1. 事故现象 Postfix 日志中持续出现: 邮件队列中积压多封系统邮件(root → admin),时间跨度超过 5 天。 2. 第一层问题:DNS 故障导致长期队列堆积 检查发现系统的 /etc/resolv.conf 曾指向错误的网关地址(例如 192.168.0.1 而不是实际使用的 192.168.1.1),导致 Postfix 在那段时间无法解析 mail.example.net。 DNS 修复后: 均返回正确 IPv4 地址,说明系统 DNS 已恢复。 但邮件仍不断失败,是因为 Postfix 会对 4.x.x …

使用 FRP 与反向代理实现安全内网穿透与真实访客 IP 识别

在自建服务器或家庭网络场景中,常需要让局域网服务能够被公网安全访问。FRP(Fast Reverse Proxy)是一款流行的内网穿透工具,可以帮助实现这一目标。当系统采用 HTTPS 与反向代理架构时,正确获取真实访客 IP 需要额外配置。本文介绍一种基于 FRP + Nginx + Proxy Protocol v2 的通用解决方案。 一、系统结构概览 整个体系由三部分组成: 逻辑关系如下: 这种架构可同时实现多服务转发、端口复用与 TLS 加密通信。 二、FRPS 配置(公网端) FRPS 作为核心入口,建议启用加密、认证和端口白名单。 要点说明: 三、FRPC 配置(内网端) FRPC 运行在内网,负责建立安全连接并转发本地主机服务。 配置说明: 四、Nginx 反向代理配置(内网) 反向代理用于终止 TLS 并将请求转发到后端应用。要让其识别 Proxy Protocol 头部,需要显式启用相关指令。 ⚠️ 注意启用 proxy_protocol 后,若直接在本机访问该端口(未通过 FRP),连接会因缺少协议头而失败。若需调试,可额外开放一个仅本地使用的不带 proxy_protocol 的监听端口。 五、验证与测试 六、安全建议 七、总结 通过 …

使用 systemd 管理 FRP 多实例与定期自动重启(兼容 Certbot 证书更新)

前言 在自建网络穿透体系中,FRP(Fast Reverse Proxy) 是一款非常高效、稳定的工具。搭建了一个小型但完整的结构: 由于使用 Certbot 为 FRPS 生成 HTTPS / TLS 证书,这些证书会在 90 天内自动续期。为了让 FRPS 与 FRPC 在证书替换后自动加载新证书、避免手动重启,设计了一个每两个月执行一次的自动重启计划。这既保证证书长期有效,也保持隧道连接的稳定性。 一、架构概览 角色 实例 主机类型 功能说明 FRPC frpc1、frpc2、(frpc3 预留) 局域网穿透节点 为内网设备提供公网访问 FRPS frps-main、frps-backup 公网 VPS 接收客户端连接,终止 TLS 二、服务文件结构 FRPC(客户端) /etc/systemd/system/frpc1.service: 第二个实例仅需复制并修改文件名与配置路径: FRPS(服务端) /etc/systemd/system/frps.service: 三、自动重启机制的设计思路 Certbot 证书默认有效期 90 天,但 FRPS / FRPC …

使用 RKHunter 保护 Ubuntu 系统:安装、配置与误报处理完整指南

在 Linux 系统中,Rootkit 是一种隐藏型恶意软件,它会潜伏在系统中,绕过普通检测手段,甚至获取 root 权限。为了确保系统安全,我们可以使用 RKHunter(Rootkit Hunter) 来扫描系统潜在威胁。本文将详细介绍 Ubuntu 系统上安装、配置 RKHunter,并解决常见误报的完整流程。 1️⃣ 安装 RKHunter 首先,使用 apt 安装 RKHunter 以及 curl(用于联网更新镜像): 安装完成后,可以检查版本: RKHunter 默认包含大量检测规则,包括系统文件完整性、隐藏文件、网络端口异常等。 2️⃣ 配置 RKHunter RKHunter 的配置主要涉及 定期扫描 和 网络更新。我们先修改默认参数: 2.1 /etc/default/rkhunter 编辑此文件以启用每日 cron 任务,并设置报告邮箱: 修改内容: 保存并退出。 2.2 /etc/rkhunter.conf 主要配置项如下: 保存并退出。 3️⃣ 更新系统文件属性基线 第一次安装 RKHunter 后,需要建立系统文件属性基线: 输出示例: 这里记录了关键系统文件的当前状态(大小、权限、校验和),方便后续扫描发现异常变更。 …

Termius 在 Linux 下键盘布局错位的解决方法

在 Linux 桌面环境中,系统已经设置了日语键盘布局,但部分应用(如 Termius)依然显示为英文键盘布局,导致输入符号错位。这个问题的根源在于 系统级键盘配置未正确传递到 X11,而 Electron 应用(Termius 属于此类)直接读取 XKB 配置,因未设置而退回到默认的美式键盘。 问题表现 临时解决方法 通过 setxkbmap 命令可以立即切换键盘布局: 执行后,Termius 中的键盘映射立即恢复正常。但该方法在重启或重新登录后会失效。 永久解决方法 使用 localectl 配置 localectl 是 systemd 提供的键盘与区域设置工具,可以直接写入 X11 的键盘配置文件。 常用命令如下: 若需要指定键盘模型(例如日本 106/109 键盘),可以使用: 配置完成后,重启桌面会话即可生效。再次检查: 应显示: 手动编辑 X11 配置文件 如果 localectl 不工作,也可以直接写入配置文件: 创建或修改 /etc/X11/xorg.conf.d/00-keyboard.conf: 保存后,重启桌面环境使其生效。 总结 当 Linux 桌面应用出现键盘布局与系统不一致的情况,首先应检查 localectl status 是否显示了正确的 …

路由器 ACLs(访问控制列表)配置详解

一、什么是 ACLs? 在软路由或智能路由的代理/分流插件中,常见 ACLs(Access Control Lists,访问控制列表) 功能。ACL 的核心作用是: 换句话说,ACLs 提供了一种 策略路由机制,允许管理员根据不同的设备、用户或服务来决定其上网方式。例如: 这种方式比单一的全局代理更灵活,更符合多场景网络需求。 二、界面选项解析 以下是典型 ACL 配置页面中的主要选项说明: 1. Enable 2. Remarks 3. Source Interface 4. Source 用于定义规则的匹配对象,可选格式: 5. TCP No Redir Ports / UDP No Redir Ports 6. Node 7. TCP Redir Ports / UDP Redir Ports 三、典型配置场景 场景 1:电脑走代理 场景 …

OpenWrt 无线中继:NAT 模式配置与初始状态恢复

在实际使用 OpenWrt 时,常见的场景之一是通过无线中继功能,将路由器连接到上游 Wi-Fi 网络,再由本机继续发射新的无线信号供下游设备使用。本文介绍如何在 OpenWrt 中配置 NAT 模式的无线中继,并说明如何手动恢复到初始的 AP-only 状态。 一、使用场景说明 二、配置 NAT 模式中继 1. 添加无线客户端(STA) 此时,OpenWrt 的 2.4GHz 无线网卡会作为 Client (STA) 连接到上游热点。 2. 配置防火墙 这样,wwan 接口的数据就会通过 NAT 转发到上游网络。 3. 配置下游 AP 下游设备连接到这个 SSID 后,会获得 OpenWrt 分配的 IP(例如 192.168.2.x),通过 NAT 出口访问上游网络。 三、验证 NAT 模式 下游设备能正常上网,且上下游处于不同网段。 四、恢复初始状态(AP-only) 如果不再需要 NAT 中继,可以手动恢复到最初的 …