安全协议 v2.0 已就绪

PortGuard:让您的服务在 在扫描器面前“彻底隐身”

PortGuard 结合了基于 fwknop 修改的服务端,以及支持 fwknop SPA 协议的跨平台客户端。端口默认保持关闭,只有在有效的 AES/GPG 签名数据包通过验证后才会临时开放。

Quick Server Install

Installs the latest open-source package built by GitHub Actions from the PortGuard server repository.

Guide
curl -fsSL https://portguard.net/install.sh | sudo bash
客户端实时预览
为兼容 fwknop 的工作流而生

传统暴露模式(Risk)

  • ✕端口全天候开放,持续遭受全球扫描器探测。
  • ✕暴露服务将直接面对暴力破解与漏洞利用攻击。
  • ✕防火墙白名单维护复杂,且缺乏动态灵活性。

PortGuard 模式(Solution)

  • ✓默认拒绝: 未授权前端口完全不可见(Stealth)。
  • ✓SPA 认证: 仅特定格式的加密单包可触发放行。
  • ✓动态放行: 仅临时放行源 IP,随后自动关闭。

核心特性

核心安全特性

面向希望 SSH、管理面板和私有服务在明确授权前都保持不可见的团队,提供稳健的默认安全策略。

SPA 高效通信

发送兼容 fwknop 的单包授权数据包,无需 TCP 握手开销,同时保持强隐蔽性。

AES/GPG + HMAC

集成 SHA256 完整性校验,确保指令真实且未被篡改。

端口全隐身

默认 DROP 策略使服务对扫描器表现为不可达。

防重放攻击

时间窗校验结合完整性验证,可快速使旧封包失效。

PortGuard 客户端

适用于每台设备的、更清爽的 fwknop 兼容客户端。

PortGuard Client 支持 fwknop SPA 协议。配置、一键 SPA、二维码导入、加密导出和激活流程都兼容 fwknopd 与 PortGuard Server 工作流。

一键 SPA 无需命令行摩擦即可发送授权敲门。
加密配置 让本地配置在静态存储时保持受保护。
二维码导入 在设备之间快速迁移配置。

技术原理

安全运行机制

PortGuard Server 是基于 fwknop 修改的服务端,运行在防火墙边界。它持续检查网络流量中的授权数据包,同时不向外暴露服务握手。

1
生成鉴权报文

客户端使用密钥与时间戳生成加密单包。

2
无握手投递

报文通过 UDP 等方式发送,使基于握手的探测失效。

3
动态开门

验证通过后,服务端会临时放行源 IP,并在超时后自动移除规则。

PORT_GUARD_DAEMON 状态:监听中
[INFO] 正在 eth0 上嗅探 SPA 数据包...
[CMD] 检测到来自 124.6.x.x 的数据包
[AUTH] HMAC SHA256 校验通过。时间戳有效。
[AUTH] 正在使用 AES-256-CBC 解密载荷...
[FIREWALL] 为 124.6.x.x 临时开放 22 端口 30 秒。
_

应用场景

SSH 远程运维

保护 22 端口,仅在管理员发送 SPA 后短时可见。

多云环境安全

跨 AWS/Azure 等环境统一访问控制,降低暴露面。

IoT 设备管理

保护 IoT 控制接口,避免直接暴露公网。

ACL 自动化

结合脚本与规则周期,实现临时授权自动化。

下载与安装

支持多平台客户端与服务端安装包

Windows 客户端

portguard-client-2.2.1-x64-setup.exe

macOS 客户端

portguard-client-2.2.2-18-macos.dmg

Apple App Store

iPhone & iPad

前往商店

Android 应用

fwknopc_2_6_11.apk

下载 APK

Linux 服务端

Debian, Ubuntu, Rocky, CentOS, OpenWrt

Server Packages
安全提示:下载后请校验 MD5/SHA256 指纹。

Server Packages

Install PortGuard Server on Debian, Ubuntu, Rocky, CentOS, and OpenWrt

Use the quick installer for supported Linux servers, or download the latest package generated from the open-source GitHub Actions release pipeline.

Quick Install

One command server setup

curl -fsSL https://portguard.net/install.sh | sudo bash

The script detects the operating system, selects the matching package from the GitHub release manifest, verifies SHA256, installs dependencies, and leaves fwknopd ready for configuration export to PortGuard Client.

