跳到主要内容

在 Linux 上安装 PortGuard Server

PortGuard Server 的包来自开源的 portguard 服务端仓库。Release 流程由 GitHub Actions 自动执行,为每个支持的平台构建包,并把包清单、校验文件和安装包发布到最新的 GitHub Release。

推荐:快速脚本安装​

在全新的 Debian、Ubuntu、Rocky、CentOS 或兼容 RHEL 的服务器上执行:

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

安装脚本会读取最新 GitHub Release 的 manifest.tsv,识别当前系统,下载匹配的安装包,校验 SHA256,安装运行依赖,并生成 /etc/fwknop/fwknopd.conf 和 /etc/fwknop/access.conf。客户端导入配置和二维码通过 fwknopd -Q 按需生成。

默认情况下,SPA_SERVER 使用探测到的公网 IPv4;无法探测公网地址时, 使用服务器的内网 IPv4。hostname 只作为客户端配置的 section name。 可以通过 --server 指定域名或其他 IP 来覆盖自动探测结果。

常用参数:

curl -fsSL https://portguard.net/install.sh | sudo bash -s -- \
--server vpn.example.com \
--access tcp/22,tcp/443 \
--knock-port 62201 \
--protocol udp \
--user portguard \
--timeout 60

升级已有服务器​

使用 --upgrade 安装最新匹配的 release 包,同时保留已有的 /etc/fwknop 配置和客户端密钥:

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

如果旧版本安装后导出的 SPA_SERVER 仍是本机 hostname,此命令只会把 PORTGUARD_CLIENT_SERVER 更新为检测到的公网 IPv4 地址,不会重新生成访问规则和 密钥。手动配置的服务器域名或 IP 地址不会被修改。

如果在 --upgrade 后同时传入配置参数,安装脚本会认为你要主动重置配置, 并重新生成客户端导入密钥。

已支持的预编译包​

下载页会同步最新 GitHub Release 的 assets,并直接链接到对应包:

  • Debian 12 和 13:amd64 .deb
  • Ubuntu 22.04、24.04 和 26.04:amd64 .deb
  • Rocky Linux 8 和 9:x86_64 .rpm
  • CentOS 7、8、9:x86_64 .rpm
  • OpenWrt 24.10:x86_64、mips_24kc、aarch64_cortex-a53 .ipk

安装脚本始终优先选择与 Debian 或 Ubuntu 版本完全匹配的包。如果新系统 已经发布而对应原生包尚未上传,脚本会选择同一发行版中不高于当前系统的 最新兼容包,并在安装日志中明确显示所选版本。Rocky 和 CentOS 的 RPM 包 不会跨系统主版本回退。

可以在 PortGuard 下载页 或 最新 GitHub Release 手动下载安装包。安装前可以用 checksums.txt 或 manifest.tsv 校验包。

手动安装包​

Debian 或 Ubuntu:

sudo apt-get update
sudo apt-get install -y ./portguard-server_*.deb

Rocky、CentOS 8/9 或兼容 RHEL 的系统:

sudo dnf install -y ./portguard-server-*.rpm

CentOS 7:

sudo yum install -y ./portguard-server-*.rpm

OpenWrt:

scp portguard-server_*.ipk root@router:/tmp/
ssh root@router opkg install /tmp/portguard-server_*.ipk

源码安装兜底​

如果你的平台还没有预编译包,可以用同一个安装脚本从源码构建:

git clone https://github.com/yangcancai/portguard.git
cd portguard
curl -fsSL https://portguard.net/install.sh -o /tmp/portguard-install.sh
sudo bash /tmp/portguard-install.sh --source-dir "$PWD"

也可以传入源码压缩包:

sudo PORTGUARD_SOURCE_URL=https://example.com/portguard-source.tar.gz \
bash /tmp/portguard-install.sh

安装后验证​

sudo fwknopd --exit-parse-config \
-c /etc/fwknop/fwknopd.conf \
-a /etc/fwknop/access.conf

sudo systemctl status fwknopd
sudo portguard-fwknopd -Q

把 fwknopd -Q 输出的 payload 导入 PortGuard Client,或者用客户端扫描二维码。注意防火墙需要允许 SPA 监听端口,默认是 UDP 62201。