Open Source Release

Packages synced from GitHub

These packages are built automatically by GitHub Actions from the public PortGuard server source code.

Latest Release
System Version Architecture Package 下载
Loading packages from GitHub release...

常见问题与使用场景

最后更新:

PortGuard 与 fwknop 是什么关系?

PortGuard 围绕 fwknop SPA 协议构建。PortGuard Client 是发送兼容 fwknop SPA 数据包的跨平台客户端;PortGuard Server 是基于上游 fwknop 项目修改的服务端。与传统序列式端口敲门相比,这种单个加密数据包模型更快、更隐蔽,并且能够抵御重放攻击。

是否可以只生成一次配置,然后敲门一次,让某个 IP 访问服务器上的所有服务端口?

可以。把服务端访问段配置为 OPEN_PORTS ANY,并在客户端配置中使用 ACCESS ANY。配置只需生成并导入一次,之后可以重复使用。每次有效敲门都会创建一条临时来源 IP 规则,使 ALLOW_IP 指定的 IP 在 FW_TIMEOUT 到期前可以访问服务器上的所有 TCP 和 UDP 服务端口。规则过期后需要重新敲门。这是高权限模式:请设置较短的超时时间并妥善保护配置和密钥;上游云防火墙、路由器规则以及服务自身的认证仍然生效。

fwknop 与 tnock 相比如何?

两者都希望隐藏网络端口,但 fwknop 是更先进的单包授权(SPA)方案。tnock 及类似的序列式敲门守护进程依赖在多个关闭端口上识别特定连接模式,执行更慢且容易遭受重放攻击。fwknop 通过发送单个带密码签名和时间戳的载荷来解决这一问题。其优势是安全性更高、可抵御重放攻击,并可与现代防火墙无缝集成。

如何让我的网站或私有服务只对特定人员开放?

默认情况下,基于 fwknop 修改的 PortGuard Server 会把服务器防火墙配置为阻止所有指向服务端口的入站流量,因此该服务对公网看起来完全离线。当授权用户需要访问时,他们使用 PortGuard Client 和自己的加密密钥发送兼容 fwknop 的单包授权(SPA)数据包。验证通过后,服务端会在短时间内动态放行其当前 IP。

如何在 NAS 暴露公网时兼顾安全与隐私并避免数据泄露?

由于僵尸网络与扫描器会持续探测,直接把 NAS 暴露在互联网存在很高风险。通常有两种更安全的方案:

  • 方案 1:Cloudflare Zero Trust(隧道) 该方案将 NAS 流量通过 Cloudflare 网络转发,无需开放任何入站端口。优点:部署简单、无需公网 IP、可额外获得 WAF 防护。缺点:流量必须经过第三方服务器,意味着你需要信任 Cloudflare 的隐私策略;传输速度也常受免费层路由限制,不太适合大体积媒体流传输。
  • 方案 2:自有公网 IP + fwknop 端口敲门 你在路由器上开放端口,但使用 fwknop 或 PortGuard Server(SPA)进行保护。该端口对公网保持不可见,只有当 PortGuard Client 发送有效的加密签名访问包时才会临时开放。优点:流量不经过第三方服务器,数据隐私更高;连接直连,可发挥硬件最高传输性能。缺点:需要真实公网 IP,且初始配置技术门槛稍高。

端口打开后,PortGuard 会降低连接速度吗?

不会。兼容 fwknop 的 PortGuard Server 只处理初始授权数据包。防火墙规则动态创建并授权你的 IP 后,你通过 SSH、WireGuard 或直连 NAS 的会话都会在客户端与服务器之间直接以满速通信。

受到全球 DevOps 与安全专家信赖

"在跳板机部署 PortGuard 后,日志中的 SSH 扫描噪声明显下降。"
- 高级系统管理员,TechGroup
"SPA 的单向无握手设计非常实用,兼顾隐蔽性与可运维性。"
- 安全研究员,@CyberNode
"与 iptables 的集成非常顺滑,我们已在生产环境大规模部署。"
- DevOps 负责人,Fintech Corp

官方联系

需要 PortGuard 帮助?

如需处理购买恢复、激活问题、部署咨询或安全报告,请联系 PortGuard 官方支持邮箱。

[email protected]